jsp九个内置对象
在开发java web项目的时候我们经常需要在servlet和jsp之间进行传值,之前介绍了传值的几种方式,详见:jsp与Servlet之间传值 有时候我们在jsp和Servlet之间传值的时候,需要在Servlet中创建对象传值,但是在jsp页面中不需要创建对象,因为在jsp页面中,已经内置了九个对象分别是:request,response,application,session、out、pagecontext、config、page、exception,我们只需要拿来直接用即可。下面我们简单说一下这九个对象的特点:
- 九个对象有jsp规范提供,用户不需要实例化
- 这九个对象有web容器实现和管理
- 在所有的jsp页面均可以使用
- 只有在脚本元素的表达式中才可以使用(<%=内置对象%>,<%内置对象%>)
我们在tomcat目录下打开work\Catalina\localhost\打开任意一个我们写的web项目,在\org\apache\jsp目录下打开任意一个有jsp编译的java文件,
我们看到request和response对象是_jspService()方法的形参,剩下的都是方法中的局部变量,在方法中初始化。
一、request
request是一个非常重要的内置对象,该对象代表了客户端的请求信息,用到的也是最多的,经常用到在jsp和Servlet之间传值。每个request对象都是用户的一次请求,所有的参数都被封装在了request对象中,一次请求可以是点击一个超链接,点击一个提交按钮等等,对于第二次请求,就会是另外一个request对象了。对于转发有效,重定向是两次请求。
二、response
response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。作为jsp页面处理结果返回给用户。我们可以利用response对象设置cookie
三、session
session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”,键值对。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。
四、application
applocation对象是将信息保存到服务器中,在服务器运行期间一直有效,我们可以在此项目中的任意jsp和Servlet中获取到,直到服务器关闭,信息失效。application对象的有效时间相比于以上三种长。
以上对象我们经常使用,在一个web项目中,经常要传值,接收值,处理。下面的几种对象只能说用处很少
五、out
out对象代表jsp页面的输出流,可以用在浏览器页面输出信息,注意这是个流对象,最后要有关闭操作,另外还要有清空缓冲区操作。
六、pageContext
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的。
七、config
该对象代表jsp的配置信息,通常jsp页面无需进行配置,也就不存在配置信息。
八、page
page对象代表页面本身,其实就是Servlet中的this,类型是生成的Sevlet类,可以用page的地方就可以用this。
九、exception
exception代表异常,只有当前页面定义为错误页面的时候,该对象才可以使用。只有在包含 page的isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成
exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。
参考:《深入理解JavaWeb开发技术》--谭贞军
http://www.cnblogs.com/leirenyuan/p/6016063.html