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.页面展示

在这里插入图片描述
在这里插入图片描述
再刷新
在这里插入图片描述

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