Cookie的創建:
Cookie cookie = New Cookie(Cookie name,Cookie vlaue);
Response.addCookie(cookie)
注意:Cookie中不能存中文,默認Cookie是會話級別的
設置Cookie在客戶端持久化的時間:cookie.setMaxAge(int seconds)
設置同名cookie,時間設置為0,代表刪除該cookie,將path設置成與要刪除的cookie一致
設置cookie的攜帶路徑:cookie.setPath(String path) -------//客戶端地址要加包名
注意:如果不設置攜帶路徑,那么該cookie信息會在訪問產生該cookie的 web資源所在的路徑都攜帶cookie信息
服務器獲取客戶端攜帶的cookie:
獲得客戶端攜帶的cookie:
request.getCookies() //返回值是數組
通過cookie名稱獲得想要的cookie:
1)通過request獲得所有的Cookie:
Cookie[] cookies = request.getCookies();
2)遍歷Cookie數組,通過Cookie的名稱獲得我們想要的Cookie
for(Cookie cookie : cookies){
if(cookie.getName().equal(cookieName)){
String cookieValue = cookie.getValue();
}
}
記錄用戶的上次訪問時間
package com.zys.lassAccessTime;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
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 LastAccessTimeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//獲得當前時間
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String currentTime = format.format(date);
//1、創建Cookie記錄當前的最新的訪問時間
Cookie cookie = new Cookie("lastAccessTime",currentTime);
cookie.setMaxAge(60*10*500);
response.addCookie(cookie);
//2、獲得客戶端攜帶cookie ---- lastAccessTime
String lastAccessTime = null;
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(Cookie coo : cookies){
if("lastAccessTime".equals(coo.getName())){
lastAccessTime = coo.getValue();
}
}
}
response.setContentType("text/html;charset=UTF-8");
if(lastAccessTime==null){
response.getWriter().write("您是第一次訪問");
}else{
response.getWriter().write("您上次登錄的時間為:"+lastAccessTime);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}