javaweb22/4/4
阿新 • • 發佈:2022-04-04
Cookie與Session
https://www.cnblogs.com/l199616j/p/11195667.html
會話(Session)跟蹤是Web程式中常用的技術,用來跟蹤使用者的整個會話。常用的會話跟蹤技術是Cookie與Session。
Cookie通過在客戶端記錄資訊確定使用者身份,Session通過在伺服器端記錄資訊確定使用者身份。
常見場景:網站登陸之後,第二次就不用登入了
用Cookie儲存使用者上一次訪問的時間
1.cookie的Servlet
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解決請求響應中的中文亂碼問題 resp.setContentType("text/html"); resp.setCharacterEncoding("utf-8"); req.setCharacterEncoding("utf-8"); PrintWriter out = resp.getWriter(); //Cookie是在客戶端儲存,所以req.getCookies Cookie[] cookies = req.getCookies();//返回陣列,說明Cookie可能有多個 if (cookies!=null){ out.write("您上次訪問的時間是:"); for (int i = 0; i <cookies.length ; i++) { Cookie cookie = cookies[i]; if (cookie.getName().equals("wenping")){ //獲取cookie中的值 long l = Long.parseLong(cookie.getValue()); Date date = new Date(l); out.write(date.toLocaleString()); } } }else{ out.write("這是您第一次訪問本網站"); } //伺服器端給客戶端響應一個Cookie Cookie cookie = new Cookie("wenping",System.currentTimeMillis()+""); resp.addCookie(cookie); cookie.setMaxAge(24*60*60);//設定cookie的有效期 }
2.註冊Servlet
3.結果
Session
Session是另一種記錄客戶狀態的機制,不同的是Cookie儲存在客戶端瀏覽器中,而Session儲存在伺服器上。客戶端瀏覽器訪問伺服器的時候,
伺服器把客戶端資訊以某種形式記錄在伺服器上。這就是Session。伺服器會給每個使用者(瀏覽器)建立一個Session物件,例如,使用者登入後可訪問整個網站