我们在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范围保存参数,就一直在,随时可以取来用。缺点是比较占用资源。
这些就是我个人的实践和结合阅读其他相似内容的间接,有错误欢迎指正!
今天的文章request.setAttribute()和session.setAttribute()的区别详解分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/49917.html