日期:2014-05-16  浏览次数:20351 次

JSP隐含对象详解

? 前段时间学习了JSP的基础知识,下面是个人对JSP几个隐含对象的一些总结。

????? 首先JSP有9个隐含对象,下面我总结了几个常用的对象它们的功能

1、application?? :?? javax.servlet.ServletContext???? 其主要作用是执行JSP所在的WEB应用程序的环境,它的功能与作用域与Servlet中的ServletContext相同且共享数据,例如: 我们在Servlet中在全局范围内放入对象,在JSP中用application取出

代码如下:在servlet中代码:this.getServletContext().setAttribute("count",全局变量);

?

?????????????? 在jsp中取出的代码:String? a =(String)application.getAttribute("count");

?

?

2、out???? : javax.servlet.jsp.JspWriter???? 是引用JSp页面的输出流

?

?

?

3、page?? : java.lang.Object???? 是引用JSP页面生成的servlet的当前实例? 相当于? this

?

?

4、request??? : javax.servlet.ServletRequest???? 代表当前的HTTP请求。这个上下文可以跨越多个Web组件,只要这些组件属于同一原子请求。其作用相当于Servlet中的ServletRequest。

??????

代码如下:在servlet中代码:javax.servlet.HttpServletRequest? request.setAttribute("count",全局变量);

?

?????????????? 在jsp中取出的代码:String? a =(String)request.getAttribute("count");

?

5、session: javax.servlet.http.HttpSession???? 会话对象,代表当前的请求对象,与Servlet中的Session相同且共享数据。

?

代码如下:在servlet中代码:reuqest.getSession().setAttribute("count",全局变量);

?

?????????????? 在jsp中取出的代码:String? a =(String)session.getAttribute("count");

?

一般说来?? request 作用于运行期间在组件之间共享数据以处理一个特定的请求。session作用域被设计用来为单个用户提供持久的、有状态的体验,它可以跨越多个请求,保存在session中的数据只要用户不下线,浏览器没关闭,值都会保存。application作用域只有在需要组件之间跨用户会话共享数据时才应该使用,它的值保存在服务器中,即只要web 服务器不关闭,值就一直存在。