JavaWeb(入門篇11)Cookie簡單實現

在這裏插入圖片描述

1.實現功能

實現上次登錄的時間Cookie的保存和發送,
如果有Cookie就打印上次登錄的時間,並返回這次CurrentTime作爲這次登錄的時間,
如果沒有Cookie就打印這是你第一次登錄
Cookie默認存活的時間是 10秒鐘,

2.核心代碼

1. 獲取Cookie

req.getCookies();

2. 獲取Cookie的鍵

cookies[i].getName()

3. 獲取Cookie的值

ookies[i].getValue()

4. 新建Cookie並設置保存時間

Cookie cookie = new Cookie("lastLoginTime",System.currentTimeMillis()+"");
cookie.setMaxAge(10);

5. 返回瀏覽器Cookie讓他保存

resp.addCookie(cookie);

3.實現框架

在這裏插入圖片描述
在這裏插入圖片描述

4.代碼實現

1.CookieLogin類:實現所有的功能

package com.bmft;


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;

/**
 * 實現上次登錄的時間Cookie的保存和發送,
 *
 * 如果有Cookie就打印上次登錄的時間,並返回這次CurrentTime作爲這次登錄的時間,
 * 如果沒有Cookie就打印這是你第一次登錄
 * Cookie默認存活的時間是 10秒鐘,
 */
public class CookieLogin extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=UTF-8");//設置客戶端的接受方式

        javax.servlet.http.Cookie[] cookies = req.getCookies();
        PrintWriter out = resp.getWriter();
        boolean isFirstTime = true;
        if (cookies != null){
            for (int i = 0; i < cookies.length; i++) {
                //如果有Cookie就打印上次登錄的時間,並返回這次CurrentTime作爲這次登錄的時間,
               if (cookies[i].getName().equals("lastLoginTime")){
                   out.write("上次登錄的時間:"+cookies[i].getValue());
                   isFirstTime = false;
               }
            }
        }
        if (isFirstTime){
            out.write("這是您的第一次登錄");
        }
        Cookie cookie = new Cookie("lastLoginTime",System.currentTimeMillis()+"");
        cookie.setMaxAge(10);
        resp.addCookie(cookie);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

2.映射

  <servlet>
    <servlet-name>CookieLogin</servlet-name>
    <servlet-class>com.bmft.CookieLogin</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>CookieLogin</servlet-name>
    <url-pattern>/CookieLogin</url-pattern>
  </servlet-mapping>

5.頁面展示

在這裏插入圖片描述
在這裏插入圖片描述
再刷新
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章