JSP 九大内置对象和四大作用域
对象 对象名称 类型 作用域
request 请求对象 javax.servlet.ServletRequest request
response 响应对象 javax.servlet.ServletResponse page
pageContext 页面上下文对象 javax.servlet.jsp.PageContext page
session 会话对象 javax.servlet.http.HttpSession session
application 应用程序对象 javax.servlet.ServletContext application
out 输出对象 javax.servlet.jsp.JspWriter page
config 配置对象 javax.servlet.ServletConfig page
page 页面对象 javax.lang.Object page
exception 例外对象 javax.lang.Throwable page
注意:exception对象代表JSP文件运行时所产生的例外对象,此对象不能在JSP文件中直接使用,而只能在使用了<%@ page isErrorPage="true "%>的JSP文件中才能使用.
什么是作用域?
作用域规定的是变量的有效范围,jsp中有四大作用域(从小到大):page、request、session、application.
1.page作用域
如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里.从变量放到pageContext开始,到jsp页面结束,都可以使用这个变量.
2.request作用域
如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期.所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程.在这个过程中可能会使用forward的方式跳转多个jsp页面,在这些页面里都可以访问到这个变量,另外,在调用include()方法包含的页面中也能访问到这个变量.
3.session作用域
如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话.所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这一个完整的过程。这个过程中可能包含多个请求响应.也就是说,只要用户不关闭浏览器,那么服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话中使用,session的默认有效时间为30分钟(如果进行了有效时间的设置则以实际为准),即使服务器关闭,seesion可能依然有效,取决于它的有效时长,也就说达到有效时长它才会销毁.
4.application作用域
如果把变量放到application里,就说明它的作用域是application,它的有效范围是当前整个应用.从当前Web应用启动,到当前Web应用结束.
注意:与上述三个不同的是,application里的变量可以被所有用户共用.如果用户A的操作修改了application中的变量,用户B访问时得到的便是修改后的值.