Jsp的内置对象

  • 什么是内置对象: 在jsp开发中,会频繁使用到一些对象, 例如HttpSession, ServletContext, ServletContext, HttpServletRequet。
  • 如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。
  • 所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可!这些创建好的对象就叫内置对象!
  • 举例:
  • servlet: HttpSession session = request.getSession(true); (需要开发者做)
  • jsp:
  • tomcat服务器: HttpSession session = request.getSession(true);(不需要开发者做)
  • 开发者做的: session.getId();

JSP-9大内置对象(内置对象名 : 类型)

  • request : HttpServletRequest
  • response : HttpServletResponse
  • config : ServletConfig
  • application : ServletContext
  • session : HttpSession
  • exception : Throwable
  • page : Object(this)
  • out : JspWriter
  • pageContext : PageContext

Out对象

  • out对象类型,JspWriter类,相当于带缓存的PrintWriter
  • PrintWriter.wrier(内容) : 直接向浏览器写出内容
  • JspWriter.writer(内容) : 向jsp缓冲区写出内容(默认8kb)
  • JSP页面缓冲机制 :
  • JspWriter首先写到JspWriter缓冲区, 然后当缓冲区满足下面4个条件时, 缓冲区的内容会向外写入PrintWriter到的对象当中,最后PrintWriter的write方法直接输送到浏览器中
  • 当满足以下条件之一,缓冲区内容写出:
    1)缓冲区满了 :
    2)刷新缓存区 : out.flush
    3)关闭缓存区 : buffer = "0kb" 4)执行完毕jsp页面 :
  • 方法:
  • out.flush() : 刷新缓存
  • out.getRemaining : 查看缓冲区剩余大小
  • out.getBufferSize : 查看缓冲区大小

JSP的内置对象:Out、pageContext_内置对象

pageContext对象

JSP的内置对象:Out、pageContext_内置对象_02

  1. 可以从PageContext对象中获取其他8个内置对象
  • 使用场景: 在自定义标签的时候,PageContext对象频繁使用到!
    JspWriter out =pageContext.getOut();HttpServletRequest rquest = pageContext.getRequest();
  1. 本身是一个域对象
  • ServletContext : context域
  • HttpServletRequet : request域
  • HttpSession : session域
    Servlet中的域对象: ServletContext, HttpServletRequet, HttpSession
  • PageContext : page域 (jsp特有的)
  • 作用 : 保存数据和获取数据,用于共享数据
  • 保存数据
    1)默认情况下,保存到page域 : pageContext.setAttribute("name");
    2)可以向四个域对象保存数据 : pageContext.setAttribute("name",域范围常量)
  • 获取数据
    1)默认情况下,从page域获取 : pageContext.getAttribute("name")
    2)可以从四个域中获取数据 : pageContext.getAttribute("name",域范围常量)
  • 域范围常量:
  1. PageContext.PAGE_SCOPE
  2. PageContext.REQUEST_SCOPE
  3. PageContext..SESSION_SCOPE
  4. PageContext.APPLICATION_SCOPE

3)自动在四个域中搜索数据: pageContext.findAttribute("name");

顺序 : page域 -> request域 -> session域- > context域(application域)

Jsp中的四个域对象 :

  1. 简介:
  • pageContext : page域
  • request : request域
  • session : session域
  • application : context域
  1. 域对象作用:保存数据和获取数据, 用于数据共享
  2. 域对象方法:
  • setAttribute("name",Object) : 保存数据
  • getAttribute("name") : 获取数据
  • removeAttribute("name") : 清除数据
  1. 域对象作用范围:
  • page域 : 只能在当前jsp页面中使用 (当前页面)
  • request域 : 只能在同一个请求中使用 (转发)
  • session域 : 只能在同一个会话 (session对象) 中使用 (私有的)
  • context域 : 只能在同一个web应用中使用(全局的)

JSP的内置对象:Out、pageContext_开发者_03

JSP的内置对象:Out、pageContext_开发者_04

JSP的内置对象:Out、pageContext_开发者_05