我的代碼顯示不出用戶信息 大神看看那里錯(cuò)了
import?java.util.ArrayList; import?javax.servlet.annotation.WebListener; import?javax.servlet.http.HttpSessionEvent; import?javax.servlet.http.HttpSessionListener; import?Entity.User; import?SessionUtil.SessionUtil; @WebListener public?class?MyHttpSession?implements?HttpSessionListener?{ private?int?number?=?0; @Override public?void?sessionCreated(HttpSessionEvent?arg0)?{ number++; arg0.getSession().getServletContext().setAttribute("Number",?number); } @Override public?void?sessionDestroyed(HttpSessionEvent?arg0)?{ number--; arg0.getSession().getServletContext().setAttribute("Number",?number); ArrayList<User>?userlist?=?null;//在線用戶List userlist?=?(ArrayList<User>)?arg0.getSession().getServletContext() .getAttribute("userlist"); String?sessionid?=?arg0.getSession().getId(); if?(SessionUtil.getUserBySessionId(userlist,sessionid)!=null)?{ userlist.remove(SessionUtil.getUserBySessionId(userlist,?sessionid)); System.out.println("刪除的sessionId為:"+sessionid); } } }
public?class?MyServletRequest?implements?ServletRequestListener?{ ?????????private??ArrayList<User>?userlist; @Override public?void?requestDestroyed(ServletRequestEvent?arg0)?{ ? } public?void?requestInitialized(ServletRequestEvent?arg0)?{ //不是第一次登錄就可以從上下文中獲取userlist userlist??=?(ArrayList<User>)arg0.getServletContext().getAttribute("userlist"); //第一次登錄 if(userlist==null){ userlist?=?new?ArrayList<User>(); } HttpServletRequest?request?=?(HttpServletRequest)?arg0.getServletRequest(); //得到session?id String?sessionIdString?=?request.getSession().getId(); //如果userlist有改id??則不加入userlist??沒(méi)有則創(chuàng)建一個(gè)user?加入userlist中 if(SessionUtil.getUserBySessionId(userlist,sessionIdString)==null){ User?user?=?new?User(); user.setSessionIdString(sessionIdString); user.setSessionTime(new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss").format(new?Date())); user.setUserurl(request.getRemoteAddr()); userlist.add(user); System.out.println("加入的用戶sessionId為:"+sessionIdString); } //添加userList到application(ServletContext的對(duì)象 arg0.getServletContext().setAttribute("userlist",userlist); } }
jsp頁(yè)面:
<body> ????當(dāng)前在線用戶人數(shù):${Number?}<br/> ????<%? ???ArrayList<Entity.User>??userlist?=??(ArrayList<Entity.User>)request.getServletContext().getAttribute("userlist");? ???if(userlist!=null){ ???????for(int?i?=?0?;?i?<?userlist.size()?;?i++){ ???? ??Entity.User?user?=?userlist.get(i); ???%> ??? ????IP:<%=user.getSessionIdString()?%>,FirstTime:<%=user.getSessionTime()?%>,SessionId:<%=user.getUserurl()?%>?<br/> ????<%} ???? ????}? ????else{ ????out.println("無(wú)用戶"); ????}%> ??</body>
public?class?SessionUtil?{ ?????? public?static?Object?getUserBySessionId(ArrayList<User>?userList,?String?sessionIdString)?{ for?(int?i?=?0;?i?<?userList.size();?i++)?{ User?user?=?userList.get(i); if?(user.getSessionIdString().equals(sessionIdString))?{ return?user; } } return?null; } }
2017-06-09
MyServletRequest這個(gè)類沒(méi)有監(jiān)聽
2017-06-08
你用注解的方式注冊(cè)了監(jiān)聽器啊
2017-05-11
好吧 ?尷尬了 ? ?我沒(méi)有注冊(cè)request那個(gè)監(jiān)聽器