因为在开发jsp页面的时候,会频繁访问到一些对象的功能。为了简化这些对象的获取工作,JSP给咱们预先定义好了这些对象,并起好了名字(就是一些局部变量)。
1.【request】 -> javax.servlet.http.HttpServletRequest -> 表示当前的http请求
2.【response】 -> javax.servlet.http.HttpServletResponse -> 表示当前的http响应
3.【out】-> javax.servlet.jsp.JspWriter -> 表示输出对象(调用它的功能来进行页面内容的输出)
4.【config】-> javax.servlet.ServletConfig -> 表示对应的serlvet配置对象
5.【session】 -> javax.servlet.http.HttpSession -> 表示当前的会话对象。一般用来进行会话域的对象的存取。这个内置对象能否使用,取决于page指定的session属性是否为true。
6.【application】-> javax.servlet.ServletContext -> 表示当前的应用程序域对象
7.【page】 -> java.lang.Object -> page就是this,也就是当前的jsp对应的serlvet的类的实例对象。page是object类型需要强转成httpservlet类型
8.【exception】-> java.lang.Throwable -> 表示当前的错误对象。取决于这是一个错误页面,也就说当page指令的isErrorPage属性设置为true的时候才可以使用。ErrorPage可以把错误信息抛到你的自定义异常类里面
9.【pageContext】-> javax.servlet.jsp.PageContext -> 页面上下文对象,可以获取其它8个
pageContext 还是一个域对象。 具备域对象的几个通用方法:
setAttribute
removeAttribute
getAttribute
getAttributeNames
它还额外提供了:
findAttribute : 会在 page域、request域、session域、applicaton域 去依次查找指定名称的数据。(先找到的先用),如果都未找到,返回null
获取或设置时,还支持直接指定域类型:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE