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

问题描述:

我想创建一个表单,其中与输入值一起还希望发送一个值从JSP到servlet与setAttribute()方法。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()值

您需要了解这里的处理顺序。当您执行request.setAttribute("value",1);时,只需在将HTML表单返回给用户时立即在当前请求对象上设置属性value,该对象将不再存在。当用户提交表单时,表单中没有称为“值”的属性。所以当你的servlet试图从request对象中检索它时,它会返回为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> 
+0

有没有办法访问值... –

+0

谢谢。但我仍然在理解为什么在我们发布页面之后文本内部或隐藏的值以及为什么setAttribute()无法做到这一点时存在问题。以及请求范围如何实际工作。请你解释我......需要帮助。 –

+0

窗体上未被禁用的任何输入属性都与窗体一起提交。这些属性被自动填充到'request'对象中,其中键为属性的'名称',值为属性的'值'。 – VHS