步骤
- 创建一个Cookie对象写入cookie
- 设置过期时间
- 添加到HTTP响应头
- 获取返回给客户端的Cookie数组
- 遍历取出每个cookie
package com.demo;
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;
import java.io.PrintWriter;
public class CookieDemo extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置字符集
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html; charset=utf-8");
// 获取输出对象
PrintWriter writer = resp.getWriter();
// 获取返回给客户端Cookie数组
Cookie[] cookies = req.getCookies();
// 从cookie中取值
if (cookies == null) {
writer.write("No Cookies");
writer.write("写入Cookie");
// 创建一个Cookie对象,写入cookie
Cookie cookie = new Cookie("username", "cookie demo");
// 设置一个小时的过期时间
cookie.setMaxAge(1*60*60);
// 添加到HTTP响应头中
resp.addCookie(cookie);
} else {
for (Cookie c : cookies) {
writer.write("Name: " + c.getName());
writer.write("Value:" + c.getValue());
}
}
writer.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
web.xml
<servlet>
<servlet-name>cookieDemo</servlet-name>
<servlet-class>com.demo.CookieDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>cookieDemo</servlet-name>
<url-pattern>/cookie/demo</url-pattern>
</servlet-mapping>