1. 程式人生 > 其它 >javaweb22/4/4

javaweb22/4/4

Cookie與Session

https://www.cnblogs.com/l199616j/p/11195667.html

會話(Session)跟蹤是Web程式中常用的技術,用來跟蹤使用者的整個會話。常用的會話跟蹤技術是Cookie與Session。
Cookie通過在客戶端記錄資訊確定使用者身份,Session通過在伺服器端記錄資訊確定使用者身份。
常見場景:網站登陸之後,第二次就不用登入了

用Cookie儲存使用者上一次訪問的時間

1.cookie的Servlet

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解決請求響應中的中文亂碼問題
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");
        req.setCharacterEncoding("utf-8");

        PrintWriter out = resp.getWriter();
        //Cookie是在客戶端儲存,所以req.getCookies
        Cookie[] cookies = req.getCookies();//返回陣列,說明Cookie可能有多個

        if (cookies!=null){
            out.write("您上次訪問的時間是:");
            for (int i = 0; i <cookies.length ; i++) {
                Cookie cookie = cookies[i];
                if (cookie.getName().equals("wenping")){
                    //獲取cookie中的值
                    long l = Long.parseLong(cookie.getValue());
                    Date date = new Date(l);
                    out.write(date.toLocaleString());
                }
            }
        }else{
            out.write("這是您第一次訪問本網站");
        }
        //伺服器端給客戶端響應一個Cookie
        Cookie cookie = new Cookie("wenping",System.currentTimeMillis()+"");
        resp.addCookie(cookie);
        cookie.setMaxAge(24*60*60);//設定cookie的有效期
    }

2.註冊Servlet
3.結果

Session

 Session是另一種記錄客戶狀態的機制,不同的是Cookie儲存在客戶端瀏覽器中,而Session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,
伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是Session。伺服器會給每個使用者(瀏覽器)建立一個Session物件,例如,使用者登入後可訪問整個網站