SendCookieServlet(设置Cookie):
package com.xxx.cookie;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SendCookieServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//创建cookie对象
Cookie cookie = new Cookie("name","zhangsan"); // 只能存字符串,且不能是中文
//设置过期时间(持久化); 不设置过期时间,默认是会话级别的,关闭浏览器就失效
cookie.setMaxAge(10*60); //单位秒(10分钟);设置为0表示删除
//设置cookie的有效路径; 默认有效路径是产生该cookie的web资源所在的路径
//cookie.setPath("/MyWeb/xxx"); //访问xxx资源时才携带该cookie
cookie.setPath("/MyWeb"); //访问MyWeb下的任何资源时都携带这个cookie
//通过响应头通知客户端保存cookie
response.addCookie(cookie);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
GetCookieServlet.java(获取Cookie):
package com.xxx.cookie;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetCookieServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//获取客户端所有cookie对象
Cookie[] cookies = request.getCookies();
//通过cookie名称获得想要的cookie
if(cookies!=null){
for(Cookie cookie : cookies){
//获得cookie的名称
String cookieName = cookie.getName(); // 获取cookie对象中的名称
if(cookieName.equals("name")){
String cookieValue = cookie.getValue(); // 获取cookie对象中名称对应的值
System.out.println(cookieValue);
}
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
RemoveCookieServlet.java(删除Cookie):
package com.xxx.cookie;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RemoveCookieServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
//删除客户端保存 name=zhangsan的cookie信息
Cookie cookie = new Cookie("name",""); // (同名同路径的cookie进行覆盖)
//将path设置成与要删除cookie的path一致
cookie.setPath("/MyWeb");
//设置过期时间为0
cookie.setMaxAge(0);
response.addCookie(cookie);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}