【附】使用监听器ServletContextListener实现网站登录人数统计,可以实现重启服务器后记录仍然存在
2016-09-05 11:57
726 查看
project目录截图:
ContextListener.java:
ContextServlet .java
需要配置下监听器:
其他的jsp页面就不粘出来了,做个简单的就可以。
ContextListener.java:
package com.zmj.web.listener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; /** * Listener监听器 * @author 周孟军 时间:2016年9月5日 上午11:46:08 * */ public class ContextListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent sce) { //在容器关闭的时候记录当前的访人数保存在count.txt文件中 ServletContext context = sce.getServletContext(); Integer count = (Integer)context.getAttribute("count"); String path = context.getRealPath("WEB-INF/classes/com/zmj/web/listener/count.txt"); File file = new File(path); //buffer字符输出流 BufferedWriter bw; try { bw = new BufferedWriter(new FileWriter(file)); bw.write(count.toString()); bw.flush(); bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void contextInitialized(ServletContextEvent sce) { //在容器开启的时候,从count.txt文件中读取计数值,然后重新设置count的值 ServletContext context = sce.getServletContext(); String path = context.getRealPath("WEB-INF/classes/com/zmj/web/listener/count.txt"); File file = new File(path); int count = 0; //buffer字符输入流 BufferedReader br; try { br = new BufferedReader(new FileReader(file)); count = Integer.parseInt(br.readLine()); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //设置context的值 context.setAttribute("count", count); } }
ContextServlet .java
package com.zmj.web.servlet; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 登录的Servlet * @author 周孟军 时间:2016年9月5日 上午11:47:32 * */ public class ContextServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("username"); String password = req.getParameter("password"); if(name.equals("admin") && password.equals("1234")){ //统计人数 ServletContext context = this.getServletContext(); Integer counts = (Integer) context.getAttribute("count"); System.out.println(counts+"servlet"); int count = 0; if(counts==null){ count = 1; }else{ count = Integer.parseInt(counts.toString()); count++; } context.setAttribute("count", count); req.getRequestDispatcher("success.jsp").forward(req, resp); } } }
需要配置下监听器:
listener> <listener-class>com.zmj.web.listener.ContextListener</listener-class> </listener>
其他的jsp页面就不粘出来了,做个简单的就可以。
相关文章推荐
- 使用ServletContextListener和HttpSessionListener两种监听器实现记录当前网站在线人数
- web.xml中listener作用及使用--实现记录网站的客户登录日志, 统计在线人数
- 上下文ServletContext的使用,记录网站的登录人数统计
- 使用application(servletContext)统计网站访问次数,及重启服务器后如何延续
- [j2ee]网站被访问次数的实现(一个ip一天只计算一次,且服务器重启后访问记录仍然存在)
- 使用监听器实现一个统计网站在线人数的示例
- 使用HttpSessionListener和ServletContextListener实现在线人数和历史访问人数统计的问题
- 使用监听器实现一个统计网站在线人数的示例
- java使用监听器实现一个统计网站在线人数的示例
- SolarWinds Orion Network Performance Monitor --看我一个同事用这个东东,特此记录一下,可以统计服务器的cpu使用情况。
- 利用HttpSessionListener实现网站在线人数统计功能
- Jsp使用HttpSessionBindingListener实现在线人数记录
- HttpSessionListener实现网站统计在线人数
- HttpSessionListener实现网站在线人数统计
- 利用HttpSessionListener实现网站在线人数统计功能
- 利用HttpSessionListener实现网站在线人数统计功能[摘]
- 利用监听器实现网站在线人数统计
- 利用HttpSessionListener实现网站在线人数统计功能
- 监听器--ServletRequestListener接口实现统计在线人数
- Servlet监听器实现网站在线人数统计