过滤器统计访问次数

index.jsp

<h1>欢迎来到我主页,此页面已被访问<%=application.getAttribute("count")%>次!</h1>

web.xml

<filter>
        <filter-name>countFilter</filter-name>
        <filter-class>com.lyq.CountFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>countFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

CountFilter.java

@Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req=(HttpServletRequest) request;
        HttpServletResponse res=(HttpServletResponse) response;
        ServletContext application=req.getSession().getServletContext();
        if (application.getAttribute("count")!=null) {
            Long count=(Long) application.getAttribute("count");
            application.setAttribute("count", ++count);
        } else {
            application.setAttribute("count", new Long(1));
        }
        chain.doFilter(req, res);
    }

P84页

时间: 2024-08-09 06:32:44

过滤器统计访问次数的相关文章

Java web--Filter过滤器分IP统计访问次数

分IP统计访问次数即网站统计每个IP地址访问本网站的次数. 分析 因为一个网站可能有多个页面,无论哪个页面被访问,都要统计访问次数,所以使用过滤器最为方便. 因为需要分IP统计,所以可以在过滤器中创建一个Map,使用IP为key,访问次数为value.当有用户访问时,获取请求的IP,如果IP在Map中存在,说明以前访问过,那么在访问次数上加1,即可:IP在Map中不存在,那么设置次数为1. 那么问题来了! 问题一:为什么使用Map存放? Map是一个由键值对组成的数据结构,其中所有的key组成一

超大文件(1TB)统计访问次数最多的来源IP及访问次数

题目解读 1. 文件格式:访问时间,来源IP,响应结果,响应耗时 2. 文件大小:超大规模,TB数量级 解题思路 首先,数据量过大,通过内存计算肯定是不可行的. 考虑采用分治,将大文件切割成小文件,再对小文件分析,找出访问次数最多的,此时将问题转化为:切割小文件算法 具体思路如下: 将1T的文件按照IP的高8位(代码是按照高8位实现的,ipv4的高位地址不均匀,按照低8位>比较合理)分隔成2^8份. 每一份写入到文件名为"tmp_{高8位地址}"的文件中,文件中的数据为低24位的

学习笔记_过滤器应用_1(分ip统计网站的访问次数)

分ip统计网站的访问次数 ip count 192.168.1.111 2 192.168.1.112 59 统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的. 用什么东西来装载统计的数据.Map<String,Integer> 整个网站只需要一个Map即可! Map什么时候创建(使用ServletContextListener,在服务器启动时完成创建,并只在到ServletContext中),Map保存到哪里!(Ma

Java web 实现 之 Filter分析ip统计网站的访问次数

统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的. 用什么东西来装载统计的数据.Map<String,Integer> 整个网站只需要一个Map即可! Map什么时候创建(使用ServletContextListener,在服务器启动时完成创建,并只在到ServletContext中),Map保存到哪里!(Map保存到ServletContext中!!!) Map需要在Filter中用来保存数据 Map需要在页面使用,

Java web----Filter之分ip统计网站的访问次数

统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的. 用什么东西来装载统计的数据.Map<String,Integer> 整个网站只需要一个Map即可! Map什么时候创建(使用ServletContextListener,在服务器启动时完成创建,并只在到ServletContext中),Map保存到哪里!(Map保存到ServletContext中!!!) Map需要在Filter中用来保存数据 Map需要在页面使用,

hive学习02天-访问次数统计

hive的写法和sql类似,却又有一点不一样,本次采用模拟数据编写hql统计访问次数: 求出当月的访问次数,截至当月前的每个月最大访问次数.截至当月前每个用户总的访问次数. 数据表如下 A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,8 B,2015-01,25 A,2015-01,5 A,2015-02,4 A,2015-02,6 B,2015-02,10 B,2015-02,5 A,2015-03,16 A,2015-03,22 B,2015-0

java:(九大内置对象,计算服务器访问次数,filter过滤器)

1.九大内置对象: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page isErrorPage="true" %><!-- 默认是隐藏的false --> <%@ page session="true" %><!-- session默认是显示的true

JSP:用隐式对象统计网站访问次数

JSP:用隐式对象统计网站访问次数 jsp 隐式对象 赵振江 隐式对象 application对象 利用隐式对象为某一网站编写一个JSP程序,统计该网站的访问次数. 一种情况是:按照客户进行统计(按照浏览器进行统计,一个浏览器如果访问网站的话,就算一次访问,换句话说如果这个浏览器刷新多次网站的话,也算是一次访问): 另一种情况:刷新一次页面,就算是一次访问. 要求用隐式对象去实现. counter.jsp <%@ page language="java" import="

awk数组计数和去重---统计域名访问次数

1.awk数组 假设我们有一个酒店 酒店<===>Green 酒店里面有几个房间515,516,517,519这几个房间 酒店515房间<===>GreenHotel[515] 酒店516房间<===>GreenHotel[516] 酒店517房间<===>GreenHotel[517] 酒店519房间<===>GreenHotel[519] 酒店房间里面入住客人 酒店110房间住着xiaowei<===>greenhotel[515