pageContext,request,session,application生命周期
equest是封装client端(也就是用户通过browser)提交的请求数据和属性的对象。
response是封装web server端响应数据和属性的对象。
我们经常会将pageContext、request、session和application混为一谈,因为它们都可以通过setAttribute()和getAttribute()来设定或读取属性。但它们之间是有别的,它们最大的区别在于使用范围。
pageContext对象的范围只适用于当前页面范围,即超过这个页面就不能够使用了。所以使用pageContext对象向其它页面传递参数是不可能的。
request对象的范围是指在一JSP网页发出请求到另一个JSP网页之间,随后这个属性就失效。
session的作用范围为一段用户持续和服务器所连接的时间,但与服务器断线后,这个属性就无效。比如断网或者关闭浏览器。
application的范围在服务器一开始执行服务,到服务器关闭为止。它的范围最大,生存周期最长。
session主要功能:验证用户是否登录。在几个页面上都能取得。
request:只有<jsp:forward page=" ">跳转页面才能取得。
application:只要设置一次,所有的网页窗口都可以取得数据。
application session request->都需要跨多个页面
设置过多application 或每一个session保存过多的对象则性能降低
能使用request 就不要使用session 能使用session的就不要使用application
application应用:在线人员统计、在线人员名单列表
pageContext:默认情况下一个页面的保存范围
实际上四种属性范围都是通过pageContext属性完成的
pageContext.setAttribute("name","mldn",PageContext.REQUEST _SCOPE);更改红字的名字得到。
在另外一页用request去接收String name=(String)request.getAttribute("name");<%=name%>;
如果要释放application资源要重新启动服务器
四种属性范围都是依靠pageContext展开的,但是在开发中,往往使用session和request范围最多。
最新文章
- (收集)linux环境下乱码的解决方法
- 有return的情况下try catch finally的执行顺序
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- 非常好!!!【从头开始写操作系统系列】实现一个-GDT(1)【转】
- trap命令使用
- Android AIDL SERVICE 双向通信 详解
- VB.NET 内存指针和非托管内存的应用
- [Django] Windows 下安装 配置Pinax 工程
- 多个 (li) 标签如何获取获取选中的里面的某个特定值??
- MapReduce shuffle过程剖析及调优
- UITableView的分割线长短的控制
- 剑指offer 第十二天
- TP方法中打印地址栏中所有的参数:
- Hive之一:hive2.1.1安装部署
- UIApplication 的学习
- QT 截取屏幕的实现
- python中字符串连接的四种方式
- [转]C#调用C++类(以COM组件的形式)
- 单点登录(SSO)问题
- 项目-高性能TcpServer - 目录