1、JAVA WEB开发实战经典,第6章:JSP内置对象 四种属性范围,李兴华,北京魔乐科技软件学院,本章目标,掌握属性的操作方法 掌握JSP中的四种属性范围的作用 掌握pageContext对象设置四种属性范围的方法,四种属性范围,在JSP中提供了四种属性的保存范围,所谓的属性保存范围,指的就是一个设置的对象,可以在多少个页面中保存并可以继续使用 四种属性范围: pageContext:只在一个页面中保存属性,跳转之后无效。 request:只在一次请求中保存,服务器跳转后依然有效。 session:在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用。 application:在整
2、个服务器上保存,所有用户都可以使用,属性操作方法,page属性范围(pageContext范围),page属性范围(使用pageContext表示,但是一般来讲都习惯于将这种范围称为page范围)表示将一个属性设置在本页上,跳转之后无法取得,设置和取得page范围的属性,设置page范围的属性,取得page范围的属性,request属性范围,如果要在服务器跳转之后属性可以继续保存下来,则可以使用request属性范围操作,request属性范围表示的是在服务器跳转之后,所有设置的内容依然会被保留下来,设置request范围的属性,取得request范围的属性,使用超链接跳转,关于request
3、属性范围的理解,request表示的是客户端的请求,正常情况下,一次请求服务器只会给予一次回应,那么这个时候如果是服务器端跳转,请求的地址栏没有改变,所以也就相当于回应了一次,而如果地址栏改变了,就相当于是发出了第二次请求,则第一次请求的内容肯定就已经消失了,所以无法取得。,session属性范围,如果现在希望一个属性设置之后,可以在任何一个与设置页面相关的页面中取得的话,则就可以使用session属性范围,使用session设置属性之后,不管是客户端跳转还是服务器端跳转,只要属性设置了就都可以取得,设置session范围的属性,取出session范围的属性,application属性范围,如
4、果现在希望设置一个属性,可以让所有的用户(每一个session)都能看得见的话,则可以将属性范围设置成application,这样属性就保存在了服务器之上。,设置application范围的属性,取得application范围的属性,深入研究page属性范围,之前研究过的page属性范围中使用的是pageContext进行属性设置的,但是从javax.servlet.jsp.PageContext类中可以发现,有以下的一种设置属性的方法 public void setAttribute(String name,Object value,int scope) 在PageContext类中存在四个表示属性范围的常量,可以直接通过这些常量指定scope的内容: public static final int PAGE_SCOPE public static final int REQUEST_SCOPE public static final int SESSION_SCOPE public static final int APPLICATION_SCOPE,设置request范围的属性,小结,四种属性范围是整个WEB的核心操作 属性范围规定了属性的有效范围 PageContext对象可以直接操作四种属性范围,下一章内容,request对象,