Cookie的使用细节

Cookie的使用细节

// AServlet.java
@WebServlet("/aServlet")
public class AServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 发送Cookie

        String value = "张三";

        // URL编码
        value = URLEncoder.encode(value, "UTF-8");
        System.out.println("存储数据:" + value);

        // 1. 创建Cookie对象
        Cookie cookie = new Cookie("username", value);

        // 设置存活时间 1周 7天
        cookie.setMaxAge(60*60*24*7);

        // 2. 发送cookie, response
        resp.addCookie(cookie);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}
// BServlet.java
@WebServlet("/bServlet")
public class BServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取Cookie
        // 1. 获取Cookie数组
        Cookie[] cookies = req.getCookies();
        // 2. 遍历数组
        for (Cookie cookie : cookies) {
            // 3. 获取数据
            String name = cookie.getName();
            if ("username".equals(name)) {
                String value = cookie.getValue();
                // URL解码
                value = URLDecoder.decode(value, "UTF-8");
                System.out.println(name + ":" + value);
                break;
            }
        }
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}