zoukankan      html  css  js  c++  java
  • 内置对象--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。为什么上一次需要???不明白

  • 相关阅读:
    Spring中常用的配置和注解详解
    SpringBoot中的常用配置
    Maven项目创建问题
    hibernate缓存:一级缓存和二级缓存
    Hibernate标准查询
    Hibernate中Hql的查询
    Hibernate中对象的三种状态
    Hibernate中使用load和get加载的区别
    Spring增强
    Spring代理模式
  • 原文地址:https://www.cnblogs.com/youwuyi/p/10237170.html
Copyright © 2011-2022 走看看