1.request
request对象对应的接口 :javax.servlet.ServletRequest 其子接口:javax.servlet.http.HttpServletRequest
request范围内的数据是用户请求访问的当前的web组件以及和当前web组件共享同一个用户请求的其它web组件。
比如一个jsp页面,<%@include>指令以及<forward>标记包含的其他jsp文件也能访问共享数据,存放在HttpSeverletRequest对象中。
session对象 对应的接口 :javax.servlet.http.HttpSession
session范围的数据存在于整个http对话的生存周期内。三种情况下,资源会被释放掉。客户端关闭浏览器,会话过期,服务器端调用了HttpSession的invalidate方法。
.两者共有方法:setAttribute(String name , Object o ) ,getAttribute(String name) ;
3.request对象和session对象的最大区别是生命周期
而session的生命周期也是针对一个客户端 但是却是在别人设置的会话周期内(一般是20-30分钟) session里边的内容将一直存在 即便关闭了这个客户端浏览器 session也不一定会马上释放掉的
一般来讲是:page->request->session->application,生命周期逐次变长
4.request和session的优点和缺点很明显
而session则相对来说 对资源的消耗会大点 安全性相对来说也会稍微低点 可是它能实现比如会话跟踪技术
request的作用域范围只在两个相邻页面起作用,而在三个或三个以上的页面就不行!