关于jsp中四大作用域,域对象,生命周期,以及page和pageContext区别一些思考

时间:2022-08-29 13:02:31

看完两张表,你就完全懂了!!!

作用域

作用域对象

类名

作用范围

page

pageContext

Javax.servlet.jsp.PageContext

jsp

request

request

javax.servlet.http.HttpServletRequest

一次请求

session

session

HttpSession

一次会话

application

application

ServletContext

当前web应用

注意:

1,之所以他们是作用域,原因是他们都内置了map集合,利用setAtrribute()getAtrribute()方法能够将key value传送到我们需要的地方

2,page对象和page作用域对象不是同一个东西,别混了!!!page对象代表当前页面servlet对象(this)的引用,并且jsp本质上就是servlet(看jsp被jsp引擎转换完成后的java代码可以得知,具体目录在tomcat/conf/work里面,注意项目部署后才能看到这个文件夹)

四大作用域对应对象的生命周期

pageContext

jsp页面被执行,生命周期开始,jsp页面执行完毕,生命周期结束

request

用户发送一次请求,开始,服务器返回响应,请求结束,生命周期结束

session

用户打开浏览器访问,创建session开始,session超时(默认30分钟)或者被调用invalidate()方法结束

application

web应用加载的时候创建,web应用移除或服务器关闭,对象销毁(servlet生命周期,appliction更长一些,它是web应用被加载时创建,servlet是第一次被调用时被创建,结束时间一样,所以前者活的稍长)

 

总结:当我们在开发中写代码时,用的都是域对象在调用方法书写代码,而域是我们为了便于理解而假想的一种边界(时间维度-生命周期,空间维度-作用范围),所以充分理解了域和域对应的对象的关系,对于掌握servlet编程实在大有裨益!

----从完全0基础开始学习java,到今天两个月,发篇博客表示我还在坚持,同时如有不妥,希望各位大神指正