天天看點

運用Cookie技術,統計通路次數以及上次通路時間。

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@WebServlet("/CookieTest")

public class CookieTest extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public CookieTest() {

        super();

        // TODO Auto-generated constructor stub

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;chartset=utf-8");

        PrintWriter out = response.getWriter();

        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");

        //獲得目前時間

        String nowTime=sdf.format(new Date());

        //初始化最後一次通路的時間和次數

        String lastVistedTime ="";//最後一次通路的時間

        int vistedCount=0;//總通路次數

        //嘗試擷取cookie,并讀取其中的内容

        Cookie[] myCookie = request.getCookies();

        //判斷是否已經有Cookie

        if(myCookie!=null){

            //循環周遊cookie數組,逐個讀取資訊

            for(Cookie cookie:myCookie){

                //判斷目前這個cookie是不是記錄最近一次通路時間

                if(cookie.getName().equals("lastVistedTime")){

                    lastVistedTime = cookie.getValue();

                }

                //判斷目前cookie是否記錄通路次數

                if(cookie.getName().equals("vistedCount")){

                    vistedCount = Integer.parseInt(cookie.getValue());

                }

            }

        }

        //如果不是第一次通路,輸出上一次通路時間

        if(!lastVistedTime.equals("")){

            out.println("您上次通路的時間是:"+lastVistedTime);

        }

        //輸出通路該站點的次數

        out.println("您是第"+(vistedCount+1)+"次通路本站.<br>");

        //下面的代碼将cookie中的資料進行更新

        Cookie lastVistedTimeCookie = new Cookie("lastVistedTime", lastVistedTime);

        lastVistedTimeCookie.setMaxAge(60*60*24*7);

        Cookie vistedCountCookie = new Cookie("vistedCount",(vistedCount+1)+"");

        vistedCountCookie.setMaxAge(60*60*24*7);

        response.addCookie(lastVistedTimeCookie);

        response.addCookie(vistedCountCookie);

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);

    }

}