内置对象--Session对象:

本文深入探讨了Web开发中Session的工作原理,包括如何在服务器端存储用户会话信息,以及Session在不同页面和多网站间的应用。通过示例代码展示了Session的创建、属性设置与获取,以及生命周期管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

每个用户分别对应不同的`session,都保存在服务器。

(在不同页面切换,服务器知道是同一人,是session;在一家公司的几个网站里切换,只登陆一次,其他的也可以进去,比如登录淘宝就可以进天猫,用的是CAS单点登录。不知道这两个原理上有什么类似)

 

 

<% 
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
      Date d = new Date(session.getCreationTime());
      session.setAttribute("username", "admin"); 
      session.setAttribute("password", "123456");
      session.setAttribute("age", 20);
      
      //设置当前session最大生成期限单位是秒
      //session.setMaxInactiveInterval(10);//10秒钟
      //session.invalidate();//销毁当前会话。
 %>
    Session创建时间:<%=sdf.format(d)%><br>    
    Session的ID编号:<%=session.getId()%><BR>
         从Session中获取用户名:<%=session.getAttribute("username") %><br>
    <% 
       //session.invalidate();//销毁当前会话
    %>
    <a href="session_page2.jsp" target="_blank">跳转到Session_page2.jsp</a>//跳转也是同一个会话。
生命周期

 

 

 

修改后启动项目:

打开tomcat后台(换个页面,这个page1的页面不要关闭)。进入管理员(要先设置管理员的账户、密码):

项目有一个会话,点击这个  1   可以查看会话:

关闭再打开,是一次新的会话,进入管理页面,可以看到,原来的会话还在(在等待超时):

 

设置超时时间:

这个web.xml是项目的,不是tomcat的:

去查看:

等了一分钟,页面的值并没有变,不知道为什么。在myeclipse里把程序停止再启动,再试试

等一分钟后,值就变了,说明一分钟后的会话消失了。

为什么要重启一个服务器才行?如果不重启,修改代码后只保存,难道就没有变吗?应该是修改jsp的代码才会离开有效,其他的代码需要重启项目才行

 

原来的过期时间设置是1分钟,修改为两分钟,只保存,刷新页面,不重启tomcat,试试:

过去一分钟,没有变:

两分钟后,会话变了:

说明设置是有效的,并不需要重启tomcat。为什么上一次需要???不明白

 

转载于:https://www.cnblogs.com/youwuyi/p/10237170.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值