request 和 session 的区别联系

一、request

request范围较小一些,只是一个请求。

request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请求完毕之后,request里边的内容也将被释放点

简单说就是你在页面上的一个操作,request.getParameter() 就是从上一个页面中的url、form中获取参数。

但如果一个request涉及多个类,后面还要取参数,可以用request.setAttribute()和request.getAttribute()。
但是当结果输出之后,request就结束了。

二、session

session可以跨越很多页面。

而session的生命周期也是针对一个客户端,但是却是在别人设置的会话周期内(一般是20-30分钟),session里边的内容将一直存在,即便关闭了这个客户端浏览器 session也不一定会马上释放掉的

可以理解是客户端同一个IE窗口发出的多个请求。

这之间都可以传递参数,比如很多网站的用户登录都用到了。

三、比较

request占用资源比较少,安全性也比较高,可是相对来说缺乏持续性。

session则相对来说对资源的消耗会大点,安全性相对来说也会稍微低点,可是它能实现比如会话跟踪技术。

如果可以使用request的情况下,尽量使用request 因为相对于服务器来说资源的消耗还是比较重要的。

在传递页面过程中 request 传递到下一页面就不能再传递了,而 sesison 却不如此,即 request 仅限于2个相邻的页面每按一个网页上的一个链接就是一个新的 request,当服务器返回给浏览器一个 response 时,request就结束了,此时保存在request中的对象就不存在了,但是当你用一个浏器连到服务器上时application-server会新开一个session 给你,当连接超时或浏览器关闭时 session 才销毁

所以说作用的范围是不一样,session也就可以跟踪用户的状态。

==session相当于是一个客户端的全局变量,==比如A机与服务器第一次访问时设置session.setAttribute("aaa")="ComputerA".则在A机访问继续访问的任意一个页面都可以取的session.getAttribute("aaa")的值是ComputerA;

四、常见使用

request是获取信息–通过用户提交的表单,查询字符串,cookie等获得信息

session是服务端用来保存一些数据(通常是标记状态的,当然也可以保存别的)

session是服务端的记录变量,可以跟踪记录访问者动作,比如登录,退出等。

request用在数据提交,表单数据等

两个生命周期不一样,request的生命周期只在数据提交,提交以后即释放,session则是浏览器关闭才释放
所以一般一些用户信息类的内容都会存在session里,比如购物车内信息,或者用户登录的各种身份验证信息,这样不会因为跳转页面而丢失这些信息

【1】https://blog.csdn.net/lilinsqq/article/details/78909619
【2】https://www.cnblogs.com/uoar/p/6750188.html

  • 18
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值