在JSP中提供了四种属性的保存范围,所谓属性保存范围,指的就是一个设置的对象,可以在多少个页面中保存并继续使用。
四种属性范围:
pageContext 在一个页面中保存属性,跳转之后无效。
request 只在一次请求中保存,服务器跳转之后依然有效。
session 在一次会话范围中,无论何种跳转都可以继续使用。
application 在整个服务器上保存,所有用户都可以使用。
以pageContext为例:
- <%@page contentType="text/html" pageEncoding="GBK"%>
- <%@page import="java.util.*"%>
-
- <html>
- <head><title>JSP</title></head>
-
- <body>
-
- <%
- pageContext.setAttribute("name","张三");
- pageContext.setAttribute("birthday","1993-04-06");
- %>
- <%
- String username=(String)pageContext.getAttribute("name");
- String birthday=(String)pageContext.getAttribute("birthday");
- %>
- 姓名:<%=username%><br><br>
- 生日:<%=birthday%>
-
- </body>
- </html>
以下跳转就不能用pageContext:
文件名:request01.jsp
- <%@page contentType="text/html" pageEncoding="GBK"%>
- <%@page import="java.util.*"%>
-
- <html>
- <head><title>JSP</title></head>
-
- <body>
-
- <%
- request.setAttribute("name","张三");
- request.setAttribute("birthday","1993-04-06");
- %>
- <jsp:forward page="pageContext02.jsp"/>
-
- </body>
- </html>
文件名:request02.jsp
- <%@page contentType="text/html" pageEncoding="GBK"%>
- <%@page import="java.util.*"%>
-
- <html>
- <head><title>JSP</title></head>
-
- <body>
-
- <%
- String username=(String)request.getAttribute("name");
- String birthday=(String)request.getAttribute("birthday");
- %>
- 姓名:<%=username%><br><br>
- 生日:<%=birthday%>
-
- </body>
- </html>
其他的属性以此类推。