内置对象--Session对象:

每个用户分别对应不同的`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。为什么上一次需要???不明白

猜你喜欢

转载自www.cnblogs.com/youwuyi/p/10237170.html