您现在的位置是:首页
>
对象具有属性和行为两个方面 浅析JSP开发中的对象和范围属性
浅析JSP开发中的对象和范围属性 在JSP页面中的对象 包括用户创建的对象(例如 JavaBea 对象)和JSP的隐含对象 都有一个范围属性 范围定义了在什么时间内 在哪一个JSP页面中可以访问这些对
浅析JSP开发中的对象和范围属性
在JSP页面中的对象 包括用户创建的对象(例如 JavaBean对象)和JSP的隐含对象 都有一个范围属性 范围定义了在什么时间内 在哪一个JSP页面中可以访问这些对象 例如 session对象在会话期间内 可以在多个页面中被访问 application对象在整个Web应用程序的生命周期中都可以被访问 在JSP中 有 种范围 如下所示 ·page范围 具有page范围的对象被绑定到javax Servlet jsp PageContext对象中 在这个范围内的对象 只能在创建对象的页面中访问 可以调用pageContext这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象(pageContext对象还提供了访问其他范围对象的getAttribute方法) pageContext对象本身也属于page范围 当Servlet类的_jspService()方法执行完毕 属于page范围的对象的引用将被丢弃 page范围内的对象 在客户端每次请求JSP页面时创建 在页面向客户端发送回响应或请求被转发(forward)到其他的资源后被删除 ·request范围 具有request范围的对象被绑定到javax servlet ServletRequest对象中 可以调用request这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象 在调用forward()方法转向的页面或者调用include()方法包含的页面中 都可以访问这个范围内的对象 要注意的是 因为请求对象对于每一个客户请求都是不同的 所以对于每一个新的请求 都要重新创建和删除这个范围内的对象 ·session范围 具有session范围的对象被绑定到javax servlet HttpSession对象中 可以调用session这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象 JSP容器为每一次会话 创建一个HttpSession对象 在会话期间 可以访问session范围内的对象 ·application范围 具有application范围的对象被绑定到javax servlet ServletContext中 可以调用application这个隐含对象的getAttribute()方法来访问具有这种范围类型的对象 在Web应用程序运行期间 所有的页面都可以访问在这个范围内的对象 下面我们通过几个简单的例子 来看一下这 种范围对象的应用 .测试page范围 test jsp <%pageContext setAttribute( name zhangsan );out println( test jsp: );out println(pageContext getAttribute( name ));out println( <p> );pageContext include( test jsp );%> test jsp <%out println( test jsp: );out println(pageContext getAttribute( name ));%> 访问test jsp 将看到如下的输出 test jsp: zhangsan test jsp: null 说明保存在pageContext对象中的属性具有page范围 只能在同一个页面中被访问 .测试request范围 修改test jsp和test jsp 如下所示 test jsp <%request setAttribute( name zhangsan );out println( test jsp: );out println(request getAttribute( name ));out println( <p> );pageContext include( test jsp );%> test jsp <%out println( test jsp: );out println(request getAttribute( name ));%>访问test jsp 将看到如下的输出 test jsp: zhangsan test jsp: zhangsan 说明保存在request对象中的属性具有request范围 在请求对象存活期间 可以访问这个范围内的对象 将

pageContext include( test jsp ); 这一句注释起来 先访问test jsp 再访问test jsp 可以看到如下输出 test jsp: null 这是因为客户端开始了一个新的请求 .测试session范围 修改test jsp和test jsp 如下所示 test jsp <%session setAttribute( name zhangsan );%> test jsp <%out println( test jsp: );out println(session getAttribute( name ));%> 先访问test jsp 然后在同一个浏览器窗口中访问test jsp 可以看到如下输出 test jsp: zhangsan 说明保存在session对象中的属性具有session范围 在会话期间 可以访问这个范围内的对象 如果我们在访问完test jsp后 关闭浏览器 重新打开浏览器窗口 访问test jsp 将看到如下输出 test jsp: null 这是因为客户端与服务器开始了一次新的会话 .测试application范围 修改test jsp和test jsp 如下所示 test jsp <%application setAttribute( name zhangsan );%> test jsp <%out println( test jsp: );out println(application getAttribute( name ));%> lishixinzhi/Article/program/SQL/201311/16142
很赞哦! (1070)