page对象的作用范围(page对象的属性有哪些)
内置对象的4个作用范围?什么情况下session会关闭?
page:在本页中有效,跳出页面则关闭。request:跨页面作用,都是用于表单提交等。session:被网站设计者限定了有效时间。application:总是有效,关闭服务器后关闭。session的生存周期置对象的4个作用范围:
1、out对象的主要作用是向客户端输出数据,主要是对数据流进行的操作。
2、response对象的作用是向客户端发送请求后的数据,可以实现设置相应contentType,设置重定向页面,定时刷新页面,使用cookie等功能。
3、session对象是浏览器通用的,session的作用是在一段会话期间,总是保存了相应的信息,常用于登录存储状态等。而jsp中的session对象可以保存信息,设置失效时间等。
4、application对象是将数据存储在服务器中,所用用户都可以共享使用,此对象是由服务器创建,也必须由服务器清除。使用方法都是使用getAttribute(名,值)和setAttribute(名,值)的方法,不要经常使用,过多使用会增加服务器的负载。
5、page对象其实是pageContext,其作用范围是这个页面,突破这个页面则会失效。
Java中JavaBean的作用范围:request和page的区别是什么啊?
JavaBean在WEB编程中一直被当作模型层对象来使用,不存在作用范围的说法,它是MVC模式的M,使用JavaBean存放数据可以有效的避免频繁的将数据存入或取出某个作用范围。
例如:当我们需要将用户的注册信息通过请求转发传递到新的页面,如果不使用JavaBean我们就得频繁的将用户属性保存到request对象中,在下一个页面又需要一个一个从request对象中取出,这样做相当麻烦,使用JavaBean将用户属性全部封装在一个User对象中我们就可以只存取request对象一次就可以了。
JavaBean早期出现在Java的图形界面编程中(Swing),这也是Java最早开始使用MVC模式,在图形界面Swing编程中的JavaBean有四大属性(根据需要,不必同时存在),而现在WEB编程中我们只需要考虑其中的Simple属性和Index属性就可以了。
page内置对象是Object类的一个实例,它是处理当前请求的JSP页面实现类的实例。page对象在页面的正文中可以被比作是this关键字,它的作用范围仅限于当前page页面。实际开发过程中使用较少。
request内置对象是HttpServletRequest对象的一个实例,代表了一个客户端请求,当用户向服务器发送请求(不论是点击链接还是提交表单),哪怕该请求在服务器上被转发N次,都是一个请求,直到服务器最终发送相应为止,这都是该request对象的生命周期。
例如:在JSP + Servlet + JavaBean的开发中,经常使用Servlet接收请求,将数据保存到JavaBean中,然后将JavaBean保存到request对象,再通过请求转发到负责显示的JSP页面,最终通过标签将JavaBean中保存的数据显示在JSP页面内。
java page对象和pageContext对象
pageContext对象这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据。pageContext是PageContext类的实例,使用pageContext可以访问page、request、session、application范围的变量。 getAttribute(String name):取得page范围内的name属性。getAttribute(String name,int scope):取得指定范围内的name属性,其中scope可以是如下4个值:PageContext.PAGE_SCOPE:对应于page范围。PageContext.REQUEST_SCOPE:对应于request范围。PageContext.SESSION_SCOPE:对应于session范围。PageContext.APPLICATION_SCOPE:对应于application范围。page对象page对象是指向当前JSP程序本身的对象,有点像类中的this。page对象其实是java.lang.Object类的实例对象,它可以使用Object类的方法,例如,hashCode()、toString()等方法。page对象在JSP程序中的应用不是很广,但是java.lang.Object类还是十分重要的,因为JSP内置对象的很多方法的返回类型是Object,需要用到Object类的方法.娶不到对象是因为,在该页面中检查有没有user?或者是经过了跳转才到达本页。
page,request,session和application的区别
(1)类型不同
Page是Object类型
request是HttpservletRequest类型
session是HttpSession类型
application是ServletContext类型
(2)作用范围不同
上述4个对象都可以存储信息,存储变量,但是它们的作用范围不同,具体如下:
application:
全局作用范围,整个应用程序共享,生命周期为从应用程序启动到停止,在这个过程中application里的变量一直在累加,除非你重启tomcat或是人工删除,否则它会一直变大。
session:
会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期为会话 超时或者服务器端强制使会话失效。简单的说就是从浏览器打开到浏览器关闭这个过程中有效。在此过程中session里的变 量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里的变量就重新计算了。
request:
请求作用域,客户端的一次请求。生命周期为一次请求或使用forward方式执行请求转发,也就是使用forward方式跳转多个jsp,在这些页面里你都可以使用这个变量。但是只要刷新页面,这个变量就失效了。
page:
指当前页面。在一个jsp页面里有效 。page里的变量没法从index.jsp传递到test.jsp。只要页面跳转了,它们就不见了。
Page、request session和application对象作用范围是越来越大,request和Page的生命周期都是短暂的,它们之间的区别就是:一个request可以包含多个page页(include 、forward以及filter)。
jsp四大作用域及区别
4个JSP内置对象的作用域分别为:application、session、request、page
1. application 作用域
在所有应用程序中有效,即只要这个网站运行着,这个作用域就有效,这个指的程序的运行过程;application作用域上的信息传递是通过ServletContext实现的
2. session作用域
在当前会话中有效,即从浏览器访问服务器开始,这个指的是用户的一个访问过程,即这次会话的开始到结束;session是通过HttpSession接口实现的
3. request作用域
在当前请求中有效,负责多个servlet之间的信息共享,即将信息放入到request中,在整个请求阶段都是有效的,即用户访问的这个阶段都可以获取到这个数据;一个HTTP请求的处理可能需要多个Servlet合作,而这几个Servlet之间可以通过某种方式传递信息,但这个信息在请求结束后就无效了。
Servlet之间的信息共享是通过HttpServletRequest接口的两个方法来实现的
4. page作用域
在当前页面有效,即在一个jsp页面上是有效的;page对象的作用范围仅限于用户请求的当前页面,对于page对象的引用将在响应返回给客户端之后被释放,或者在请求被转发到其他地方后被释放。对page对象的引用通常存储在pageContext对象中