1.set cookie 其中三个为不设置setMaxAge属性,三个为设置
package com.servlet.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.*;
/**
* Servlet implementation class setCookie
*/
@WebServlet(name="/setCookie", urlPatterns= {"/setCookie"})
public class setCookie extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public setCookie() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie cookie;
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("<html><head><title>set cookie list</title></head>"
+ "<table>");
for ( int i = 0; i < 3; i++) {
cookie = new Cookie("webcookiename"+i,"webcookievalue");
pw.println("<tr><td>webcookiename"+ i + "</td><td>webcookievalue" + i +"<td></tr>");
response.addCookie(cookie);
}
for ( int i = 0; i < 3; i++) {
cookie = new Cookie("localcookiename"+i,"localcookievalue");
pw.println("<tr><td>webcookiename"+ i + "</td><td>webcookievalue" + i +"<td></tr>");
cookie.setMaxAge(3600);
response.addCookie(cookie);
}
pw.println("<a href=http://localhost:8080/goon/testCookie>testCookie</a></table></body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
2.查看cookie
package com.servlet.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class testCookie
*/
@WebServlet(name="/testCookie", urlPatterns= {"/testCookie"})
public class testCookie extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public testCookie() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.println("<html><head><title>set cookie list</title></head>"
+ "<table>");
Cookie[] cookieArray = request.getCookies();
for (Cookie c:cookieArray) {
pw.println("<tr><td>" + c.getName() + "</td><td>" + c.getValue() + "</td><tr>");
}
pw.println("</table></body></html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
3.在IE上测试:
1)访问setCookie
结果:
webcookiename0 | webcookievalue0 | |
webcookiename1 | webcookievalue1 | |
webcookiename2 | webcookievalue2 | |
webcookiename0 | webcookievalue0 | |
webcookiename1 | webcookievalue1 | |
webcookiename2 | webcookievalue2 |
结果:
localcookiename0 | localcookievalue |
localcookiename1 | localcookievalue |
localcookiename2 | localcookievalue |
webcookiename0 | webcookievalue |
webcookiename1 | webcookievalue |
webcookiename2 | webcookievalue |
结果:
webcookiename0 | webcookievalue |
webcookiename1 | webcookievalue |
webcookiename2 | webcookievalue |
4.)访问setCookie
结果:
webcookiename0 | webcookievalue0 | |
webcookiename1 | webcookievalue1 | |
webcookiename2 | webcookievalue2 | |
webcookiename0 | webcookievalue0 | |
webcookiename1 | webcookievalue1 | |
webcookiename2 | webcookievalue2 |
5.开启新的IE浏览器进程 访问testCookie
localcookiename0 | localcookievalue |
localcookiename1 | localcookievalue |
localcookiename2 | localcookievalue |
结论:setMaxAge属性将把cookie写入至本地,有效期为设置时长。未设置该属性时,有效期为本浏览器访问该地址至退出。