需求:html
1:用戶訪問服務器(Servlet),判斷用戶是不是第一次訪問,若是是第一次訪問,則在頁面響應內容爲:「您好,歡迎您首次訪問」;
2:用戶訪問服務器(Servlet),判斷用戶是不是第一次訪問,若是不是第一次訪問,則在頁面響應內容爲:「歡迎回來,您上次訪問的時間爲:xxxx年xx月xx日 , xx時xx分xx秒」;java
需求分析: 數組
該需求能夠使用Cookie來完成,服務器(Servlet)先獲取請求體頭中的Cookie信息,若是該信息中不存在咱們須要的信息,則該用戶爲首次訪問.咱們須要將當前時間存入Cookie,而後將Cookie信息回寫到客戶端(瀏覽器端),進行存儲;若是該信息中存在咱們須要的信息,則該用戶不是首次訪問.咱們須要將當前時間存入Cookie,而後將Cookie信息回寫到客戶端(瀏覽器端),進行存儲,而且在頁面響應"歡迎回來,您上次訪問的時間爲:xxxx年xx月xx日 , xx時xx分xx秒"內容;瀏覽器
2. 沒有指定Cookie:表明是首次訪問服務器
代碼實現:cookie
package servlet; 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; import java.io.IOException; import java.net.URLDecoder; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; @WebServlet("/demo01") public class Demo01 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //設置響應體格式參數 response.setContentType("text/html;charset=utf-8"); //獲取全部的Cookie Cookie[] cookies = request.getCookies(); //定義一個標記 用來表示是否存在指定name的Cookie,存在指定cookie,flag爲false;不存在爲true boolean flag = true; //若是有Cookie if (cookies != null && cookies.length != 0){ //遍歷cookie數組 for (Cookie cookie : cookies) { //判斷cookie數組中是否存在指定name的Cookie if ("LastTime".equals(cookie.getName())){//若是有指定name的cookie,說明用戶非首次訪問 //更改標記flag的狀態值 flag = false; //獲取指定name cookie對應的值 String value = cookie.getValue(); //對獲取到的值進行解碼 String timeDecode = URLDecoder.decode(value, "utf-8"); //響應頁面 response.getWriter().write("<h1>歡迎回來,您上次訪問的時間是:" + timeDecode + "</h1>"); //獲取當前時間 Date date = new Date(); //獲取格式化日期對象 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 , HH時mm分ss秒"); //格式化當前時間 String time = simpleDateFormat.format(date); //對時間字符串進行編碼 String timeNow = URLEncoder.encode(time, "utf-8"); //設置Cookie存活時間 cookie.setMaxAge(45); //更改cookie的值 cookie.setValue(timeNow); //回寫Cookie response.addCookie(cookie); //結束循環 break; } } } //沒有Cookie或者Cookie中沒有指定name的Cookie,說明用戶時首次訪問 if (cookies == null || cookies.length == 0 || flag){ //獲取當前時間 Date date = new Date(); //獲取格式化日期對象 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 , HH時mm分ss秒"); //格式化當前時間 String time = simpleDateFormat.format(date); //對時間字符串進行編碼 String timeEncode = URLEncoder.encode(time, "utf-8"); //將編碼後的時間字符串存入Cookie Cookie cookie = new Cookie("LastTime", timeEncode); //設置Cookie存活時間 cookie.setMaxAge(45); //回寫Cookie response.addCookie(cookie); //響應頁面 response.getWriter().write("<h1>您好,歡迎您首次訪問</h1>"); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
實現效果:this