大家好,欢迎来到IT知识分享网。
我们在Servlet和页面间传值时,经常会用到request.setAttribute()和session.setAttribute(),下面是两段示例用法
request.setAttribute()
request.setAttribute("people",people); //第一个people是一个字符串,第二个是一个集合类型对象 request.getRequestDispatcher("chakan.jsp").forward(request, response); //response.sendRedirect("chakan.jsp"); //传过去的值会是null, //sendRedirect不能传递request对象。使用request.setAttribute时不能使redirect而是forward。即是将请求转发而不是重定向。
request.setAttribute()和request.getAttribute()配对使用,作用域是请求和被请求页面之间。request.setAttribute()是只在此action的下一个forward需要使用的时候使用;request.getAttribute()表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型。
request.setAttribute这个的生命周期就是request级别的,传输快,生命周期短,只能在特定页面接受。
session.setAttribute()
HttpSession session = request.getSession(); session.setAttribute("people",people); //第一个people是一个字符串,第二个是一个集合类型对象 response.sendRedirect("chakan.jsp"); //发送请求
(jsp)ArrayList <Information> B = (ArrayList<Information>) session.getAttribute(“people”); //只需要在需要的页面get就好了
session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用,session可以跨越很多页面,session的生命周期也是针对一个客户端,但是却是在别人设置的会话周期内(一般是20-30分钟),session里边的内容将一直存在,即便关闭了这个客户端浏览器 session也不一定会马上释放掉的。session就相当一个全局变量。
session.setAttribute():取得当前HttpSession,在HttpSession范围保存参数,就一直在,随时可以取来用。缺点是比较占用资源。
这些就是我个人的实践和结合阅读其他相似内容的间接,有错误欢迎指正!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29032.html