在线用户列表的维护
Login.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>Inserttitlehere</title></head><body> <formname="LoginForm"action="doLogin.jsp"method="post"> 用户名:<inputtype="text"name="user"> <br/> <inputtype="submit"value="submit"> </form><p>示例演示在线用户的维护:用户登录,放入session,并放入list,把list放入application保存查看时可从list中取出所有在线用户,点注销会从session删除该用户记录并减少在线的用户问题:当用户不点注销而是关闭浏览器或出现故障时退出,会使application用户无法删除,从而永远在线</p></body></html>dologin.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <%@pageimport="com.webtest.eus.util.*,java.util.*"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>Inserttitlehere</title></head><body><h1>doLogin</h1><hr/><% //request.setCharacterEncoding("UTF-8"); Stringuser=HttpUtil.getParam(request,"user"); //Stringuser=request.getParameter("user"); session.setAttribute("user",user); ListonlineList=(List)application.getAttribute("onlineList"); if(onlineList==null){ onlineList=newArrayList(); application.setAttribute("onlineList",onlineList); }onlineList.add(user); response.sendRedirect("./result.jsp"); %></body></html>result.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> <%@pageimport="java.util.*"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>Inserttitlehere</title></head><body><%! Stringuser=""; %>在线的用户有:<% ListonlineList=(List)application.getAttribute("onlineList"); for(inti=0;i<onlineList.size();i++){ user=(String)onlineList.get(i); %> <tableborder="1"> <tr><td><%=user%></td></tr><%}%></table><hr/> <ahref="./Login.jsp">登录</a> <br/> <ahref="./cancel.jsp">注销</a> </body></html>cancel.jsp
<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"import="java.util.*,com.webtest.eus.util.*"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"> <html><head> <metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"> <title>Inserttitlehere</title></head><body><% Stringuser=(String)session.getAttribute("user"); session.invalidate(); ListonlineList=(List)application.getAttribute("onlineList"); onlineList.remove(user); response.sendRedirect("../index.jsp"); %></body></html>dologin.jsp处理登录请求:
首先将USER放入session中session.setAttribute("user",user);将list放入application中,如果没有此list则先初始化,然后将用户添加到list中;
result.jsp
用于显示在线用户
calcel.jsp:
在session中删除此账户信息,并在list中删除onlineList.remove(user);这样在application中的list就不包括此用户信息,再回到result.jsp时就看不到此用户在线了