/*
file:SetCookies.java
cookie使用url路径继承机制,上级路径设置的cookie,所有子路径都可以访问到,子路径设置的cookie,上级路径不可访问
*/
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SetCookies extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
for (int i = 0; i < 3; i++) {
Cookie cookie = new Cookie("Session-Cookie-" + i, "Cookie-Value-s" + i);
response.addCookie(cookie); //没有设置时间的cookie依赖于窗口及所有子窗口 销毁与窗口关闭时
cookie = new Cookie("Persistent-Cookie-" + i, "Cookie-Values-p" + i);
cookie.setMaxAge(3600); //设置了存活时间,会写入客户端Cookie 不依赖窗口
response.addCookie(cookie);
}
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String title = "Setting Cookies";
out.println(
"<html><head><title>设置Cookie</title></head>"
+ "<body bgcolor='#fdf5e6'>\n" + "<h1 align='center'>"
+ title + "</h1>"
+ "<a href='ShowCookies'>ShowCookies\n</a>"
+ "</body></html>");
}
}
/*
file:ShowCookies.java
*/
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ShowCookies extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String title = "Active Cookies";
out.println("<html><head><title>活动Cookies</title></head>"
+ "<body><h1>" + title + "</h1>"
+ "<table border=1 align='center'>"
+ "<tr bgcolor='#ffad00'><th>cookie-name</th><th>cookie-value</th><tr>");
Cookie[] cookies = request.getCookies();
if(cookies != null) {
Cookie cookie;
for (int i = 0; i < cookies.length; i++) {
cookie = cookies[i];
out.println("<tr><td>"+cookie.getName()+"</td>"
+ "<td>"+cookie.getValue()+"</td></tr>");
}
}
out.println("</body></html>");
}
}