• Session的使用


    Session的使用

    学号:201631062509

    姓名:杨菓

    1.什么是Session?

            Session:在计算机中,尤其是在网络应用中,称为"会话控制"。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。有关使用 Session 对象的详细信息,请参阅"ASP 应用程序"部分的"管理会话"。注意 会话状态仅在支持 cookie 的浏览器中保留。

    Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。以及如果需要的话,可能还有一定的操作空间。

    需要注意的是,一个Session的概念需要包括特定的客户端,特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器建立连接时所处的Session是两个不同的Session。

    Session的工作原理

    (1)当一个session第一次被启用时,一个唯一的标识被存储于本地的cookie中。

    (2)首先使用session_start()函数,PHP从session仓库中加载已经存储的session变量。

    (3)当执行PHP脚本时,通过使用session_register()函数注册session变量。

    (4)当PHP脚本执行结束时,未被销毁的session变量会被自动保存在本地一定路径下的session库中,这个路径可以通过php.ini文件中的session.save_path指定,下次浏览网页时可以加载使用。

    2.效果图

    用IE打开官网显示在线人数为1

     

    同时用360浏览器打开显示在线人数为2

    关闭一个浏览器等待一会儿显示在线人数为1

    3.源代码

     Session

     1 package util;
     2 
     3 import java.util.ArrayList;
     4 
     5 import model.User;
     6 
     7 public class SessionUtil {
     8     public static User getSessionById(ArrayList<User> userList, String sessionID){
     9         for(User user : userList){
    10             if(user.getSessionID() == sessionID){
    11                 return user;
    12             }
    13         }
    14         return null;
    15     }
    16 }
    Session

    JSP

      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4 <%@ page language="java" contentType="text/html; charset=UTF-8"
      5     pageEncoding="UTF-8"%>
      6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      7 <title>西南石油大学 - 计算机科学学院</title>
      8 <link rel="stylesheet" type="text/css" href="styles/base.css"></link>
      9 </head>
     10 <body>
     11     <div id="main">
     12         <div id="top">
     13             <div class="search">
     14                 <form>
     15                     <input class="textInput" type="text" placeholder="请输入关键字"/>
     16                     <div class="subDiv fr">
     17                         <input class="subInput" type="submit" value=""/>
     18                     </div>
     19                     
     20                 </form>
     21             </div>
     22         </div>
     23         <nav id="nav">
     24             <ul>
     25                 <li>
     26                     <a class="link" href="index.htm">网站首页</a>
     27                 </li>
     28                 <li class="mainmenu">
     29                     <a class="link" href="xygk/xyjj.htm">学院概况</a>
     30                     <dl>
     31                         <dd><a href="xygk/xyjj.htm">学院简介</a></dd>
     32                         <dd><a href="xygk/xyld.htm">学院领导</a></dd>
     33                         <dd><a href="xygk/zzjg.htm">组织机构</a></dd>
     34                     </dl>
     35                 </li>
     36                 <li class="mainmenu">
     37                     <a class="link" href="bksjy/jsjkxyjszy.htm">本科生教育</a>
     38                     <dl>
     39                         <dd><a href="bksjy/jsjkxyjszy.htm">计算机科学与技术专业</a></dd>
     40                         <dd><a href="bksjy/rjgczy.htm">软件工程专业</a></dd>
     41                         <dd><a href="bksjy/wlgczy.htm">网络工程专业</a></dd>
     42                         <dd><a href="bksjy/wlwgczy.htm">物联网工程专业</a></dd>
     43                         <dd><a href="bksjy/xxglyxxxtzy.htm">信息管理与信息系统专业</a></dd>
     44                         <dd><a href="bksjy/wlkjaqzy.htm">网络空间安全专业</a></dd>
     45                         <dd><a href="bksjy/sjkxydsjjszy.htm">数据科学与大数据技术专业</a></dd>
     46                         <dd><a href="bksjy/dwrchzpyxm.htm">对外人才合作培养项目</a></dd>
     47                         <dd><a href="bksjy/ksxx.htm">考试信息</a></dd>
     48                         <dd><a href="bksjy/xkzxxx.htm">选课重修信息</a></dd>
     49                         <dd><a href="bksjy/tzgg.htm">通知公告</a></dd>
     50                         <dd><a href="bksjy/zlxz.htm">资料下载</a></dd>
     51                         <dd><a href="bksjy/gxkjssp.htm">公选课教师视频</a></dd>
     52                     </dl>
     53                 </li>
     54                 <li class="mainmenu">
     55                     <a class="link" href="yjsjy/zsjz.htm">研究生教育</a>
     56                     <dl>
     57                             <dd><a href="yjsjy/zsjz.htm">招生简章</a></dd>
     58                             <dd><a href="yjsjy/jsjkxyjsyjxk.htm">计算机科学与技术一级学科</a></dd>
     59                             <dd><a href="yjsjy/rjgcyjxk.htm">软件工程一级学科</a></dd>
     60                             <dd><a href="yjsjy/wlkjaqyjxk.htm">网络空间安全一级学科</a></dd>
     61                             <dd><a href="yjsjy/yjsds.htm">研究生导师</a></dd>
     62                             <dd><a href="yjsjy/yjsjztx.htm">研究生奖助体系</a></dd>
     63                             <dd><a href="yjsjy/tzgg.htm">通知公告</a></dd>
     64                             <dd><a href="yjsjy/zlxz.htm">资料下载</a></dd>
     65                     </dl>
     66                 </li>
     67                 <li class="mainmenu">
     68                     <a class="link" href="szdw/js.htm">师资队伍</a>
     69                     <dl>
     70                             <dd><a href="szdw/js.htm">教授</a></dd>
     71                             <dd><a href="szdw/fjs.htm">副教授</a></dd>
     72                             <dd><a href="szdw/js1.htm">讲师</a></dd>
     73                             <dd><a href="szdw/syry.htm">实验人员</a></dd>
     74                     </dl>
     75                 </li>
     76                 <li class="mainmenu">
     77                     <a class="link" href="kxyj/kytd.htm">科学研究</a>
     78                     <dl>
     79                             <dd><a href="kxyj/kytd.htm">科研团队</a></dd>
     80                             <dd><a href="kxyj/kypt.htm">科研平台</a></dd>
     81                             <dd><a href="kxyj/kycg.htm">科研成果</a></dd>
     82                     </dl>
     83                 </li>
     84                 <li class="mainmenu">
     85                     <a class="link" href="xsgz/gzdt.htm">学生工作</a>
     86                     <dl>
     87                             <dd><a href="xsgz/gzdt.htm">工作动态</a></dd>
     88                             <dd><a href="xsgz/tzgg.htm">通知公告</a></dd>
     89                             <dd><a href="xsgz/kwcxsj.htm">课外创新实践</a></dd>
     90                             <dd><a href="xsgz/bysjy.htm">毕业生就业</a></dd>
     91                             <dd><a href="xsgz/xlzc.htm">心灵之窗</a></dd>
     92                             <dd><a href="xsgz/qcfc.htm">青春风采</a></dd>
     93                             <dd><a href="xsgz/zlxz.htm">资料下载</a></dd>
     94                     </dl>
     95                 </li>
     96                 <li class="mainmenu">
     97                     <a class="link" href="info/1189/4517.htm">招生工作</a>
     98                     <dl>
     99                             <dd><a href="zsgz/xyjs.htm">学院介绍</a></dd>
    100                             <dd><a href="zsgz/bysjyqx.htm">毕业生就业去向</a></dd>
    101                             <dd><a href="zsgz/yxbysjj.htm">优秀毕业生简介</a></dd>
    102                             <dd><a href="zsgz/xshj.htm">学生获奖</a></dd>
    103                             <dd><a href="zsgz/jyxyjs.htm">精英校友介绍</a></dd>
    104                             <dd><a href="zsgz/zsgzxcbd.htm">招生工作宣传报道</a></dd>
    105                     </dl>
    106                 </li>
    107                 <li class="mainmenu">
    108                     <a class="link" href="info/1183/2625.htm">实验中心</a>
    109                     <dl>
    110                             <dd><a href="syzx/zxjj.htm">中心简介</a></dd>
    111                             <dd><a href="syzx/syfs.htm">实验分室</a></dd>
    112                             <dd><a href="syzx/gzzd.htm">规章制度</a></dd>
    113                             <dd><a href="syzx/zlxz.htm">资料下载</a></dd>
    114                             <dd><a href="http://syskf.swpu.edu.cn">开放预约</a></dd>
    115                     </dl>
    116                 </li>
    117                 <li class="mainmenu">
    118                     <a class="link" href="djzc/djdt.htm">党建之窗</a>
    119                     <dl>
    120                             <dd><a href="djzc/djdt.htm">党建动态</a></dd>
    121                             <dd><a href="djzc/xxyd.htm">学习园地</a></dd>
    122                             <dd><a href="djzc/dwzwgk.htm">党务政务公开</a></dd>
    123                             <dd><a href="djzc/zlxz.htm">资料下载</a></dd>
    124                     </dl>
    125                 </li>
    126             </ul>
    127         </nav>
    128         <div id="rollBar">
    129             <div id="slideBox" class="slideBox">
    130                 <div id="slideBar" class="slideBar">
    131                     <ul>
    132                         <li></li>
    133                         <li></li>
    134                     </ul>
    135                 </div>
    136                 <div id="bd" class="bd">
    137                     <ul>
    138                         <li style="display: block;"><a href="images/welcome.jpg" target="_blank"><img src="images/welcome.jpg"></a></li>
    139                         <li style="display: none;"><a href="images/main-zs.jpg" target="_blank"></a><img src="images/main-zs.jpg"></li>
    140                     </ul>
    141                 </div>
    142                 <span id="prev" class="prev"> < </span>
    143                 <span id="next" class="next"> > </span>
    144             </div>
    145         </div>
    146         <div id="container">
    147             <!-- 1 -->
    148             <div class="container-box" columns="6">
    149                 <div class="inform-box fl" columns="4" style=" 65%">
    150                     <div class="dynamic">
    151                         <h6>图片新闻</h6><span><a href="index/xwsd.htm"><img src="images/more.png"></a></span>
    152                     </div>
    153                     <div class="newBox">
    154                         <!--新闻信息-->
    155                         <div class="new_pic">
    156                             <div style="OVERFLOW: hidden;height:174px;310px">
    157                                 <div id="u_u4_div" style="text-align: center; padding:0px;margin:0px;border:0px solid black;background-color:#000000;height:174px;310px">
    158                                     <div id="u_u4_imgdiv" style="padding:0px;border:0px; height: 100%;  100%">
    159                                         <a id="u_u4_url" target="_blank" href="images/1.jpg">
    160                                             <img style="100%; height:100%" src="images/1.jpg"/>
    161                                         </a>
    162                                     </div>
    163                                 </div>
    164                                 <div style="filter:alpha(style=1,opacity=10,finishOpacity=80);310px;height:19px;text-align:right;top:-30px;position:relative;padding:0px;margin:0px;border:0px;">
    165                                     <a href="javascript:void(0);" id="selectNode1" class="imagechangenews_pnode" target="_self">1</a><a href="javascript:void(0);" id="selectNode2" class="imagechangenews_pnode" target="_self">2</a><a href="javascript:void(0);" id="selectNode3" class="imagechangenews_pnode" target="_self">3</a><a href="javascript:void(0);" id="selectNode4" class="imagechangenews_pnode" target="_self">4</a><a href="javascript:void(0);"  id="selectNode5" class="imagechangenews_pnode" target="_self">5</a><a href="javascript:void(0);" id="selectNode6" class="imagechangenews_pnode" target="_self">6</a>
    166                                 </div>
    167                             </div>
    168                             <div style="text-align: center;overflow:hidden;text-overflow:ellipsis;height:25px;310px;"><a target="_blank" class="titlestyle192939" id="u_u4_newstitle" href="info/1045/4427.htm" title="计科院组织学生参加2018天府国际网络安全高峰论坛">计科院组织学生参加2018天府国际网络安全高峰论坛</a></div>
    169                         </div>
    170     
    171                         <div class="new_list">
    172                             <ul class="dynamic_list fr">
    173                                 <li><a href="info/1045/4613.htm" title="计算机科学学院举办2019年寒假留校学生新春团拜会"><span>[02-01]</span><em>计算机科学学院举办2019年寒假留校学生新春</em></a></li>
    174                                 <li><a href="info/1045/4650.htm" title="学院召开教职工大会学习传达中层干部大会精神 部署学院学期工作"><span>[03-15]</span><em>学院召开教职工大会学习传达中层干部大会精</em></a></li>
    175                                 <li><a href="info/1045/4643.htm" title="计科院工会组织学院女教职工庆祝第109个“三八妇女节”"><span>[03-12]</span><em>计科院工会组织学院女教职工庆祝第109个“</em></a></li>
    176                                 <li><a href="info/1045/4633.htm" title="学术讲座——人工智能改变我们的未来生活"><span>[03-05]</span><em>学术讲座——人工智能改变我们的未来生活</em></a></li>
    177                                 <li><a href="info/1045/4603.htm" title="计算机科学学院各年级辅导员集中走访学生寝室"><span>[01-21]</span><em>计算机科学学院各年级辅导员集中走访学生寝</em></a></li>
    178                                 <li><a href="info/1045/4592.htm" title="学院召开2018年度领导班子民主生活会"><span>[01-14]</span><em>学院召开2018年度领导班子民主生活会</em></a></li>
    179                             </ul>
    180                         </div>
    181                     </div>
    182                 </div>
    183                 <div class="inform-box fr" columns="2" style=" 30%;">
    184                     <div class="dynamic cleafix">
    185                         <h6>学术交流</h6><span><a href="kxyj/kytd.htm"><img src="images/more.png"></a></span>
    186                     </div>
    187                     <div class="newBox">
    188                         <div class="new_list">
    189                             <ul>
    190                                 <li> <a href="info/1076/4624.htm" title="人工智能改变我们的未来生活"><em>人工智能改变我们的未来生活</em></a></li>
    191                                 <li> <a href="info/1076/4537.htm" title="计算时代的虚假信息传播"><em>计算时代的虚假信息传播</em></a></li>
    192                                 <li> <a href="info/1076/4483.htm" title="人工智能+:视界充满AI"><em>人工智能+:视界充满AI</em></a></li>
    193                                 <li> <a href="info/1076/4397.htm" title="零行列式策略及其网络演化动力学"><em>零行列式策略及其网络演化动力学</em></a></li>
    194                                 <li> <a href="info/1076/4388.htm" title="视频遇上云服务"><em>视频遇上云服务</em></a></li>
    195                                 <li> <a href="info/1076/4380.htm" title="计科院关于举行2018年校庆论文报告会的通知"><em>计科院关于举行2018年校庆论文报告会的通知</em></a></li>
    196                             </ul>
    197                         </div>
    198                     </div>
    199                 </div>
    200                 <div style="clear: both"></div>
    201             </div>
    202             <!-- 2 -->
    203             <div class="container-box" columns="6">
    204                 <div class="inform-box fl" columns="4" style=" 65%">
    205                     <div class="dynamic">
    206                         <h6>新闻速递</h6>
    207                         <span><a href="index/xwsd.htm"><img src="images/more.png"></a></span>
    208                     </div>
    209                     <div class="newBox">
    210                         <div class="new_list hasDetail">
    211                             <h3><a href="info/1045/4613.htm">计算机科学学院举办2019年寒假留校学生新春团拜会</a></h3>
    212                             <p>​在中华民族传统节日——春节即将到来之际,为让学院留校学生感受家的温暖,向他们传达学院的慰问和祝福。2019年2月1日上午9时30分,计算机科学学院在明理楼B306会议室隆重举行2019年寒假留…[<span><a href="info/1045/4613.htm">详细信息</a></span>]</p>
    213                             <ul>
    214                                 <li><a href="info/1045/4650.htm"><span>03/15</span><em>学院召开教职工大会学习传达中层干部大会精神 部署学院学期工作</em></a></li>                 
    215                                 <li><a href="info/1045/4643.htm"><span>03/12</span><em>计科院工会组织学院女教职工庆祝第109个“三八妇女节”</em></a></li>                 
    216                                 <li><a href="info/1045/4633.htm"><span>03/05</span><em>学术讲座——人工智能改变我们的未来生活</em></a></li>                 
    217                                 <li><a href="info/1045/4603.htm"><span>01/21</span><em>计算机科学学院各年级辅导员集中走访学生寝室</em></a></li>                 
    218                                 <li><a href="info/1045/4592.htm"><span>01/14</span><em>学院召开2018年度领导班子民主生活会</em></a></li>                 
    219                                 <li><a href="info/1045/4589.htm"><span>01/10</span><em>计科院与川庆安检院技术交流大会</em></a></li>                 
    220                              </ul>
    221                         </div>
    222                     </div>
    223                 </div>
    224                 <div class="inform-box fr" columns="2" style=" 30%">
    225                     <div class="dynamic">
    226                         <h6>党建动态</h6><span><a href="djzc/djdt.htm"><img src="images/more.png"></a></span>
    227                     </div>
    228                     <div class="newBox">
    229                         <div class="new_list">
    230                             <ul>
    231                                 <li> <a href="info/1082/4651.htm" title="学院召开教职工大会学习传达中层干部大会精神 部署学院学期工作"><em>学院召开教职工大会学习传达中层干部大会精神 部署学院学期工作</em></a></li>
    232                                 <li> <a href="info/1082/4593.htm" title="学院召开2018年领导班子民主生活会"><em>学院召开2018年领导班子民主生活会</em></a></li>
    233                                 <li> <a href="info/1082/4520.htm" title="刘翔同志任计算机科学学院党委副书记、纪委书记"><em>刘翔同志任计算机科学学院党委副书记、纪委书记</em></a></li>
    234                                 <li> <a href="info/1082/4512.htm" title="学院党委组织师生收看庆祝改革开放40周年大会"><em>学院党委组织师生收看庆祝改革开放40周年大会</em></a></li>
    235                                 <li> <a href="info/1082/4464.htm" title="【审核评估】学院召开本科教学工作审核评估办学定位与目标宣讲大会"><em>【审核评估】学院召开本科教学工作审核评估办学定位与目标宣讲大会</em></a></li>
    236                                 <li> <a href="info/1082/4424.htm" title="【聚焦评估】学院召开本科教学工作审核评估工作会"><em>【聚焦评估】学院召开本科教学工作审核评估工作会</em></a></li>
    237                                 <li> <a href="info/1082/4471.htm" title="学院党委开展迎校庆主题党日活动"><em>学院党委开展迎校庆主题党日活动</em></a></li>
    238                                 <li> <a href="info/1082/4376.htm" title="学院党委组织收看2018年全国科学道德和学风建设宣讲教育报告会"><em>学院党委组织收看2018年全国科学道德和学风建设宣讲教育报告会</em></a></li>
    239                             </ul>
    240                         </div>
    241                     </div>
    242                 </div>
    243                 <div style="clear: both"></div>
    244             </div>
    245             <!-- 3 -->
    246             <div class="container-box" columns="6">
    247                 <div class="inform-box fl" columns="4" style=" 65%">
    248                     <div class="dynamic cleafix">
    249                         <h6>通知公告</h6><span><a href="index/tzgg.htm"><img src="images/more.png"></a></span>
    250                     </div>
    251                     <div class="newBox">
    252                         <div class="new_list">
    253                             <ul>
    254                                 <li> <a href="info/1055/4638.htm"><em>自组团出访前公示信息表(彭博)</em></a></li>
    255                                 <li> <a href="info/1055/4627.htm"><em>计算机科学学院2019年春季学期开学教学准备及检查工作实施方案</em></a></li>
    256                                 <li> <a href="info/1055/4626.htm"><em>西南石油大学计算机科学学院关于举行学院2019年春季田径运动会的通知</em></a></li>
    257                                 <li> <a href="info/1055/4600.htm"><em>2018年秋季学期期末考试情况总结</em></a></li>
    258                                 <li> <a href="info/1055/4597.htm"><em>计算机科学学院2018年度教职工考核优秀名单公示</em></a></li>
    259                                 <li> <a href="info/1055/4588.htm"><em>国际学术会议(ICCIS2019)征稿通知</em></a></li>
    260                                 <li> <a href="info/1055/4584.htm"><em>计算机科学学院领导班子2018年度民主生活会征求意见</em></a></li>
    261                                 <li> <a href="info/1055/4578.htm"><em>关于表彰计算机科学学院2018-2019学年秋季学期“最美寝室”的通知</em></a></li>
    262                             </ul>
    263                         </div>
    264                     </div>
    265                 </div>
    266                 <div class="inform-box fr" columns="2" style=" 30%">
    267                     <div class="dynamic">
    268                         <h6>专题列表</h6>
    269                     </div>
    270                     <div class="newBox">
    271                         <div class="new_list">
    272                             <ul>
    273                                 <li> <a href="info/1173/2003.htm" title="中美联合高性能和大数据计算实验室"><em>中美联合高性能和大数据计算实验室</em></a></li>
    274                                 <li> <a href="info/1173/2004.htm" title="石油工程计算机模拟技术重点实验室"><em>石油工程计算机模拟技术重点实验室</em></a></li>
    275                                 <li> <a href="info/1173/2005.htm" title="思科网络技术学院教师培训中心"><em>思科网络技术学院教师培训中心</em></a></li>
    276                             </ul>
    277                         </div>
    278                     </div>
    279                 </div>
    280                 <div style="clear: both"></div>
    281             </div>
    282                 
    283         </div>
    284     </div>
    285     <footer id="footer">
    286         <div>Copyright© 2018 All Rights Reserved. 西南石油大学计算机科学学院</div>
    287         <% int count = (int)pageContext.getAttribute("userCount",pageContext.APPLICATION_SCOPE); %>
    288         <div>当前在线人数:<%=count%></div>
    289     </footer>
    290     <script src="script/slider.js" type="text/javascript"></script>
    291 </body>
    292 </html>
    JSP

    MyHttpSessionListener

     1 package listener;
     2 
     3 import java.util.ArrayList;
     4 
     5 import javax.servlet.annotation.WebListener;
     6 import javax.servlet.http.HttpSessionEvent;
     7 import javax.servlet.http.HttpSessionListener;
     8 
     9 import model.User;
    10 import util.SessionUtil;
    11 
    12 /**
    13  * Application Lifecycle Listener implementation class MyHttpSessionListener
    14  *
    15  */
    16 @WebListener
    17 public class MyHttpSessionListener implements HttpSessionListener {
    18     
    19     private int userCount;
    20     
    21     /**
    22      * Default constructor. 
    23      */
    24     public MyHttpSessionListener() {
    25         // TODO Auto-generated constructor stub
    26     }
    27 
    28     /**
    29      * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
    30      */
    31     public void sessionCreated(HttpSessionEvent arg0)  { 
    32          // TODO Auto-generated method stub
    33         userCount++;
    34         arg0.getSession().getServletContext().setAttribute("userCount", userCount);
    35     }
    36 
    37     /**
    38      * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
    39      */
    40     public void sessionDestroyed(HttpSessionEvent arg0)  { 
    41          // TODO Auto-generated method stub
    42         userCount--;
    43         arg0.getSession().getServletContext().setAttribute("userCount", userCount);
    44         
    45         ArrayList<User> userList = (ArrayList<User>) arg0.getSession().getServletContext().getAttribute("userList");
    46         String sessionID = arg0.getSession().getId();
    47         if(SessionUtil.getSessionById(userList, sessionID) != null){
    48             userList.remove(SessionUtil.getSessionById(userList, sessionID));
    49         }
    50         
    51         arg0.getSession().getServletContext().setAttribute("userList", userList);
    52     }
    53     
    54 }
    MyHttpSessionListener

    MyRequestListener

     1 package listener;
     2 
     3 import java.util.ArrayList;
     4 
     5 import javax.servlet.ServletRequestEvent;
     6 import javax.servlet.ServletRequestListener;
     7 import javax.servlet.annotation.WebListener;
     8 import javax.servlet.http.HttpServletRequest;
     9 
    10 import model.User;
    11 import util.SessionUtil;
    12 
    13 /**
    14  * Application Lifecycle Listener implementation class MyRequestListener
    15  *
    16  */
    17 @WebListener
    18 public class MyRequestListener implements ServletRequestListener {
    19     private ArrayList<User> userList;
    20 
    21     /**
    22      * Default constructor. 
    23      */
    24     public MyRequestListener() {
    25         // TODO Auto-generated constructor stub
    26     }
    27 
    28     /**
    29      * @see ServletRequestListener#requestDestroyed(ServletRequestEvent)
    30      */
    31     public void requestDestroyed(ServletRequestEvent arg0)  { 
    32          // TODO Auto-generated method stub
    33     }
    34 
    35     /**
    36      * @see ServletRequestListener#requestInitialized(ServletRequestEvent)
    37      */
    38     public void requestInitialized(ServletRequestEvent arg0)  { 
    39          // TODO Auto-generated method stub
    40         userList = (ArrayList<User>) arg0.getServletContext().getAttribute("userList");
    41         
    42         if(userList == null){
    43             userList = new ArrayList<User>();
    44         }
    45         
    46         HttpServletRequest httpServletRequest = (HttpServletRequest) arg0.getServletRequest();
    47         //创建或获取session
    48         String sessionID = httpServletRequest.getSession().getId();
    49         
    50         if(SessionUtil.getSessionById(userList, sessionID) == null){
    51             User user = new User();
    52             user.setSessionID(sessionID);
    53             userList.add(user);
    54         }
    55         
    56         arg0.getServletContext().setAttribute("userList", userList);
    57     }
    58     
    59 }
    MyRequestListener

    XML

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
     3   <display-name>SessionServlet</display-name>
     4   <listener>
     5     <listener-class>com.yuanze.listener.TotalListener</listener-class>
     6 </listener>
     7   <servlet>
     8    <servlet-name>home</servlet-name>
     9       <servlet-class>com.yuanze.servlet.IndexServlet</servlet-class>
    10   </servlet>
    11   <servlet-mapping>
    12       <servlet-name>home</servlet-name>
    13       <url-pattern>/home</url-pattern>
    14   </servlet-mapping>
    15  <!-- 静态资源映射 -->
    16     <servlet-mapping>
    17         <servlet-name>default</servlet-name>
    18         <url-pattern>*.css</url-pattern>
    19     </servlet-mapping>
    20     <servlet-mapping>
    21         <servlet-name>default</servlet-name>
    22         <url-pattern>*.jpg</url-pattern>
    23     </servlet-mapping>
    24     <servlet-mapping>
    25         <servlet-name>default</servlet-name>
    26         <url-pattern>*.png</url-pattern>
    27     </servlet-mapping>
    28     <servlet-mapping>
    29         <servlet-name>default</servlet-name>
    30         <url-pattern>*.js</url-pattern>
    31     </servlet-mapping>
    32     <servlet-mapping>
    33         <servlet-name>default</servlet-name>
    34         <url-pattern>*.html</url-pattern>
    35     </servlet-mapping>
    36 <!-- 静态资源映射 -->
    37 <session-config>
    38     <session-timeout>1</session-timeout>
    39 </session-config>
    40 </web-app>
    XML

    Model

     1 package model;
     2 
     3 public class User {
     4     private String sessionID;
     5     private String userName;
     6     private String userPass;
     7     
     8     public String getSessionID() {
     9         return sessionID;
    10     }
    11     
    12     public String getUserName() {
    13         return userName;
    14     }
    15     
    16     public String getUserPass() {
    17         return userPass;
    18     }
    19     
    20     public void setSessionID(String sessionID) {
    21         this.sessionID = sessionID;
    22     }
    23     
    24     public void setUserName(String userName) {
    25         this.userName = userName;
    26     }
    27     
    28     public void setUserPass(String userPass) {
    29         this.userPass = userPass;
    30     }
    31 }
    Model

    4.百度云地址

    链接:https://pan.baidu.com/s/1tmxAaMGttlPsEh8Kp6f4CQ
    提取码:nwft 

  • 相关阅读:
    Android开发探秘之一:创建可以点击的Button
    TCP之心跳包实现思路
    Asp.net与Dojo交互:仪器仪表实现
    Asp.net Json数据解析的一种思路
    Asp.net通过Jquery操作WebService进行Ajax读写
    GridView自定义删除操作
    从客户端中检测到有潜在危险的request.form值
    JUC-Condition线程通信
    ModelAndView 配置与使用
    SpringMVC之ModelAndView的用法(转)
  • 原文地址:https://www.cnblogs.com/Yy-Gg/p/10706537.html
Copyright © 2020-2023  润新知