JSP为简化页面的开发提供了一些内部对象。这些内部对象不需要由JSP的编写者实例化,它们由容器(Tomcat context)实现和管理,在所有的JSP页面中都能使用内部对象。所有的内部对象只有对脚本或表达式有用,但在JSP声明中不可用。JSP里有以下内部对象:
request
该对象是请求对象,每个request对象封装这一次用户请求,并且所有的请求参数都被封装在request对象中。因此它是获取请求参数的重要途径。它被包装成HttpRequest接口,通过getParamter()方法得到request对象的请求参数。
该对象是HttpServletRequest接口的实例。
其中比较重要的方法有:getAttribute、getParameter、getCookies、getParameterNames,getParameterValues,getSession、setAttribute、getAttributeNames、 getMethod、getQueryString等。
response
该对象被包装成HttpServletResponse接口。它封装了JSP产生的响应,然后被发送到客户端以响应客户的请求。
- 其中比较重要的方法有:addCookie、setContentType、 sendRedirect(重定向)、flushBuffer、setHeader()
- 重定向:它会丢失所有的请求参数和request范围的属性,它将产生第二次请求,与前一次请求不在同一个request范围。
pageContext
pageContext对象被封装成javax.servlet.pageContext接口,它为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中以命名对象的访问。使用它还可以访问page,request,session,application范围的变量。
其中比较重要的方法有:getAttribute(page范围)、getRequest、getResponse、setAttribute、getServletContext、getSession。
out
对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
session
- session对象用来保存每个用户的信息,以便跟踪每个用户的操作状态。其中session信息保存在容器里,
- 一般情况下,用户首次登陆系统时容器会给此用户分配一个唯一标识的session id,这个ID用于区分其他的用户,当用户退出系统时(浏览器时),这个session就会自动消失。
- session对应的是HttpSession接口。
其中比较重要的方法有:getAttribute、getAttributeNames、removeAttributes、setAttribute。
config
该对象被封装成javax,servlet.ServletConfig接口,它表示Servlet的配置。当一个Servlet被初始化时,容器把某些信息通过此对象传递给这个Servlet。
page
该对象是java.lang.Object类的一个实例。它指的是JSP实现类的实例,也就是说,它是JSP本身,通过这个可以对它进行访问。指Servlet的this对象
exception
该对象是java.lang.Throwable类的一个实例。它指的是运行时的异常,也就是被调用的错误页面的结果,只有在错误页面(在页面指令里有isErrorPage=true的页面)才可以使用该对象。
application
application对象为多个应用程序保存信息,对于一个容器而言,每个用户都共同使用一个application对象,这和session对象是不一样的。服务器启动后,就会自动创建application对象,这个对象会一直会保持直到服务器关闭为止
其中比较重要的方法有:setAttribute、getAttribute、getInitParameter、getServletInfo()、getAttributeNames、等。