在 JSP 页面中使用 request.setAttribute

是否可以在 JSP 页面上使用,然后在 HTML 提交上获取相同的请求属性?request.setAttributeServlet


答案 1

不。遗憾的是,Request 对象仅在页面完成加载之前可用 - 一旦完成,您将丢失其中的所有值,除非它们已存储在某个位置。

如果要通过请求保留属性,则需要执行以下操作之一:

  1. 在表单中隐藏输入,例如 .然后,这将作为请求参数在 servlet 中提供。<input type="hidden" name="myhiddenvalue" value="<%= request.getParameter("value") %>" />
  2. 将其放入会话中(请参阅 - 在 JSP 中,这可以简单地使用request.getSession()session)

我建议使用会话,因为它更易于管理。


答案 2

Phil Sacre的回答是正确的,但是这次会议不应该仅仅用于地狱。您只应将其用于在会话生存期内真正需要存在的值,例如用户登录名。人们经常会过度使用会话并遇到更多问题,尤其是在处理集合时,或者当用户返回到他们以前访问过的页面时,却发现他们仍然有上次访问中剩余的值。一个聪明的程序尽可能地最小化变量的范围,一个糟糕的程序使用太多的会话。


推荐