javaweb之jsp的4种作用域(page,request,session,application)的介绍与应用(值得看看)

对象的生命周期和可访问性称为作用域。在jsp中有四种作用域:页面域(page),请求域(request),会话域(session),应用域(application)。下面就来详细的介绍这是四种作用域。

一、page(页面域)
page(页面域)的生命周期是指页面执行期间。存储在页面域的对象只对于他所在页面是可访问的。
二、request(请求域)
request(请求域)的生命周期是指一次的请求过程,包括请求被转发或者被包含的情况。存储在请求域中的对象只有在此次请求过程中才可以被访问。
三、session(会话域)
session(会话域)的生命周期是指某个客户端与服务器所连接的时间;客户端在第一次访问服务器时创建会话,再会话期间或者用户主动退出后,会话结束。存储在会话域中的对象在整个会话期间(可能包含多次请求)都可以被访问。
四、application(应用域)
application(应用域)的生命周期是指从服务器开始执行服务到服务器关闭为止,是4个作用域中时间最长的一个。
以上四个作用域都通过setAttribute(String name,Object value)方法来存储属性,通过getAttribute(String name)来获得属性,从而实现属性对象在不同作用域的数据分享。
下面我们,我们来用代码演示 pageContext,session,application,的页面访问统计效果。
visitCount.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>访问统计</title>
</head>
<body>
	<%
		int pageCount = 1;
		int requestCount = 1;
		int sessionCount = 1;
		int applicationCount = 1;
		//页面域统计次数
		if(pageContext.getAttribute("pageCount")!=null){
			pageCount = Integer.parseInt(pageContext.getAttribute("pageCount").toString());
			pageCount++;
			
		}
		pageContext.setAttribute("pageCount", pageCount);
		
	
		//会话域统计次数
		if(session.getAttribute("sessionCount")!=null){
			sessionCount = Integer.parseInt(session.getAttribute("sessionCount").toString());
			sessionCount++;
			
		} 
		session.setAttribute("sessionCount", sessionCount);
		//应用域统计次数
		if(application.getAttribute("applicationCount")!=null){
			applicationCount = Integer.parseInt(application.getAttribute("applicationCount").toString());
			applicationCount++;
			
		}
		application.setAttribute("applicationCount", applicationCount);
	%>
	<p>页面统计次数:<%=pageCount %></p>
	<p>会话统计次数:<%=sessionCount %></p>
	<p>应用统计次数:<%=applicationCount %></p>
</body>
</html>

运行visitCount.jsp页面

在这里插入图片描述
多次刷新浏览器后的结果

在这里插入图片描述
在另一个浏览器中打开的结果
在这里插入图片描述
从上面的结果可以看出,pageContext域属性的访问范围是担当前jsp页面,因此访问统计次数始终都是1,session域属性的访问范围为当前浏览器域服务器的会话,因此刷新页面访问次数会累加,但是开启新的浏览器窗口时,会新建一个会话,计数又从1开始。application域属性的访问范围为整个应用,所以只要应用程序不停止运行,计数就会不断地累加。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值