运行页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
Cookie的运行原理:
1.第一次向服务器发送请求时在服务器端创建一个Cookie对象
2.将Cookie对象发送给浏览器
3.以后浏览器再发请求就会写到着该Cookie对象
4.服务器根据不同的Cookie对象来区分不同的用户
-->
<a href="${pageContext.request.contextPath }/CreateCookie">创建Cookie对象</a><br>
<a href="${pageContext.request.contextPath }/GetCookies">获取 Cookie对象</a><br>
<a href="${pageContext.request.contextPath }/PersistCookies">持久化 Cookie对象</a>
</body>
</html>
Cookie的创建(Servlet):
/**
* 负责创建Cookie的Servlet
*/
public class CreateCookie extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1.创建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对象(Servlet):
/**
* 获取Cookie对象的Servlet
*/
public class GetCookies extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取Cookie对象
Cookie[] cookies = request.getCookies();
if(cookies != null) {
//遍历每一个Cookie对象
for(Cookie cookie : cookies) {
//获取cookie对象的名字
String name = cookie.getName();
//获取cookie对象的值
String value = cookie.getValue();
System.out.println("Cookie对象的名字是:"+name);
System.out.println("Cookie对象的值是:"+value);
}
}
}
创建持久化的Cookie(Servlet):
/**
* 持久化Cookie的Servlet
*/
public class PersistCookies extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//创建Cookie对象
Cookie cookie = new Cookie("user3","man");
//持久换Cookie对象为1分钟
/*
* setMaxAge(int age)
*
* age > 0 : Cookie对象age秒后失败
* age = 0 : Cookie对象立即失败
* age < 0 : 默认,会话级别的Cookie对象
*/
cookie.setMaxAge(60);
//将Cookie对象发送给浏览器
response.addCookie(cookie);
}