过滤器实现网站访问计数

news/2024/5/9 7:02:20/文章来源:https://blog.csdn.net/weixin_42165912/article/details/102551484

创建一个过滤器,实现网站访问计数器的功能,并在web.xml文件的配置中将网站访问量的初始值设置为5000。

创建名称为CountFilter的类

创建名称为CountFilter的类,该类实现javax.servlet.Filter接口,是一个过滤器对象,通过该过滤器实现统计网站访问人数。代码如下:

package org.life.filter;import java.io.IOException;
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;
import javax.servlet.http.HttpServletRequest;public class CountFilter implements Filter {//来访数量private int count;public void init(FilterConfig fConfig) throws ServletException {//获取初始化参数String param = fConfig.getInitParameter("count");//将字符串转换为intcount = Integer.valueOf(param);}public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {//访问数量自增count++;//将ServletRequest转换为HttpServletRequestHttpServletRequest req = (HttpServletRequest) request;//获取ServletContextServletContext context = req.getSession().getServletContext();//将来访数量值放入到ServletContext中context.setAttribute("count", count);//向下传递过滤器chain.doFilter(request, response);}public void destroy() {}
}

在CountFilter类中包含了一个成员变量count,用于记录网站访问人数,该变量在过滤器访问的初始化方法init()中被赋值,它的初始化值通过FilterConfig对象读取配置文件中的初始化参数进行获取。
计数器count变量的值在CountFilter类的doFilter()方法中被递增,因为客户端在请求服务器中的Web应用时,过滤器拦截请求通过doFilter()方法进行过滤处理。为了能够访问计数器中的值,实例中将其放置于Servlet上下文中,Servlet上下文对象通过将ServletRequest转换为HttpServletRequest对象后获取。

Tips:过滤器对象中的3个方法中,除了doFilter()方法外,如果在业务逻辑中不涉及初始化方法init()与销毁方法destroy(),可以不编写任何代码对其进行空实现。

配置已创建的CountFilter对象

配置已创建的CountFilter对象,此操作通过配置web.xml文件进行实现。关键代码如下

<!-- 过滤器声明 --><filter><display-name>CountFilter</display-name><filter-name>CountFilter</filter-name><filter-class>org.life.filter.CountFilter</filter-class><!-- 设置初始化参数 --><init-param><!-- 参数名 --><param-name>count</param-name><!-- 参数值 --><param-value>5000</param-value></init-param></filter><filter-mapping><filter-name>CountFilter</filter-name><url-pattern>/index.jsp</url-pattern></filter-mapping>

在声明过程中,实例通过<init-param>标签配置过滤器的初始化参数,初始化参数的名称为count,参数值为5000。

Tips:如果直接对过滤器对象中的成员变量进行赋值,那么在过滤器被编译后将不可修改,所以,实例中将过滤器对象中的成员变量定义为过滤器的初始化参数,从而提高代码的灵活性

创建程序中的首页index.jsp

创建程序中的首页index.jsp,在该页面中通过JSP内置对象Application获取计数器的值。关键代码如下

<body><h2>欢迎光临,<br/>你是本站的第【<%=application.getAttribute("count") %>】位访客!</h2>
</body>

在这里插入图片描述
这里有一个问题,就是初始值设置的是5000,第一次访问应该是第5001位访客,但为什么是5002位访客。
这里我自己也debug了一下,发现运行过程中,程序先自己走一遍流程,但是第一遍的时候不输出访客数,第二遍的时候才输出,感觉可能是服务器第一次启动的问题,不过自己对于这方面不是很了解,百度也没百度到结果,所以希望看到的能评论一下这个问题是怎么回事,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_876381.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018-2019 ACM-ICPC, Asia Seoul Regional Contest E题(分段函数二分)

首先放上队友的博客 看到最小最大值第一反应是二分&#xff0c;但是不明白怎么二分&#xff0c;看了队友的博客&#xff0c;以下胡言乱语全是根据队友博客的自己理解 首先我们的目标是errorF最小&#xff0c;设该最大误差是x,那么对于每个点,其误差都要小于x 现在我们考虑两个…

php实战之使用curl抓取网站数据

之前做过一个网站数据抓取的工作&#xff0c;让我充分感受到了计算机科学的生产力。之前为了抓取网站源数据的数据&#xff0c;我们公司只能依靠人多力量大的方式&#xff0c;一点一点从源网站抠&#xff0c;整整干了三天&#xff0c;干得头昏脑涨&#xff0c;听老板说以前有ph…

第一次构建个人网站的记录

很早之前就想构建一个属于自己的个人网站&#xff0c;自己设计样式&#xff0c;管理维护。但是一直没有进行相关的实践。 今天总算是成功了&#xff0c;也算是拥有了一个属于自己的“后花园了”。 点击进入我的“后花园” 下面我就来讲讲如何搭建一个属于自己的个人网站。 搭…

CSS+DIV练手——旅游网站

BS要结了&#xff0c;抽出空来拿CSSDIV练练手&#xff0c;用了理解的会更深刻&#xff0c;这次做的是个旅游网站的界面&#xff08;例子源于《精通CSS.DIV网页设计与布局》&#xff09;。 html代码&#xff1a; <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitiona…

从网站细节入手提高易用性

信息系统 存储了大量信息&#xff0c;提高对信息查找的效率&#xff0c;其系统的可用性会大大的提高。那如何提高效率呢&#xff1f;哪哪些方面入手呢&#xff1f; 想要提高效率&#xff0c;首先简化操作必不可少&#xff0c;拿jc系统来说&#xff0c;基础系统在检索特定类型的…

交互设计[小插曲]--网站UI配色

作为一个前端工程师&#xff0c;我想懂一些基本的网站配色技巧还是必须的&#xff0c;现在将我在BootStrap中看到一个非常不错的配色技巧跟大家分享下&#xff0c;相信大家一看就明白&#xff1a; 同时&#xff0c;我想在这里分享自己对工程师工作态度的一些看法&#xff1a; …

浅谈SEO优化

前段时间帮朋友搬家&#xff0c;被问到会不会写python爬虫&#xff0c;我说不会&#xff08;真的不会&#xff09;。但是去图书城充数的时候还是大概瞄了一下有关python爬虫的书籍的&#xff0c;有各种各样的python爬虫框架&#xff0c;Scrapy、PySpider、Crawley、Grab等等各种…

2021新手建站-宝塔一键部署WordPress(上)

2021新手建站-宝塔一键部署WordPress&#xff08;上&#xff09; 1.前期准备 服务器域名 2.部署宝塔 演示Centos系统下的宝塔部署过程&#xff0c;如果你是其他系统&#xff0c;可以去宝塔官网查看对应的系统如何部署安装&#xff01; 远程登录到你的服务器&#xff08;需要…

【js】多种方式查看网站的cookie

1.F12在浏览器的控制面板console中输入document.cookie查看&#xff1a; 2.在谷歌浏览器的开发者工具Application中找到cookie查看&#xff1a; 3.在浏览器的设置中找到&#xff0c;已谷歌浏览器为例&#xff0c;在谷歌浏览器的地址栏输入&#xff1a; chrome://settings/conte…

Java Web开发 基于HttpServlet的用户登录网站 实例

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01; 一个简单的小例子&#xff0c;基于httpser…

阿里云上部署webservice或者网站,服务器本身测试可以整成使用,但是在其他机器上调用时找不到网页或者webservice

阿里云上部署webservice或者网站&#xff0c;服务器本身测试可以整成使用&#xff0c;但是在其他机器上调用时找不到网页或者webservice 前一段时间做项目时需要用到webservice&#xff0c;开始时在自己的本地机器上创建了webservice,然后在vs2012中发布了这个webservice 然后…

iis部署网站(asp.net或者wcf)出现HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

首先参考这个&#xff1a; http://blog.csdn.net/xuwei_xuwei/article/details/36895193 https://q.cnblogs.com/q/32443/ 其次&#xff1a; http://www.zhixing123.cn/net/41765.html 还有看下配置iis的时候有没有 都配置过了基本没问题

发布网站到本地IIS出错

错误&#xff1a; win10以前系统以管理员方式打开cmd执行 c:\windows\microsoft.net\framework64\v4.0.30319\aspnet_regiis.exe -i win10以管理员方式打开cmd执行 dism /online /enable-feature /featurename:IIS-ISAPIFilter dism /online /enable-feature /featurename:II…

12个免费学习编程的网站

摘要&#xff1a;无论想学什么,也无论出于什么目的想学,都需要你保持好奇心。但是作为刚想入门的新手&#xff0c;面对眼前海量的信息&#xff0c;或许根本不知道从哪里开始。想学习编程&#xff1f;这里有12个提供免费编程课的网站推荐给你。 曾几何时&#xff0c;编程对极客来…

网站部署到IIS上如何进行调试

在一个网站成功部署后&#xff0c;有时候可能会遇到一些错误&#xff0c;但又不能一眼看出错误源&#xff0c;如果能在源程序里下断点进行调试就好了&#xff0c;这样就能准确的找出错误代码。 下面就跟大家说说如何在一个已经部署了的网站上进行断点调试&#xff08;前提 有网…

【技巧】去哪找高清免费素材?这些资源网站必须收藏!

经常有同学问找素材和看创意的网站&#xff0c;今天就给大家介绍几个&#xff0c;素材免费且好用。 ① picjumbo 网址&#xff1a;https://picjumbo.com/ 美丽的免费照片 为高分辨率下载免费的图片&#xff0c;背景和图像&#xff0c;用于个人和商业用途 ② 01资源网 网址&…

10个超强英语学习资源网站,学霸们都在用!

想知道学霸们是怎么炼成的吗&#xff1f; 一起来看看躺在学霸电脑收藏夹的10个高档学习网站&#xff0c;用好它们&#xff0c;你也可以成为高手&#xff01; 1、TED 适用人群&#xff1a; 学霸&#xff0c;思想者 主要特点&#xff1a; 以专业、深度思考话题见长 网站简介&am…

找2021考研资料?这些超强资源网站必须知道!

&#xff08;1&#xff09;爱课程&#xff1a; 网址&#xff1a;http://www.icourses.cn/home/ 爱课程是教育部、财政部“十二五”期间启动实施的“高等学校本科教学质量与教学改革工程”支持建设的一个高等教育课程资源共享平台&#xff0c;集中展示“中国大学视频公开课”和…

【简历模板素材】制作简历,找简历模板?这几个网站全部搞定!

今天给大家推荐三个比较好用的制作简历&#xff0c;找简历模板的网站&#xff0c;可以在线制作并下载&#xff0c;也可以直接找简历模板套用&#xff01; 第一个推荐的网站就是——01资源网。 这是一个可以在线下载各种模板素材资源的网站&#xff0c;除了简历模板&#xff0…