日期:2014-05-17  浏览次数:20602 次

统计访问人数,求高手!!!!!!
Java code

public class Count implements ServletContextListener{
     public void contextDestroyed(ServletContextEvent arg0) {
          ServletContext sc = arg0.getServletContext();
          Integer count = (Integer) sc.getAttribute("AccessCount");
          try {
           PrintWriter out = new PrintWriter(new FileWriter("d:/count.txt"));// 将人数保存到文本文件
           System.out.println("count:"+count);
           out.print(count++);
           out.flush();
           out.close();
          } catch (IOException e) {
           e.printStackTrace();
          }
         }

     public void contextInitialized(ServletContextEvent arg0) {
          Integer count = 0;
          ServletContext sc = arg0.getServletContext();
          try {
           Scanner in = new Scanner(new FileReader("d:/count.txt"));// 读取已经产生的人数信息,然后进行累加
           count = in.nextInt();
           System.out.println(count+"--------------");
           in.close();
          } catch (FileNotFoundException e) {
           e.printStackTrace();
          }
          sc.setAttribute("AccessCount", count);
    }
}





public class Countp implements Filter{
    private String id;

    public void destroy() {
        // TODO Auto-generated method stub
        
    }

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain filterchain) throws IOException, ServletException {
        HttpServletRequest re=(HttpServletRequest)request;
        HttpServletResponse pon=(HttpServletResponse)response;
        HttpSession session=re.getSession();
     if(session.getId()!=null){
        //判断是否同一IP跟时间
               Integer count = (Integer) session.getServletContext().getAttribute("AccessCount");
              if(count!=null){
                  
               System.out.println(count+"=========");
               session.getServletContext().setAttribute("AccessCount", count++);
               id = session.getId();
              }
        }
         System.out.println("-------");
         filterchain.doFilter(re, pon);
    }

    public void init(FilterConfig arg0) throws ServletException {

        
    }
     



HTML code

<%=request.getSession().getServletContext().getAttribute("AccessCount")%>





怎么不累加啊!

------解决方案--------------------
ServletContext 和 Application 不是一样么?