request.setAttribute()和session.setAttribute()的区别详解

request.setAttribute()和session.setAttribute()的区别详解我们在Servlet和页面间传值时,经常会用到request.setAttribute()和session.setAttribute(),下面是两段示例用法 request.setAttribute() request.setAttribute("people",people);

request.setAttribute()和session.setAttribute()的区别详解"

我们在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

(0)
编程小号编程小号
上一篇 2023-09-02 18:06
下一篇 2023-09-02 18:17

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注