JSP中的setAttribute并在servlet中获取该属性

时间:2017-10-10 19:55:38

标签: jsp

注意:此问题已在以下link中得到解答,唯一的区别是在此问题中我只想发送除完整对象以外的特定值。

我想创建一个表单,其中与输入值一起我还想使用setAttribute()方法将值从JSP发送到servlet。

实施例

demo1.jsp

<form method="POST" action="DEMO1">
<% request.setAttribute("value",1); %>
<input type="submit" value="Add" />
</form>

demo1的

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
    PrintWriter pw=response.getWriter();
    pw.println(request.getAttribute("value"));
}

当我用来发布我的页面时,它会打印一个空值。是否有任何进程可以访问servlet中jsp的 setAttribute()值。

1 个答案:

答案 0 :(得分:1)

您需要了解此处的处理顺序。执行request.setAttribute("value",1);时,只需在当前请求对象上设置属性value,只要将HTML表单返回给用户,该属性就会停止存在。当用户提交表单时,没有名为&#39; value&#39;在形式。因此,当您的servlet尝试从请求对象中检索它时,它将返回null,因为它不存在。

使用隐藏的输入来存储您希望服务器在提交表单时接收的值。

<input type="hidden" name="value" value="1" />

因此,您的演示JSP将如下所示:

<form method="POST" action="DEMO1">
   <input type="hidden" name="value" value="1" />
   <input type="submit" value="Add" />
</form>