JSP中九大内置对象和四种属性范围详解(2)

<%session.setAttribute("name", "这是session测试"); %> <a href="https://www.jb51.net/two.jsp" >跳转</a> <%session.setAttribute("name", "这是session测试"); %> <jsp:forward page="https://www.jb51.net/two.jsp"></jsp:forward>

在two.jsp接收页面的代码是:

<%=session.getAttribute("name") %>

我们可以发现,无论客户端还是服务端跳转,设置的数据都可以在其他页面接收。

4,application范围

具有application范围的对象被绑定到javax.servlet.ServletContext中,可以调用application这个隐含对 象的getAttribute()方法来访问具有这种范围类型的对象。在Web应用程序运行期间,所有的页面都可以访问在这个范围内的对象。这个也就是说,只要设置了属性,即使重新启动浏览器,都还可以获取属性值,除非重启服务器。这一范围不做举例。

对上述四中属性范围,实际开发中遇到最多的是request和session。一般来说,只对于同一个功能的属性的传递,使用request范围属性。那么对于session范围来说,主要还是用于登陆上面。

上面四种属性范围,实际上四种属性范围都是通过pageContext设置的。在pageContext中,setAttribute()方式实际上被重载过:

1,public abstract void setAttribute(java.lang.String name, java.lang.Object value), 2,public abstract void setAttribute(java.lang.String name,java.lang.Object value,int scope)

第二种方法相比第一个方法多了一个参数(int scope),实际上这个参数就是指定属性范围的参数。

1,APPLICATION_SCOPE,2,PAGE_SCOPE,3,SESSION_SCOPE,4,REQUEST_SCOPE

也就是说,通过这个方法,我们可以设置四种属性范围,这也就是说,我们可以使用pageContext来完成上面四种属性的范围设定。

例如,我们用session时可以这样写:

<%@page contentType="text/html; charset=utf-8"%> <% pageContext.setAttribute("name","熊九天",PageContext.SESSION_SCOPE); %> <a href="https://www.jb51.net/two.jsp" >跳转</a>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzjfsp.html