Servlet容器将几个对象传递给它所运行的Servlet。
例如,在Servlet的service方法中获得HttpServletRequest和HttpServletResponse,并在init方法中获得ServletConfig。
此外,还可以通过HttpServletRequest对象调用getSession方法获得一个HttpSession。
在JSP中,可以通过使用隐式对象的方式来获取这些对象。
隐式对象清单
response
类型:javax.servlet.http.HttpServletResponse
out
类型:javax.servlet.jsp.JspWriter
out对象引用javax.servlet.jsp.JspWriter,它类似于在HttpServletResonse中调用getWriter()之后得到的java.io.PrintWriter。
可以调用它的print方法重载PrintWriter,将消息发送到浏览器。
page
类型:javax.servlet.jsp.HttpJspPage
request
类型:javax.servlet.http.HttpServletRequest
request对象表示由Servlet/JSP容器传给Servlet的service方法的HttpServletRequest对象。
可以像使用HttpServletRequest对象的引用一样使用request。
如,以下代码是从HttpServletRequest对象中获取userName参数:
<% String userName = request.getParameter("userName"); %>
session
类型:javax.servlet.httpHttpSession
application
类型:javax.servlet.ServletContext
config
类型:javax.servlet.ServletConfig
pageContext
类型:javax.servlet.jsp.PageContext
pageContext是指为页面创建的javax.servlet.jsp.PageContext。
它提供了一些方法可以访问request、response等对象,不过这些方法用处不大,因为我们可以通过隐式对象来访问这些对象。
真正有用的是PageContext允许利用Expression Language访问这些对象。
PageContext提供的另一些重要的方法是那些存取属性,如getAttribute和setAttribute方法。属性可以保存在以下四种范围中:page、request、session以及application。
page范围最窄,保存在这里的属性只能在同一个JSP页面中使用。
request范围是指当前的ServletRequest。
session范围是指当前的HttpSession。
application范围是指ServletContext。
exception
类型:java.lang.Throwable