JSP学习笔记四:JSP语法之内置对象

  JSP有9个内置对象,分别是request(请求对象)、response(响应对象)、 pageContext(页面上下文对象)、session(会话对象)、application(应用程序对象)、out(输出对象)、config(配置对象)、page(页面对象)和exception(例外对象)。

  那么,这些对象是怎么来的呢?我们看一下转译文件。

 public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException {

    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;
  
  ...

}

  可以看到,request和response是该方法的参数值,其他变量(除Exception)则在函数中声明。这是它们的类型。

NO. 内置对象 类型
1 pageContext javax.servlet.jsp.PageContext
2 request javax.servlet.http.HttpServletRequest
3 response javax.servlet.http.HttpServletResponse
4 session javax.servlet.http.HttpSession
5 application javax.servlet.ServletContext
6 config javax.servlet.ServletConfig
7 out javax.servlet.jsp.JspWriter
8 page java.lang.Object
9 exception java.lang.Throwable

  对于内置对象使用的一些说明:

  a)request对象代表来自客户端的请求,比如我们在Form表单中填写的信息,是最常用的对象。常用方法为getParameter()、getParameterNames()、getParameterValue(),通过调用这些方法来获取请求对象中所包含的参数值。

  b)需要向客户端发送数据进行显示时,使用out对象,而不用response对象。

  c)session用于保存用户信息,跟踪用户操作,使用Map类保存数据。session对象的value可以使复杂的对象类型(甚至可以是自定义类),而不仅仅局限于字符串类型。session通常在不同的JSP页面保存客户信息的情况下使用,比如需要登录的情况。

  d)application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。同样是Map类保存数据,使用方法与session相同。

  e)pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。

  打开转译文件,在_jspServive()方法中,有这样的代码:

 application = pageContext.getServletContext();
 config = pageContext.getServletConfig();
 session = pageContext.getSession();
 out = pageContext.getOut();

  

原文地址:https://www.cnblogs.com/AEIOU19994/p/5457227.html