使用过滤器实现网站访问计数器的功能
创建过滤器类:
public class CountFilter implements Filter {
private int count;//访问数量
//初始化
@Override
public void init (FilterConfig config) throws ServletException{
//获取初始化数量
String param = filterConfig.getInitParameter(“count”);
count = Integer.valueOf(param);
}
@Override
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException ,ServletException{
//访问数据自增
count++;
//将ServletRequest转换为HttpServletRequest
HttpServletRequest req = (HttpServletRequest)request;
//获取ServletContext (Application)
ServletContext context=req.getSession().getServletContext();
//将来访数量值放入到ServletContext中
context.setAttribute(“count”,count);
//向下传递过滤器
chain.doFilter(request, response);
}
@Override
public void destory(){
}
}
在web.xml中配置过滤器
<filter>
<filter-name>countfilter</filter>
<filter-class>com.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>
<url-pattern>/index.jsp</url-pattern>
<filter-mapping>
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步