简化JSP表达式中代码 |
本文标签:JSP表达式 JSP表达式中”预定义变量”的使用 为了简化JSP表达式和scriptlets中的代码,提供了8种自动定义的变量,有时称做implicit objects(固有对象) 。它们是:request,response,out,session,application,config,pageContext,和 page 。下面我们来详细的了解它们 。 request 与request相联系的是HttpServletRequest类,使您可以得到request的参数(通过getParameter方法),request 的类型(GET,POST,HEAD,等等),和引入的HTTP头(cookies,Referer,等等) 。严格来说,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 JSP表达式中不是很有用,它仅仅是用来保存在脚本的语言不是JAVA时的时间 。HTML,scripting elements,directives,和 actions 。 |