Servlet中的Cookie使用方法

382 次浏览次阅读
没有评论

步骤

  • 创建一个 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>
正文完
 0
评论(没有评论)