所谓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进行判断