java实现页面访问量统计的实例,防刷新

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Count extends HttpServlet
{
         public void doGet(HttpServletRequest request,HttpServletResponse response)
                 throws ServletException,IOException
         {
                 /*//得到当前web应用程序的上下文
                 ServletContext context=this.getServletContext();
                
                 //取出当前保存的属性
                 //如果此页面是第一次被访问,那些count为空,我们帮他初始化为1
                 //如果不是第一次被访问,那么就加1
                 Integer count=(Integer)context.getAttribute("count");
                 if(count==null)
                 {
                         count=new Integer(1);
                 }
                 else
                 {
                         count=new Integer(count.intValue()+1);
                 }*/
             
//             上面的方式是放到了context中,我可以放到session中
             HttpSession session=request.getSession();
             Integer count = (Integer)session.getAttribute("count");
             if(count==null){
                 count = 1;
             }else{
                 
                 if(session.getAttribute("ip")!=null&&!session.getAttribute("ip").equals(getRemortIP(request))){
                     count = new Integer(count.intValue())+1;
                 }
             }
                
                 //设置编码,不然中文会变成乱码
                 response.setContentType("text/html;charset=GB2312");

                 //得到输出流对象
                 PrintWriter out=response.getWriter();
                
                 out.println("<html><head><title>");
                 out.println("页面访问统计");
                 out.println("</title></head><body>");
                 out.println("当前页面被访问了");
                 out.println("<font color=red size=20>"+count+"</font>次");
                 //设置属性,将count保存到当前的上下文中
//                 context.setAttribute("count",count);
                 session.setAttribute("count",count);
                 session.setAttribute("ip",getRemortIP(request));
                 out.close();
         }
         
         /**
          * 获得客户端ip
          * @param request
          * @return
          */
         public String getRemortIP(HttpServletRequest request) {

             if (request.getHeader("x-forwarded-for") == null) {

                 return request.getRemoteAddr();

             }

             return request.getHeader("x-forwarded-for");

        } 

}

转载于:https://my.oschina.net/91jason/blog/304481

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值