是否可以在JSP页面上使用request.setAttribute
然后在HTML Submit上在Servlet
中获得相同的请求属性?在JSP页面中使用request.setAttribute
回答
不幸的是,Request对象只有在页面加载完成后才可用 - 一旦完成,您将失去所有值,除非它们已经存储在某个地方。
如果你想坚持通过请求属性,您需要:
- 有一个隐藏的输入您的形式,如
<input type="hidden" name="myhiddenvalue" value="<%= request.getParameter("value") %>" />
。这将作为请求参数在servlet中可用。 - 把它放在会议(见
request.getSession()
- 在JSP这可作为简单session
)
我建议使用会话,因为它更易于管理。
纠正我,如果错了...我想请求不连续的页面之间仍然存在..
认为你从第1页穿越 - >第3页。
您有一定的价值 - 2>页使用getAttribute在页面2中检索到的页面1中的setAttribute设置请求对象,然后如果您尝试在同一个请求对象中再次设置某些内容以在页面3中检索它,那么它将给予您空值作为“创建的请求JSP和提交JSP时生成的请求是完全不同的请求,并且放在第一个上的任何属性在第二个上将不可用“。
我的意思是在第2页是这样的失败:
凡为同样的事情已经在第1页的情况下,像工作:
所以我想我会需要进行任Phill建议的两个选项。
Phil Sacre的回复是正确的,但是会话不应该只用于它的地狱。您只应将此用于确实需要在会话的整个生命周期中生存的值,例如用户登录。通常会看到人们过度使用会话并遇到更多问题,特别是在处理收藏或用户返回他们以前访问过的页面时,只发现他们的值仍然来自上次访问。一个聪明的程序尽可能地减少变量的范围,坏的程序会使用会话太多。
我认为菲尔是正确的请求选项是可用的,直到页面加载。所以如果我们想将价值发送到另一个页面,我们希望将其设置在隐藏标签中或在会话中设置,如果您只需要其他页面上的值而不超过该值,那么隐藏标签是最好的选择,如果您需要该值在当时的多个页面上,会话比隐藏的标签更好。
尝试
request.getSession().setAttribute("SUBFAMILY", subFam);
request.getSession().getAttribute("SUBFAMILY");
如果你希望你的要求仍然存在,试试这个:
例如:你的JSP或Servlet页面
request.getSession().setAttribute("SUBFAMILY", subFam);
上任何接收页面上使用下面的线路检索您的会话和数据:
SubFamily subFam = (SubFamily)request.getSession().getAttribute("SUBFAMILY");
你可以做到这一点使用的pageContext属性,虽然:
在JSP:
<form action="Enter.do">
<button type="SUBMIT" id="btnSubmit" name="btnSubmit">SUBMIT</button>
</form>
<% String s="opportunity";
pageContext.setAttribute("opp", s, PageContext.APPLICATION_SCOPE); %>
在Servlet(链接到 “Enter.do” 的url-pattern):
String s=(String) request.getServletContext().getAttribute("opp");
除了APPLICATION_SCOPE之外,还有其他一些作用域,比如SESSION_SCOPE。 APPLICATION_SCOPE用于ServletContext属性。
- 1. 在jsp页面中执行request.setAttribute,在java代码中执行request.getAttribute
- 2. 角色了request.setAttribute JSP
- 3. 如何在JSP页面中使用taglib
- 4. 如何在JSP页面中使用Iterables?
- 5. 如何在jsp页面中使用css
- 6. 如何在jsp页面中使用servlet?
- 7. 在Jsp页面使用jquery分页
- 8. 在JSP页面
- 9. 如何在JSP页面中包含JSP
- 10. 在JSP页面上使用Bootstrap模式
- 11. 在JSP页面中调试?
- 12. Flexbox的在JSP页面中
- 13. 如何使在JSP页面中
- 14. 其他JSP页面在相同的jsp页面中打开
- 15. 如何在JSP页面中包含JSP页面?
- 16. javascript在jsp页面
- 17. java.lang.ExceptionInInitializerError在JSP页面
- 18. PropertyNotFoundException在JSP页面
- 19. 如何使用一个jsp页面中的数据到另一个jsp页面
- 20. 在jsp中调用java函数页面
- 21. 如何在Android中调用JSP页面
- 22. 在JSP页面中的作用域
- 23. 在jsp页面中禁用favicon
- 24. 在Servlet中创建会话并在JSP页面中使用?
- 25. Ajax从JSP页面调用servlet页面
- 26. JSP页面javax.el.PropertyNotFoundException
- 27. 从JSP页面调用另一个JSP页面
- 28. 在其他jsp页面读取jsp页面内容到html
- 29. 当session.setAttribute或request.setAttribute被调用时Servlet不会转发到jsp
- 30. 从anathor jsp页面调用jsp方法
也许这不是不幸。 JSP脚本是一个不好的习惯。使用会话时要小心,管理起来比较容易,但有时在可伸缩性方面它是“昂贵的”。 – 2008-10-23 14:43:33