九大内置对象:page、config、application、request、response、session、out、exception、pageContext
【1】HttpServletRequest.request.
【2】 HttpServletResponse.response.
【3】Object page = this
page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。相当于this。
【4】 HttpSession session
以上4个内置对象又是JSP的四大作用域:page、request、session、application
为什么说他们也是JSP的四大作用域呢?因为这四个对象都能存储数据,比如request.setAttribute()注意和request.setParameter()区分开来,一个是存储在域中的、一个是请求参数,session.setAttribute()、application其实就是SerlvetContext,自然也有setAttribute()方法。而page作用域的操作就需要依靠pageContext对象来进行了。
【5】 PageContext pageContext
它是JSP页面的管理者(上下文),所以JSP中的内置对象呀,它统统能够获得,下面介绍它的api。
1、获得其它八大内置对象 getXxx()
pageContext.getOut(); //获得out对象
pageContext.getApplication(); //获得application对象
等等…
2、对作用域的属性进行操作(四大作用域)
对默认作用域的属性进行操作。page
pageContext.getAttribute(name); //获得page作用域数据
pageContext.setAttribute(name,value); //给page作用域设置内容
pageContext.removeAttribute(name); //给page作用域移除内容
3、对指定作用域的属性进行操作
getAttribute(name,scope); //获得 指定作用域中的数据
setAttribute(name,value); //给指定作用域设置内容
removeAttribute(name ,scope) 移除指定作用域的内容(page/request/session/application)
4、提供作用域常量
PageContext.PAGE_SCOPE page
PageContext.REQUEST_SCOPE request
PageContext.SESSION_SCOPE response
PageContext.APPLICATION_SCOPE application
5、一次获得指定名称内容
findAttribute(name); //依次从page、request、session、application 获得内容
【6】 ServletContext application
标识web应用上下文,类型:ServletContext,详情就看Servlet中的ServletContext的使用
ServletContext作用域中的一个,范围最大,整个应用内有效
保存数据 setAttribute(String key,Object o)
获取数据 getAttribute(String key)
【7】ServletConfig config
标识Servlet配置,类型:ServletConfig,api跟Servlet中的ServletConfig对象是一样的,servlet是一个单例对象,每个servlet都包含了自身的ServletConfig,通过servlet可以初始化一个ServletConfig
ServletConfig(ServletConfig表示servlet相关信息,和servlet相关,可以有多个) 可以获取到ServletContext(ServletContext表示servlet 容器,即“Web应用程序”都有一个上下文。有且只有一个)
ServletConfig 通过getInitParameter()可以获取到当前servlet的初始化信息
【8】 JspWriter outPrintWriter out==
输出响应体, jsp 输出底层使用 response.getWriter();什么意思呢?这里就要讲解一下JSP缓存和Servlet缓存了,输出的过程是这样的
JSP页面转换为Servlet后,使用的out对象是JspWriter类型的,所以是会先将要发送的数据存入JSP输出缓存中,然后,等JSP输出缓存满了在自动刷新到servlet输出缓存,等serlvet输出缓存满了,或者程序结束了,就会将其输出到浏览器上。除非手动out.flush()。
【9】 Throwable exception 注意:先声明isErrorPage=“true”,后使用
包含了异常的信息
使用它,必须结合page指令中的isErrorPage属性和errorPage属性。
exception.jsp 抛异常的一个NullPointException,并且跳转到error.jsp错误显示页面 errorPage属性的意思是如果发生未捕捉到的异常,将会跳转到error.jsp页面
error.jsp isErrorPage属性说明该页面是一个错误显示页面,则可以使用exception对象