为了简化JSP表达式和scriptlets中的代码提供了种自动定义的变量有时称做implicit objects(固有对象)它们是requestresponseoutsessionapplicationconfigpageContext和 page下面我们来详细的了解它们
request
与request相联系的是HttpServletRequest类使您可以得到request的参数(通过getParameter方法)request 的类型(GETPOSTHEAD等等)和引入的HTTP头(cookiesReferer等等)严格来说request是类ServletRequest的一个子类而不是HttpServletRequest类的事实上如果request的协议不是HTTP那麽它几乎不会工作
response
对客户端的response与HttpServletResponse 相连请注意因为输出流是放入缓沖的所以可以设置HTTP状态码和response头尽管在标准的servlets中不允许将之发送到客户端
out
这里使用PrintWriter类来发送输出到客户端然而为了使response对象有效可使用一个PrintWrite类的使用缓沖的版本JspWriter使用session的属性page directive您可以自己定义缓沖的大小甚至可以在使用了buffer属性后关闭缓沖也请注意out仅用于scriptlets之中因为JSP表达式自动的放入输出流所以极少需要明确的声明out
session
应用与request相联系的HttpSession类因为session是自动创建的即使没有一个引入的session这种变量仍可绑定有一个例外是如果您用page directive关闭session再试图使用session时将导致错误(在JSP页面向servlet转换时)
application
使用ServeletContext类通过使用getServletConfig()getContext()得到
config
是一个ServletConfig类的对象
pageContext
这是JSP中的一个新的类PageContext用于精练特定服务器的特点时使用如提高JspWriters的执行效率如果您通过这个类访问而不是直接的您的代码将仍然运行在“规则”的JSP /servlet引擎
page
在JAVA中不是很有用它仅仅是用来保存在脚本的语言不是JAVA时的时间