Filter的应用——IP计数
来源:互联网 发布:烘焙箱怎么做饼干知乎 编辑:程序博客网 时间:2024/06/08 03:24
Listener:ServletContext生命周期监听,在项目开启时将统计IP的Map放到ServletContext中
package com.app.listener;import java.util.LinkedHashMap;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;/** * Application Lifecycle Listener implementation class AListener * */public class AListener implements ServletContextListener { /** * Default constructor. */ public AListener() { // TODO Auto-generated constructor stub }/** * @see ServletContextListener#contextInitialized(ServletContextEvent) */ public void contextInitialized(ServletContextEvent sce) { Map<String,Integer> map = new LinkedHashMap<String,Integer>(); ServletContext application = sce.getServletContext(); application.setAttribute("map", map); }/** * @see ServletContextListener#contextDestroyed(ServletContextEvent) */ public void contextDestroyed(ServletContextEvent arg0) { // TODO Auto-generated method stub }}
Filter:统计IP访问次数
package com.app.filter;import java.io.IOException;import java.util.Map;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;/** * Servlet Filter implementation class AFilter */public class AFilter implements Filter {private FilterConfig fConfig;public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {//得到application中的mapServletContext application = fConfig.getServletContext();Map<String,Integer> map = (Map<String, Integer>) application.getAttribute("map");//获取客户端IPString ip = request.getRemoteAddr();//判断IP是否存在if(map.containsKey(ip)){int count =map.get(ip);map.put(ip, count+1);}else{//第一次访问map.put(ip, 1);}chain.doFilter(request, response);}public void init(FilterConfig fConfig) throws ServletException {this.fConfig = fConfig;}public void destroy() {}}
显示:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'MyJsp.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> This is my JSP page. <br> <table> <tr> <th>IP</th> <th>Count</th> </tr> <c:forEach items="${applicationScope.map }" var="entry"> <tr> <td>${entry.key }</td> <td>${entry.value }</td> </tr> </c:forEach> </table> </body></html>
0 0
- Filter的应用——IP计数
- Filter应用之分ip统计网站的访问次数
- 用于过滤IP的Filter
- filter的应用
- Filter技术的应用
- Filter技术的应用
- Filter技术的应用
- Filter的实际应用
- filter的应用
- Filter常见的应用
- filter的相关应用
- filter的应用
- Filter的应用例子
- 10.8、spring boot的web应用——servlet、listener、filter的应用
- 统计任意长度字符串中各个字符及个数——计数排序的又一个应用
- javax.servlet.Filter 的应用
- filter的应用:Opacity篇
- (转文)Filter技术的应用
- 程序员你为什么迷茫?
- 第二章ROS机器人操作系统的总体框架
- 利用 Travis CI 把 Android 项目部署到 github
- 在myeclipse10 下搭建ssh环境
- java初学者:类与对象 技术文章
- Filter的应用——IP计数
- linux同步
- 构造函数不能为虚函数
- 论坛日志分析:Flume+MapReduce+Hive+Sqoop+MySQL
- 第八周项目2用对象数组操作长方柱类
- Learn Python The Hard Way中习题46安装distribute包和virtualenv包
- 高仿糗事百科学习(三)NET
- unl构件图与部署图
- 机器学习总结_前言