【问题标题】:Getting null from radiobutton value in servlet从 servlet 中的单选按钮值获取 null
【发布时间】: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中使用提交就可以了吗?
  • 我的意思是你应该了解它是如何工作的。显示表单与处理表单提交不同。只有当您处理表单的提交时,您才能访问用户提交的值。不是在显示它时。显示时,用户还没有看到表单,因此不可能发送任何内容。

标签: java servlets


【解决方案1】:

来自 Java EE 文档:

https://javaee.github.io/javaee-spec/javadocs/javax/servlet/RequestDispatcher.html

void include(ServletRequest 请求, ServletResponse 响应) 抛出 ServletException, IO异常

在其中包含资源(servlet、JSP 页面、HTML 文件)的内容 响应。从本质上讲,这种方法可以实现程序化服务器端 包括。

您只是在响应中包含内容,请求不会改变。提交表单时设置请求参数。这就是为什么request.getParameter返回null,servlet收到请求时没有设置值。

要做你想做的,你应该创建一个 JSP 表单,或者更好的是一个包含页面呈现内容的 JSF 表单。我强烈建议您使用 JSF,因为使用 servlet 和/或 JSP 创建 Web 内容在某种程度上已被弃用,并且随着内容变得更加复杂,可能会变得非常混乱。

【讨论】:

  • 谢谢 whbogado,正如您和另一位朋友指出的那样,在 html 中提交表单就可以了。非常感谢
猜你喜欢
  • 2014-12-26
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
  • 1970-01-01
  • 2011-03-31
  • 2012-07-18
  • 1970-01-01
相关资源
最近更新 更多