jsp网站开发实例教程,衡水网站建设与制作,产品推广方式都有哪些,wordpress七牛图床插件JavaWeb应用中#xff0c;很多的地方都和session有关。因此session相关的事件监听器#xff0c;在日常工作中非常有用。有时候我们需要统计当前在线的人数和访问人数总数#xff0c;此时就可以使用监听器技术来很简单的实现这种功能。注意#xff1a;session并不是浏览器关…JavaWeb应用中很多的地方都和session有关。因此session相关的事件监听器在日常工作中非常有用。有时候我们需要统计当前在线的人数和访问人数总数此时就可以使用监听器技术来很简单的实现这种功能。注意session并不是浏览器关闭时销毁的而是在session失效的时候销毁下列代码就是监测session创建、销毁。销毁session可以设置过期时间1步骤说明2、在第十五篇基础上继续实现功能——第十六篇JDBC操作数据库之监听器。一.InitNumListener.java对ServletContext对象进行监听的接口有ServletContextAttributeListener 和 ServletContext-Listener。package com.listener;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import java.io.*;/*** Created by Ray on 2018/3/17 0017.**/public class InitNumListener implements ServletContextListener {//初始化上下文public void contextInitialized(ServletContextEvent sce) {/* This method is called when the servlet context isinitialized(when the Web application is deployed).You can initialize servlet context related data here.*///创建接口ServletContext servletContext sce.getServletContext();//访问总数的文件路径String filename servletContext.getRealPath(/WEB-INF/count.txt);File file new File(filename);//初始化访问总数Integer totalcount 0;if(file.exists()){try{//读取文件内容FileReader fileReader new FileReader(file);BufferedReader bufferedReader new BufferedReader(fileReader);totalcount Integer.valueOf(bufferedReader.readLine());//关闭流bufferedReader.close();fileReader.close();}catch (Exception e){e.printStackTrace();}}//设置属性name的值为valueservletContext.setAttribute(totalcount,totalcount); //访问总数servletContext.setAttribute(accesscount,0); //在线用户数}//销毁上下文public void contextDestroyed(ServletContextEvent sce) {/* This method is invoked when the Servlet Context(the Web application) is undeployed orApplication Server shuts down.*///创建接口ServletContext servletContext sce.getServletContext();//访问总数的文件路径String filename servletContext.getRealPath(/WEB-INF/count.txt);File file new File(filename);try{//将内容写入文件FileWriter fileWriter new FileWriter(file);BufferedWriter bufferedWriter new BufferedWriter(fileWriter);bufferedWriter.write(servletContext.getAttribute(totalcount).toString());//关闭流bufferedWriter.close();fileWriter.close();}catch (Exception e){e.printStackTrace();}}}二.UserEnterListener.java实现HttpSessionListener接口的监听器可以监听 HttpSession 对象本身的创建和销毁。package com.listener;import javax.servlet.ServletContext;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;/*** Created by Ray on 2018/3/17 0017.**/public class UserEnterListener implements HttpSessionListener {public void sessionCreated(HttpSessionEvent se) {/* Session is created. */ServletContext servletContext se.getSession().getServletContext();//返回属性name的值Integer totalcount (Integer) servletContext.getAttribute(totalcount);Integer accesscount (Integer) servletContext.getAttribute(accesscount);//使用指定的属性名字绑定一个对象并储存到session中servletContext.setAttribute(totalcount,totalcount1);servletContext.setAttribute(accesscount,accesscount1);}public void sessionDestroyed(HttpSessionEvent se) {/* Session is destroyed. */ServletContext servletContext se.getSession().getServletContext();//返回属性name的值Integer accesscount (Integer) servletContext.getAttribute(accesscount);//使用指定的属性名字绑定一个对象并储存到session中servletContext.setAttribute(accesscount,accesscount-1);}}三.web.xml1.监听器Listener2.设置session过期时间3.省略部分代码(懒得删)?xml version1.0 encodingUTF-8?xmlnshttp://java.sun.com/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsdcom.listener.InitNumListenercom.listener.UserEnterListener1BookListcom.control.BookListBookList/BookListBookAddcom.control.BookAddBookAdd/BookAddBookUpdatecom.control.BookUpdateBookUpdate/BookUpdateBookDoUpdatecom.control.BookDoUpdateBookDoUpdate/BookDoUpdateBookDeletecom.control.BookDeleteBookDelete/BookDeleteBookDoDeletecom.control.BookDoDeleteBookDoDelete/BookDoDeleteBookBatchAddcom.control.BookBatchAddBookBatchAdd/BookBatchAddBookBatchDeletecom.control.BookBatchDeleteBookBatchDelete/BookBatchDeleteBookFindcom.control.BookFindBookFind/BookFindLogincom.control.LoginLogin/LoginDrawImagecom.control.DrawImageDrawImage/DrawImageRegistercom.control.RegisterRegister/RegisterLoginUsercom.control.LoginUserLoginUser/LoginUserExitLogincom.control.ExitLoginExitLogin/ExitLoginUploadcom.control.UploadUpload/UploadListFilecom.control.ListFileListFile/ListFileDownloadcom.control.DownloadDownload/DownloadCharSetFiltercom.Filter.CharSetFiltercharsetUTF-8CharSetFilter/*404/error/error404.jsp500/error/error500.jspErrorFiltercom.Filter.ErrorFilterErrorFilter/error.jspERROR四.listen.jspString path request.getContextPath();String basePath request.getScheme() :// request.getServerName() : request.getServerPort() path /;%Listen访问人数${totalcount} 在线人数${accesscount}五.count.txt(总访问人数19)六.页面效果另一个浏览器(模拟多个用户)关闭浏览器(模拟在线人数退出)等1-2分钟刷新ok