在 Jsp 开发中,可以保存数据,Jsp 提供了四种数据保存范围;
分别是:
page
request
session
application
Page 范围:
只在一个页面中保存数据; javax.servlet.jsp.PageContext(抽象类)
Request 范围:
只在一个请求中保存数据; javax.servlet.http.HttpServletRequest(接口)
(在同一个服务器内转发时。转发两个界面前后都可以访问到数据)
<body>
<%
// 设置两个request范围的数据 key-> value
request.setAttribute("name","request王二小");
request.setAttribute("age",12);
%>
<jsp:forward page="requestTarget.jsp"></jsp:forward>
</body>
<body>
<%
// 取值
String name=(String)request.getAttribute("name");
int age=(Integer)request.getAttribute("age");
// 获取头信息
Enumeration enu=request.getHeaderNames();
while(enu.hasMoreElements()){
String headerName=(String)enu.nextElement();
String headerValue=request.getHeader(headerName);
%>
<h4><%=headerName %> <%=headerValue %></h4>
<%
}
%>
<font>姓名:<%=name %></font>
<font>年龄:<%=age %></font>
</body>
Session 范围:
在一次会话范围中保存数据,仅供单个用户使用;javax.servlet.http.HttpSession(接口)
(浏览器关闭的话就不可以访问数据了)
<%
// 设置两个session范围的数据 key-> value
session.setAttribute("name","session王二小");
session.setAttribute("age",12);
%>
<body>
<%
// 取值
String name=(String)session.getAttribute("name");
int age=(Integer)session.getAttribute("age");
%>
<font>姓名:<%=name %></font>
<font>年龄:<%=age %></font>
</body>
Application 范围:
在整个服务器上保存数据,所有用户共享;javax.servlet.ServletContext(接口)