Servlet中的Cookie使用方法

作者: 太阳上的雨天 分类: Java 发布时间: 2022-02-01 16:05

步骤

  • 创建一个Cookie对象写入cookie
  • 设置过期时间
  • 添加到HTTP响应头
  • 获取返回给客户端的Cookie数组
  • 遍历取出每个cookie
package com.demo;

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;

public class CookieDemo extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 设置字符集
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html; charset=utf-8");

        // 获取输出对象
        PrintWriter writer = resp.getWriter();

        // 获取返回给客户端Cookie数组
        Cookie[] cookies = req.getCookies();
        // 从cookie中取值
        if (cookies == null) {
            writer.write("No Cookies");
            writer.write("写入Cookie");

            // 创建一个Cookie对象,写入cookie
            Cookie cookie = new Cookie("username", "cookie demo");
            // 设置一个小时的过期时间
            cookie.setMaxAge(1*60*60);
            // 添加到HTTP响应头中
            resp.addCookie(cookie);
        } else {
            for (Cookie c : cookies) {
                writer.write("Name: " + c.getName());
                writer.write("Value:" + c.getValue());
            }
        }

        writer.close();
    }

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

web.xml

    <servlet>
        <servlet-name>cookieDemo</servlet-name>
        <servlet-class>com.demo.CookieDemo</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>cookieDemo</servlet-name>
        <url-pattern>/cookie/demo</url-pattern>
    </servlet-mapping>

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注