session的应用-用户信息展示、实现游客访问及统计在线人数

  session(会话)是一个非常非常好用的东西

应用1:用户信息的展示

  在验证登录成功后,将用户体存放在会话中
HttpSession session = request.getSession(); session.setAttribute("user", user);//在会话中存入用户体
  Jsp页面就可以从会话中拿到用户体,可用于昵称展示(这里昵称为放羊人):在这里插入图片描述
  可用于显示用户中心信息:在这里插入图片描述

应用2:开发游客访问功能

  若在首页中,用户没有登录,但点击了“随便逛逛”功能,则进入了游客访问的功能。
在这里插入图片描述
  在主页面中会提示“未登录”的字样。
在这里插入图片描述
  游客点击“个人中心”,提示“请先登录”。
在这里插入图片描述

  实现非常地简单,只需在Jsp页面中判断一下会话中是否存在用户体,然后根据是否存在用户体来显示不同的内容。

	<!--显示昵称问好的实现-->
	<dvi class="helloBlock">
	   <%if (session.getAttribute("user") != null) { %><!--如果user属性不为空,说明已登录,显示昵称问好-->
		<%=((User)session.getAttribute("user")).getNickName()%>,你好😁
	   <%} else {%><!--否则,显示未登录-->
	      未登录😡<br><a href="login.jsp">去登录</a>
	   <%} %>
	</dvi>
	 <!--游客点击个人中心部分的实现,同理-->
	 <%if (session.getAttribute("user") == null) { %>
		<div onclick="(alert('请先登录'))"  class="personalInfomation">
			<i class="fa fa-user-circle-o"></i>个人中心
		</div>	 	 
	 <%} else {%>
	  <a href="userCenter.jsp">
		<div class="personalInfomation">
			<i class="fa fa-user-circle-o"></i>个人中心
		</div>
	  </a>
	  <%} %>

应用3:统计在线人数

  这实际上已经是属于监听者的应用了,不过这里监听的是会话,所以就放在一起说了。
  打开一个浏览器,显示浏览人数1;打开另一个浏览器,则显示浏览人数2。
在这里插入图片描述

  监听者类代码如下(别忘了去xml注册):

public class CountUsersNumber implements HttpSessionListener{
	public void sessionCreated(HttpSessionEvent se) {//若会话创建
		ServletContext context = se.getSession().getServletContext();//得到上下文对象
		Integer num = (Integer)context.getAttribute("num");//从上下文中拿到num属性
		if (num == null) {//如果上下文中没有num属性,则将在线人数设为1(会话开始创建,说明肯定有人在线)
			context.setAttribute("num", 1);
		} else {//已存在num属性,则人数加1
			num++;
			context.setAttribute("num", num);
		}
	}
	
	public void sessionDestroyed(HttpSessionEvent se) {//若会话销毁,代码同理
		ServletContext context = se.getSession().getServletContext();
		Integer num = (Integer)context.getAttribute("num");
		if (num == null) {
			context.setAttribute("num", 1);
		} else {
			num--;
			context.setAttribute("num", num);
		}		
	}


}

  注意,用户一访问Jsp页面,会话就会被创建,所以这里统计的是浏览该网站的人数。如果要统计成功登录的人数,则要在游客能访问到的Jsp页面中,加入<%@ page session=“false”%>,阻止Jsp页面创建会话。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meow_Sir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值