Cookie
写一个创建的超链接
<%--
Created by IntelliJ IDEA.
User: dell
Date: 2020/10/13
Time: 15:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<%--Cookie运行原理
1.第一次向服务器发送请求时在服务器端创建一个Cookie对象
2.将Cookie对象发送给浏览器
3.以后给浏览器发送请求就会携带着Cookie对象
4.服务器根据不同的Cookie对象区分不同的用户
--%>
<a href="${pageContext.request.contextPath}/CookieServlet">创建Cookie对象</a>
</body>
</html>
servlet
package servlet;
/*
* Cookie的缺点
* Cookie作为请求或相应报文发送,无形中增加了网络流量
* Cookie是明文传送的 安全性差
* 各个浏览器对Cookie有限制,使用上有局限
* Cookie的值只能是String类型,不能保存对象
*
*
* */
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;
public class CookieServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 创建Cookie对象
// Cookie对象名字不能使用中文,Cookie对象的值可以使用中文但是需要指定字符集编码,而且获取Cookie对象时还需要解码
Cookie cookie = new Cookie("user", "admin");
Cookie cookie2 = new Cookie("user2", "pathCookie");
// 设置Cookie对象的有效路径,默认Cookie有效路径为项目根目录
// 自己设置有效路径
cookie2.setPath(request.getContextPath()+"/pages");
// 2.将Cookie对象发送给浏览器
response.addCookie(cookie);
response.addCookie(cookie2);
// 获取Cookie
Cookie[] cookies = request.getCookies();
for (Cookie c : cookies
) {
System.out.println("Cookie名字"+c.getName());
System.out.println("Cookie路径"+c.getPath());
}
// 持久化servlet对象 一分钟
/*
* setMaxAge(int age)
* age>0 Cookie对象age秒后失效
* age=0 Cookie对象直接失效
* age<0 默认会话级别的Cookie
* */
cookie.setMaxAge(60);
}
}