servlet过滤器--使用过滤器统计网站访问人数的计数(注解形式)
1、什么是过滤器?
主要用于对客户端的请求进行过滤处理,再将经过过滤后的请求转交给下一个资源。

2、过滤器核心对象
一个接口,名称为Filter,放置在javax.servlet包中。

- Filter:过滤器对象
- FilterConfig:过滤器的配置对象
- FilterChain:过滤器的传递工具
3、过滤器创建和配置

- filterName属性:用于指定servlet过滤器名
- urlPatterns属性:用于指定哪些URL使用该过滤器,所有使用
/*,指定某一个index.jsp - initParams属性:指定初始化参数
4、举例子
网站人数访问计数
编写的过滤器
package com.zheng;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@WebFilter(
urlPatterns = {"/countNum.jsp"},
initParams = {
@WebInitParam(name = "count", value = "100")
}
)
public class MyFilter implements Filter {
private int count;//访问人数
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
count++;//访问数量增加
//将ServletRequest转换为HttpServletRequest
HttpServletRequest request = (HttpServletRequest) req;
//获取ServletContext
ServletContext context = request.getServletContext();
context.setAttribute("count", count);//将数量放入
chain.doFilter(req, resp);//放开拦截
}
//初始化
public void init(FilterConfig config) throws ServletException {
String param = config.getInitParameter("count");//获取初始化参数
count = Integer.valueOf(param);
}
}
前端页面
<%--
Created by IntelliJ IDEA.
User: 你芭比
Date: 2021/12/20
Time: 9:30
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>计数</title>
</head>
<body>
<h2>
第【<%=application.getAttribute("count")%>】位访问
</h2>
</body>
</html>
测试结果



servlet过滤器--使用过滤器统计网站访问人数的计数(注解形式)的更多相关文章
- 013. asp.net统计网站访问人数
Global.asax中的代码: <%@ Application Language="C#" %> <script runat="server" ...
- application 统计网站访问人数
参考书<JSP Web 开发案例教程> index.jsp welcome.jsp 显示
- JSP使用网站访问人数统计功能,方法与技巧
实现网站访问人数统计功能的步骤: 创建静态登录页面,并指定表单提交由登录处理页面进行处理. 创建登录处理页面获得登录信息,查询数据库,判断该用户是否注册,如果该用户已注册,把已登录用户的信息保存在一个 ...
- Asp.Net 网站访问人数及在线人数
利用Application对象和Session对象可以统计历史访问人数和当前在线人数. 在会话开始和结束时,一定要进行加锁和解锁操作.由于多个用户可以共享Application对象,因此加锁是必要的, ...
- C#统计网站访问总人数和当前在线人数
一.打开vitualstudio2010,新建一个网站,然后添加新项,新建一个login.aspx和index.aspx页面.再添加新项,选择全局应用程序类,该页面为Global.asax. 第一步: ...
- C#统计网站访问总人数和当前在线人数 Application
一.打开vitualstudio2010,新建一个网站,然后添加新项,新建一个login.aspx和index.aspx页面.再添加新项,选择全局应用程序类,该页面为Global.asax. 第一步: ...
- Python开发程序:生产环境下实时统计网站访问日志信息
日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...
- Filter和Listener的应用——分IP统计网站访问次数
一:分析 统计工作需要在所有资源执行前进行,所以需要放在filter中 这个拦截器仅仅进行统计工作,不进行拦截,所以请求必须继续传递下去 用Map<String,integer>来保存数据 ...
- Python开发【项目】:生产环境下实时统计网站访问日志信息
日志实时分析系统 生产环境下有需求:要每搁五分钟统计下这段时间内的网站访问量.UV.独立IP等信息,用直观的数据表格表现出来 环境描述: 网站为Nginx服务,系统每日凌晨会对日志进行分割,拷贝到其他 ...
随机推荐
- WebGPU的计算着色器实现冒泡排序
大家好~本文使用WebGPU的计算着色器,实现了奇偶排序. 奇偶排序是冒泡排序的并行版本,在1996年由J Kornerup提出.它解除了每轮冒泡间的串行依赖以及每轮冒泡内部的串行依赖,使得冒泡操作可 ...
- Spring源码 17 IOC refresh方法12
参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...
- 在.NET 6.0中使用不同的托管模型
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 本章是<定制ASP NET 6.0框架系列文章>的第六篇.在本章中,我 ...
- CF1528C Trees of Tranquillity(图论,数据结构)
题面 有两棵 n n n 个点的有根树 T 1 T_1 T1, T 2 T_2 T2,根是 1 1 1 ,共用编号 1 1 1~ n n n.求最大的点集 S S S 满足每个点在 T 1 T_1 ...
- mac_VMWare安装总结
MacOS 安装VmWare 总结 如果之前安装过virtualBox,virtualBox的内核扩展会影响到VmWare的使用 *比如会导致VMWare虽然可以安装,却无法创建虚拟机 这是需要执行以 ...
- 电商平台物流模块自建OR对接第三方物流平台
前沿 近几年来,电商行业竞争变得愈加激烈,公域流量获客成本越来越高,电商平台规则也越来越严格,数据无法出塔,商家无法自主运营用户群等等原因,很多大品牌纷纷开始搭建自有商城,运营私域流量,以此来降低 ...
- 日志:Redo Log 和 Undo Log
本篇文章主要介绍 Redo Log 和 Undo Log: 利用 Redo Log 和 Undo Log 实现本地事务的原子性.持久性 Redo Log 的写回策略 Redo Log Buffer 的 ...
- ElasticSearch介绍和基本用法(一)
ElasticSearch 引言 1.在海量数据中执行搜索功能时,如果使用MySQL, 效率太低. 2.如果关键字输入的不准确,一样可以搜索到想要的数据. 3.将搜索关键字,以红色的字体展示. 介绍: ...
- 《网页设计基础——CSS常用语法》
网页设计基础--CSS常用语法 一.注释: 例如: /* 在此处书写注释 */ 二.清除浏览器默认设置: 例如: *{ /* 全局声明 */ margin: 0; padding: ...
- python自动更新pom文件
前言 项目越来越多,版本管理越来越麻烦,在项目上我使用 maven version 来进行版本管理.主要还是在分布式项目中模块众多的场景中使用,毕竟各个模块对外的版本需要保持统一. 关于这个插件如何使 ...