JSPシリーズ5:JSP隠し対象



 ,jsp    
 1,jsp     JSP             .

  * jsp      _jspService      ,        ,scriptlet       。
 
 2,jsp      4 :

  *        : HttpServletRequest request, HttpServletResponse response, JspWriter out;
  *         : HttpSession session, ServletContext application, PageContext pageContext;
  * servlet   : Object page, ServletConfig config;
  *      : Throwable exception;

 3,servlet      :
  ... ...
 public void _jspService(HttpServletRequest request, HttpServletResponse response)
          throws java.io.IOException, ServletException {
      PageContext pageContext = null;
      HttpSession session = null;
      ServletContext application = null;
      ServletConfig config = null;
      JspWriter out = null;
      Object page = this;
      JspWriter _jspx_out = null;
      PageContext _jspx_page_context = null;

  ... ...

 }
 ,      :         ;

 1,HttpServletRequest request:          。
  *    : 
             。    ,               。
                   。

 2, HttpServletResponse response :           。
  *         ,Cooike     。

 3,JspWriter :          , PrintWriter     ,  page   buffer           。
  
  *             :
   flush :      ;
   isAutoFlush:  out        。       page   buffer   。
   clear clearBuffer:         .      "  ",      IO  ,    。
   
  * servlet      :
   out = pageContext.getOut();
         _jspx_out = out; 
 
 ,       :JSP   servlet     ;

 1, PageContext pageContext :                        ,                  。

  * javax.servlet.jsp.PageContext;

  *    :
   page    。            PageContext  。
     include       ,        pageContext   。jsp:include      。
              request 。
   servlet jsp     PageContext  。

  *   ,               :scope PageContext  .
   getAttribute(string name, int scope);
   setAttribute(string name, int scope);
   removeAttribute(string name, int scope);
   removeAttribute(string name)               。

  *             , page,request,session,application      。
   findAttribute(string name);

  * servlet      :
    ... ...
  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();
    ... ...
  public void _jspService(HttpServletRequest request, HttpServletResponse response)
    ... ...
   pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true);
   PageContext _jspx_page_context = null;
         _jspx_page_context = pageContext;

   application = pageContext.getServletContext();
         config = pageContext.getServletConfig();
         session = pageContext.getSession();
         out = pageContext.getOut();
    ... ...
   _jspxFactory.releasePageContext(_jspx_page_context);
    ... ...
  }

 2,HttpSession session :           ,      。

  * servlet      :
   session = pageContext.getSession();


 2,ServletContext application

  *    : web        ,          。
  * servlet      :
    application = pageContext.getServletContext();


 ,servlet  :JSP       ;

 1,Object  page :      servlet     。

  *     page     servlet       。page           。

  *    : 
       jsp     ,            。
                       。
   pageContext    page  。
   
  * servlet      :
   Object page = this;

 2,ServletConfig  config :servlet     。


 ,    :       ;

  * java.lang.Throwable exception :   JSP          。
 
 **           (page   isErrorPage=true   )   。

  :[url]http://dinghaoliang.blog.163.com/blog/static/12654071420100259471140/?fromdm&fromSearch&isFromSearchEngine=yes[/url]