前段时间学习了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 服务器不关闭,值就一直存在。