1. 程式人生 > >Cookie 之顯示使用者上次訪問時間

Cookie 之顯示使用者上次訪問時間

錯誤程式碼:

    String currentTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")                     .format(new Date());             Cookie cookie = new Cookie("lastAccess",currentTime);

正確程式碼:

   Cookie cookie = new Cookie("lastAccess",System.currentTimeMillis()+"");

完整程式碼:

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

public class LastAccessServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 指定伺服器輸出內容的編碼方式UTF-8,防止發生亂碼
        response.setContentType("text/html;charset=utf-8");
        String lastAccessTime = null;
        // 獲取所有的cookie,並將這些cookie存放在陣列中
        Cookie[] cookies = request.getCookies();
        PrintWriter out = response.getWriter();
        long time = 0;
        // 遍歷cookies陣列
        for (int i = 0; cookies != null && i<cookies.length; i++) {
            Cookie c = cookies[i];
            if ("lastAccess".equals(c.getName())) {
                // 如果cookie的名稱為lastAccess,則獲取該cookie的值
                lastAccessTime = c.getValue();
                 time = Long.parseLong(lastAccessTime);
                break;
            }
        }
        // 判斷是否存在名稱為lastAccess的cookie
        if (lastAccessTime == null) {
            out.print("您是首次訪問本站!!!");
        } else {
            out.print("您上次的訪問時間是: " + new Date(time).toLocaleString());
        }
        Cookie cookie = new Cookie("lastAccess",System.currentTimeMillis()+"");
        //cookie.setMaxAge(60*60); //設定cookie最大存在時間
        // 傳送 cookie
        response.addCookie(cookie);
    }
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        this.doPost(req, resp);
    }
}

總結:沒有完全弄懂第一種方式為什麼錯了,兩種獲取時間的方式為什麼不同,求指教啊~~