【发布时间】:2019-08-14 20:40:57
【问题描述】:
(我检查了所有其他类似的问题,我是新手让我先说)
我有这样的非常基本的 html:https://ibb.co/KVNbv9z 以及如下所示的 servlet 代码。
它为字符串 q1 提供 null 返回:/
我认为主要问题是我正在尝试使用 request.getRequestDispatcher("htmlquestions.html").include(request, response); 在 servlet 内部,但无法返回其结果。我该怎么办 - 我正在为此寻找 2 天。非常感谢您的帮助
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.logging.Logger;
public class SecondServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response){
try{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
request.getRequestDispatcher("htmlquestions.html").include(request, response);
String q1 = request.getParameter("Q1");
out.print( " aaaaaaaaaaaaaaaaaaa " + q1 );
out.print("<form action='ThirdServlet'>");
out.print("<input type='submit' value='go'>");
out.print("</form>");
out.close();
}catch(Exception e){System.out.println(e);}
}
}
【问题讨论】:
-
你用来调用这个 servlet 的 URL 是什么?即当您查看此 servlet 的输出时,您的浏览器地址栏包含什么?为什么你认为 q1 不应该为空?
-
你好尼泽。我在 Eclipse 中通过 loginpage(localhost:8081/lab4/index.html) 使用它。但我想在那个阶段没有问题。我的目标是在 servlet 中使用“htmlquestions.html”(显示问题)并在可能的情况下返回结果。为什么它变为 null 可能是在我单击表单上的某个位置之前执行了代码:) 但我确实不知道在哪里/如何修复它
-
那是您的 index.html 页面的 URL。可能不是此 servlet 返回的页面的 URL。你的直觉是正确的。这个 servlet 显示一个表单。显示表单不允许访问将在 提交 表单时发送的参数。您需要提交表单,并在处理此提交的 servlet 中获取参数。
-
谢谢。我用这个localhost:8081/lab4/Login来调用servlet,这是servlet urllocalhost:8081/lab4/SecondServlet,这是servlet urllocalhost:8081/lab4/ThirdServlet的结果所以你的意思是我应该在html中使用提交就可以了吗?
-
我的意思是你应该了解它是如何工作的。显示表单与处理表单提交不同。只有当您处理表单的提交时,您才能访问用户提交的值。不是在显示它时。显示时,用户还没有看到表单,因此不可能发送任何内容。