JSP的九个隐式对象

一.JSP到Java源码的表现

      //_jspService方法,相当于Servlet里的service,用来处理请求
    public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {

    if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {
      final java.lang.String _jspx_method = request.getMethod();
      if ("OPTIONS".equals(_jspx_method)) {
        response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
        return;
      }
      if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) {
        response.setHeader("Allow","GET, HEAD, POST, OPTIONS");
        response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");
        return;
      }
    }
    //隐式对象
    final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;

二.隐式对象

1.request

  HttpServletRequest 类的实例,请求对象,提供一系列方法获取其中的请求信息

2.response

   HttpServletResponse类的实例,服务器创建请求对象时同时创建了响应对象

3.pageContext

  PageContext 类的实例,提供对JSP页面所有对象以及命名空间的访问,数据访问作用域仅在当前页面

 4.seesion

  HttpSession 类的实例,和Servlet中的session对象有一样的行为,可用于会话跟踪,session的使用也跟cookie有很大的关系。一般来说,只要浏览器不关闭,cookie就会一直生效,cookie生效,session的使用就不会受到影响。即作用域与用户相关

 5.application

  ServletContext 类的实例,相当于代表了JSP整个生命周期,数据的作用域表现为全局的

 6.config

  ServletConfig 类的实例,可以访问JSP引擎的初始化参数

 7.out

  JspWriter 类的实例,用来在response对象中写入内容(out.print,out.println)

 8.page

  相当于this,指代当前页面的实例

 9.exception

  页面必须是error页面 ,在JSP指令中使用page的isErrorPage="true",包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应

 

  

posted @ 2020-07-02 22:48  木子李和三点水  阅读(354)  评论(0编辑  收藏  举报