【总结】Java Web 中的4种属性范围
我们都知道,在JSP中有4种属性的保存范围。
所谓的属性的保存范围,就是指一个内置对象,在哪些页面、多少个页面中可以保存并继续使用。
这4种属性分别是:
- page
- request
- session
- application
那么,这四种属性保存范围是什么?又分别有什么区别呢?
1、page属性范围
page属性的保存范围仅在一个页面中,即当页面发生跳转后就无效了。
- page_scope1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Page属性范围</title>
</head>
<body>
<%
pageContext.setAttribute("name", "奋斗中的编程菜鸟");
pageContext.setAttribute("birthday", new Date());
%>
<%
String username = (String)pageContext.getAttribute("name");
Date userbirthday = (Date)pageContext.getAttribute("birthday");
%>
<h2>姓名:<%=username %></h2>
<h2>生日:<%=userbirthday %></h2>
</body>
</html>
在上面的代码中设置属性并在本页中取得属性。
结果如图所示:
由此可见,page属性在本页中是有效的,那么,当我们进行页面跳转后,page属性还能够取得吗?
- page_scope2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Page属性范围</title>
</head>
<body>
<%
pageContext.setAttribute("name", "奋斗中的编程菜鸟");
pageContext.setAttribute("birthday", new Date