欢迎来到天天文库
浏览记录
ID:21788398
大小:337.50 KB
页数:9页
时间:2018-10-24
《跟我学ajax技术——应用ajax技术实现web网站的实时在线用户计数的应用示例(第二部分)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.1跟我学AJAX技术——应用AJAX技术实现Web网站的实时在线用户计数的应用示例(第二部分)1.1.1测试本示例项目功能实现的效果1、部署该Web应用2、启动Tomcat服务器3、输入http://127.0.0.1:8080/webcrm/index.jsp并打开多个不同的浏览器来模拟多个不同的用户,系统将能够及时并准确地计数。1.1.1进一步完善本示例1、解决用户离线时的及时更新的问题——方法之一:利用“在线注销”由于某个用户关闭浏览器窗口,浏览器没有通知服务器,从而在服务器端没有更新记数器。(1)添加“在线注销”功能,但这样的方法的效果不是太理想。2、ow.close();"href="${pageContext.request.contextPath}/onLineUserInfoServlet.action?action=onLineLogout">在线注销(2)实现的原理在该超链接中对后台发送用户离线的信息(浏览器窗口正要被关闭),从而使得后台能够知道浏览器窗口现在正在关闭。这样session的close事件能够正常地被捕获。(3)修改OnLineUserInfoServlet程序packagecom.px1987.webcrm.servlet;importjava.io.IOException;importjava.io3、.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.px1987.webcrm.util.OnLineCounter;publicclassOnLineUserInfoServletextendsHtt4、pServlet{publicOnLineUserInfoServlet(){super();}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringrequestAction=request.getParameter("action");if(requestAction.equals("showOnLineUserCounter")){doShowOnLineUserCounter(request,response);}5、elseif(requestAction.equals("onLineLogout")){HttpSessionsession=request.getSession();session.invalidate();//触发session被删除的事件}}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringrequestAction=request.getParameter("action");if(requestAction.6、equals("onLineLogout")){HttpSessionsession=request.getSession();session.invalidate();//触发session被删除的事件}}publicvoiddoShowOnLineUserCounter(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=gb2312");PrintWriterout=resp7、onse.getWriter();intonlineUserCounter=OnLineCounter.getOnLineUserCounter();out.print(onlineUserCounter);out.flush();out.close();}}2、再进行该Web并测试http://127.0.0.1:8080/webcrm/index.jsp(1)点击其中的某个页面中的“在线注销”链接而退出后的结果(2)
2、ow.close();"href="${pageContext.request.contextPath}/onLineUserInfoServlet.action?action=onLineLogout">在线注销(2)实现的原理在该超链接中对后台发送用户离线的信息(浏览器窗口正要被关闭),从而使得后台能够知道浏览器窗口现在正在关闭。这样session的close事件能够正常地被捕获。(3)修改OnLineUserInfoServlet程序packagecom.px1987.webcrm.servlet;importjava.io.IOException;importjava.io
3、.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.px1987.webcrm.util.OnLineCounter;publicclassOnLineUserInfoServletextendsHtt
4、pServlet{publicOnLineUserInfoServlet(){super();}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringrequestAction=request.getParameter("action");if(requestAction.equals("showOnLineUserCounter")){doShowOnLineUserCounter(request,response);}
5、elseif(requestAction.equals("onLineLogout")){HttpSessionsession=request.getSession();session.invalidate();//触发session被删除的事件}}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringrequestAction=request.getParameter("action");if(requestAction.
6、equals("onLineLogout")){HttpSessionsession=request.getSession();session.invalidate();//触发session被删除的事件}}publicvoiddoShowOnLineUserCounter(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=gb2312");PrintWriterout=resp
7、onse.getWriter();intonlineUserCounter=OnLineCounter.getOnLineUserCounter();out.print(onlineUserCounter);out.flush();out.close();}}2、再进行该Web并测试http://127.0.0.1:8080/webcrm/index.jsp(1)点击其中的某个页面中的“在线注销”链接而退出后的结果(2)
此文档下载收益归作者所有