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="width: 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;width:310px">
157                                 <div id="u_u4_div" style="text-align: center; padding:0px;margin:0px;border:0px solid black;background-color:#000000;height:174px;width:310px">
158                                     <div id="u_u4_imgdiv" style="padding:0px;border:0px; height: 100%; width: 100%">
159                                         <a id="u_u4_url" target="_blank" href="images/1.jpg">
160                                             <img style="width:100%; height:100%" src="images/1.jpg"/>
161                                         </a>
162                                     </div>
163                                 </div>
164                                 <div style="filter:alpha(style=1,opacity=10,finishOpacity=80);width: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;width: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="width: 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="width: 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="width: 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="width: 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="width: 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 

posted @ 2019-04-14 20:27  Yy_Gg  阅读(761)  评论(0编辑  收藏  举报