application
全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
Session
会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。
打开一个浏览器请求一个网站的页面后,Session开始,当session超过时间限制(一般是20分种)后,session注销而失效或是人为使用session.invalidate()方法 使session失效。
用浏览器打开一个web程序,一个浏览器窗口就会有一个session,且是唯一的,过了session的生存周期就没了,或者是你关了窗口也就没了。
不同浏览器的session在计算机中并不是同一个。
request
请求作用域,就是客户端的一次请求,如get和post。比如访问某个页面,就是一次请求。页面访问结束,该页面的request就结束了.
1、转发不是重定向,转发是在Web应用内部进行的。
2、转发对浏览器是透明的,也就是说,无论在服务器上如何转发,浏览器地址栏中显示的仍然是最初那个Servlet的地址。
ps :
由上可知,如果我们有一份比较大的数据想做缓存。可以使用application 或者 session。 但是 application 占用的是服务器的资源,需要自己写数据清除。session当用户缓存就比较简便,占用的是客户端资源,会自动失效。
名称
|
作用域
|
application
|
在整个应用程序中有效
|
session
|
在当前会话中有效
|
request
|
在当前请求中有效
|
page
|
在当前页面有效
|
jsp九大内置对象包括request response session application out page config exception pageContext
1. request对象
客户端的请求信息被封装在 request 对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest 类的实例。
2. response对象
response对象包含了响应客户请求的有关信息,但在 JSP 中很少直接用到它。它是 HttpServletResponse 类的实例。
3. session对象
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个 WebApplication 开始,直到客户端与服务器断开连接为止。它是 HttpSession 类的实例。
4. out 对象
out 对象是 JspWriter 类的实例 ,是向客户端输出内容常用的对象
5. page对象
page对象就是指向当前 JSP页面本身,有点象类中的 this 指针,它是 java.lang.Object 类的实例 。
6. application 对象
application 对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了 application 对象的生命。它是 ServletContext 类的实例。
7. exception 对象
exception 对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个 JSP页面要应用此对象,就必须把 isErrorPage 设为 true,否则无法编译。他实际上是 java.lang.Throwable 的对象。
8. pageContext对象
pageContext 对象提供了对 JSP 页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的session,也可以取本页面所在的 application 的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫 pageContext。
9. config 对象
config 对象是在一个 Servlet 初始化时, JSP引擎向它传递信息用的,此信息包括 Servlet 初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一 ServletContext 对象)。