一步一步学习Servlet之Cookie使用

所谓Cookie也就是解决,同一用户不同请求之间的数据共享问题使用了重定向,会发现浏览器发起的信息无法得到,也就是发送的不同请求的数据共享问题,为了解决此问题,引入了Cookie,存储在浏览器中,Cookie也是Session的基础,每一个浏览器中的Cookie会对应一个服务器中的session

Cookie c = new Cookie(String name, String value); //创建Cookie对象,一个Cookie对象只能存储一条信息

resp.addCookie(c); //响应Cookie信息给浏览器

c.setMaxAge(); //设置Cookie的存活时间,括号里面是秒,不设置默认是浏览器运行期间。

c.setPath(路径); //设置该Cookie对象的有效路径,不设置默认是所有路径都会带着该Cookie

Cookie[] cks = req.getCookies(); //获取Cookie信息,默认带一个JSESSIONID

cks[0].getName(); //获取Cookie的name值

cks[0].getValue(); //获取Cookie的value值

package com.zhiying.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/a")
public class CookieDemo1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // Cookie由服务器创建,保存在浏览器,首先从浏览器get到Cookies
        Cookie[] cookies = req.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                System.out.println(cookie.getName() + ":" + cookie.getValue());
            }
        } else {
            System.out.println("这是你第一次访问该网站");
        }
        Cookie cookie = new Cookie("username", "root");
        resp.addCookie(cookie);
    }

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

如果是第一次访问会输出,这是你第一次访问该网站。如果不是第一次访问,他会根据SESSIONID进行判断

发布了376 篇原创文章 · 获赞 242 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/HeZhiYing_/article/details/104040997