request与session的联系与区别
·
目录
定义区别
request
- request范围较小一些,request是某一次访问的局域变量,只是一个请求。
- request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请求完毕之后,request里边的内容也将被释放点
session
- session可以跨越很多页面
- session相当于是一个客户端的全局变量,
- session的生命周期也是针对一个客户端,但是却是在别人设置的会话周期内(一般是20-30分钟),session里边的内容将一直存在,即便关闭了这个客户端浏览器 session也不一定会马上释放掉的
方法区别
request
1.request的setAttribute与getAttribute方法一般都是成对出现的,首先通过setAttribute方法设置属性与属性值,然后通过getAttribute方法根据属性获取到与该属性对应的对象值,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用。
2.request.getParameter()表示接收参数,参数为页面提交的参数。
- request的getParameter方法的作用是获取到客户端 通过表单或url请求参数所发送过来的参数值,是客户端与服务器端之间的交互,服务器端要想获取到客户端发送过来的数据,就需要使用getParameter方法来获取。没有与getParameterget方法对应的setParameterset方法。
注意:sendRedirect不能传递request对象。使用request.setAttribute时不能使redirect而是forward。即是将请求转发而不是重定向。
session
1.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用。
2.session对象内数据的存活范围也就是session对象的存活范围,因此在同一个浏览器窗口中,无论向服务器端发送多少个请求,session对象只有一个。
补充
- 由于request占用资源比较少,安全性相对较高,持续性较低
- session占用资源更大,安全性会稍微降一点,但是可以实现比如会话跟踪技术
- 两者各自有缺点和优点,大家根据实际情况来选取吧!!!!!!
更多推荐
所有评论(0)