Jsp九大内置对象

来源:互联网 发布:临汾行知学校高考成绩 编辑:程序博客网 时间:2024/05/06 16:36

内置对象:
1.什么时候内置对象
可以不加声明和创建就可以在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量。
2.九大内置对象
out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
config(ServletConfig):对应“真身”中的ServletConfig;page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;
pageContext(PageContext):页面上下文对象;
exception(Throwable):只有在错误页面中可以使用这个对象;
request(HttpServletRequest):即HttpServletRequest类的对象;
response(HttpServletResponse):即HttpServletResponse类的对象;
application(ServletContext):即ServletContext类的对象;
session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session=”false”%>,说明这个页面不能使用session。
附上jsp转为Servlet之后的java代码,有助于理解Jsp的内置对象的工作原理

package org.apache.jsp;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import java.util.*;public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase    implements org.apache.jasper.runtime.JspSourceDependent {   int count = 0;   int getCount(){   int num = 100;   return num = 100*count;   }  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();  private static java.util.List _jspx_dependants;  private javax.el.ExpressionFactory _el_expressionfactory;  private org.apache.AnnotationProcessor _jsp_annotationprocessor;  public Object getDependants() {    return _jspx_dependants;  }  public void _jspInit() {    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());  }  public void _jspDestroy() {  }  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;    try {      response.setContentType("text/html;charset=ISO-8859-1");      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;      out.write('\r');      out.write('\n');String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";      out.write("\r\n");      out.write("\r\n");      out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");      out.write("<html>\r\n");      out.write("  <head>\r\n");      out.write("    <base href=\"");      out.print(basePath);      out.write("\">\r\n");      out.write("    \r\n");      out.write("    <title>My JSP 'index.jsp' starting page</title>\r\n");      out.write("\t<meta http-equiv=\"pragma\" content=\"no-cache\">\r\n");      out.write("\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\r\n");      out.write("\t<meta http-equiv=\"expires\" content=\"0\">    \r\n");      out.write("\t<meta http-equiv=\"keywords\" content=\"keyword1,keyword2,keyword3\">\r\n");      out.write("\t<meta http-equiv=\"description\" content=\"This is my page\">\r\n");      out.write("  </head>\r\n");      out.write("  \r\n");      out.write("  <body>\r\n");      out.write("  ");          out.write("\r\n");      out.write("   \r\n");      out.write("   ");      out.write("\r\n");      out.write("  \r\n");      out.write("  ");      out.print(++count );      out.write("\r\n");      out.write("  ");      out.print( getCount() );      out.write("\r\n");      out.write("  <form action=\"test.do\" method=\"post\">\r\n");      out.write("  <select name =\"color\">\r\n");      out.write("  <option>White</option>\r\n");      out.write("  <option>Red</option>\r\n");      out.write("  <option>Yellow</option>\r\n");      out.write("  <option>Blue</option>\r\n");      out.write("  </select>\r\n");      out.write("  \r\n");      out.write("  <input type=\"checkbox\" name=\"hobby\" value=\"football\">football<br>\r\n");      out.write("  <input type=\"checkbox\" name=\"hobby\" value=\"football\">basketball<br>\r\n");      out.write("  <input type=\"checkbox\" name=\"hobby\" value=\"football\">baseball<br>\r\n");      out.write("  \r\n");      out.write("  <input type=\"submit\">\r\n");      out.write("  </form>\r\n");      out.write("  </body>\r\n");      out.write("</html>\r\n");    } catch (Throwable t) {      if (!(t instanceof SkipPageException)){        out = _jspx_out;        if (out != null && out.getBufferSize() != 0)          try { out.clearBuffer(); } catch (java.io.IOException e) {}        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);      }    } finally {      _jspxFactory.releasePageContext(_jspx_page_context);    }  }}
0 0
原创粉丝点击