过滤器-页面访问次数

来源:互联网 发布:算法导论有第四版吗 编辑:程序博客网 时间:2024/05/01 07:26

使用Filter来统一控制页面的访问次数,Filter类控制如下所示:

package cn.web.filter;import java.io.IOException;import java.util.HashMap;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;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class PageVisitFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) resp;//得到当前访问的资源String uri = request.getRequestURI();//得到保存页面访问次数的map容器ServletContext context = request.getSession().getServletContext();Map pagecount = (Map) context.getAttribute("pagecount");if(pagecount==null){pagecount = new HashMap(); context.setAttribute("pagecount", pagecount);}//从容器中得到当前资源的访问次数Integer count = (Integer)pagecount.get(uri);if(count==null){count = 1;pagecount.put(uri, count);}else{count++;pagecount.put(uri, count);}chain.doFilter(request, response);}public void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub}}


Web.xml配置如下:

  <filter>  <filter-name>PageVisitFilter</filter-name>  <filter-class>cn.web.filter.PageVisitFilter</filter-class>  </filter>    <filter-mapping>  <filter-name>PageVisitFilter</filter-name>  <url-pattern>*.jsp</url-pattern>  <dispatcher>FORWARD</dispatcher>  </filter-mapping>

 

 jsp页面获取访问次数:

          ${applicationScope.pagecount[pageContext.request.requestURI] }

 

html页面获取访问次数(html动态的调用jsp,jsp获取数据返回给html):

<!-- html页面,调用jsp获取页面访问次数 --><body>    当前页面访问次数: <script type="text/javascript" src="/test/MyJsp.jsp?page=/test/MyHtml.html"></script></body><!-- jsp页面,获取当前访问的次数 -->document.write("${applicationScope.pagecount[param.page]}");




 

原创粉丝点击