首页 > 代码库 > jsp上的九个隐含对象

jsp上的九个隐含对象

首先说一说件jsp的原理。jsp被认为最经典的解释是  “嵌入了java 代码的html”。

在网上查了一些资料,和我本身对jsp的认识,总结如下:

  1. jsp本质上是一个servlet,继承自 当第一次访问一个jsp时,首先继承了org.apache.jasper.runtime.HttpJspBase类,并实现了接口 org.apache.jasper.runtime.JspSourceDependent。而org.apache.jasper.runtime.HttpJspBase类继承了
    HttpServlet 类,所以也可以说,jsp被转译成的一个httpServlet类型的servlet 下面我们称作jspServlet。
  2. 在实际调用的jspServlet 方法 _jspService()中 ,web容器首先定义了九个变量如下:

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;

 

在try 中对这九个变量进行了赋值 如下:

response.setContentType("text/html; charset=UTF-8");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;

 这样jsp中的java代码中就可以使用这九个变量了

 

jsp上的九个隐含对象