JSP的四个作用域

230 阅读1分钟

(1)page(即页面范围,只在当前页面生效) 如果是在其他页面则显示为空

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>JSP的四个作用范围</h1>
<%
//page作用范围
pageContext.setAttribute("name", "张三");
//request范围
request.setAttribute("name","李四");
//session范围
session.setAttribute("name","王五");
//application范围
application.setAttribute("name","赵六");
%>
<h1>当前页面获取值</h1>
<%=pageContext.getAttribute("name")%></br>
<%=request.getAttribute("name")%></br>
<%=session.getAttribute("name") %></br>
<%=application.getAttribute("name") %>
<%转发到demo2.jsp
request.getRequestDispatcher("/demo1/demo2.jsp").forward(request,response);
%>
</body>
</html>

运行后的结果为: page页面范围 (2)request 将请求转发demo2.jsp改为跳转到demo2.jsp

<a href="/demo/demo1/demo2.jsp">跳转</a>

运行结果 四个范围页面 跳转后 request范围 因为使用超链接的方式传递,这个值是无法向下传递的。 因此这里的request为Null. (3)session(会话范围) session 关闭浏览器或者换另一个再次进入这个页面: session 此时相当于新开了一个会话,所以这里session获取的值为null。 (4)application(应用范围) 这个范围是最大的范围,任何地方都可以使用。 除非是你关闭了服务器。 所以四种作用范围大小为:page<request<session<application。