浅析cookie以及一些小案例
生活随笔
收集整理的這篇文章主要介紹了
浅析cookie以及一些小案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
會話
即:用戶打開瀏覽器,瀏覽頁面,直到關閉瀏覽器的過程稱為一次會話。
為什么要學習會話技術?
http協議是一個無狀態協議,服務器端無法記錄客戶端瀏覽器身份信息。
因此,需要使用會話跟蹤技術解決。
會話跟蹤技術包括: Cookie(客戶端技術)
Session(服務器端技術)
?
1.Cookie
-
構造方法
Cookie c = new Cookie("","");
?
?
cookie案例:
1.利用Cookie記錄客戶端是否是第一次訪問
package com.henu.demo.servlet; ? import java.io.IOException; import java.io.PrintWriter; ? import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /*** @author George* @description : 利用Cookie記錄客戶端是否是第一次訪問*/ public class FirstCookieServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");PrintWriter pWriter = response.getWriter();boolean flag = false;//request.getCookies():得到瀏覽器端帶過來的cookie//第一次訪問為nullCookie[] cs = request.getCookies();if (cs!=null) {for (Cookie cookie : cs) {//getName() //Returns the name of the cookie.if ("visited".equals(cookie.getName())) {flag = true;break;}}}String str = "第一次訪問";if (flag) {str = "歡迎回來!";pWriter.write(str);}else {//第一次訪問,輸出strpWriter.write(str);//設置cookieCookie cookie = new Cookie("visited", "true");//setMaxAge() : Sets the maximum age of the cookie in seconds.cookie.setMaxAge(200); // cookie.setPath("/"); //設置Cookie的有效路徑//將cookie對象添加到response對象中,//這樣服務器在輸出response對象中的內容時就會把cookie也輸出到客戶端瀏覽器response.addCookie(cookie);}pWriter.flush();pWriter.close();} ?protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} ? } ?2.利用Cookie記錄客戶端上次訪問時間
思路:
1.接收客戶端帶過來Cookie的信息
2.從數組中查找指定名稱Cookie,如果找不到(第一次訪問),輸出一個歡迎
如果找到了(不是第一次),取出上次的訪問時間,顯示到頁面
3.記錄系統當前時間
4.利用Cookie回寫當前時間
package com.henu.demo.servlet; ? import java.io.IOException; import java.io.PrintWriter; 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; ? import com.henu.demo.util.DateUtil; ? public class SecondCookieServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");response.setCharacterEncoding("UTF-8");PrintWriter pWriter = response.getWriter();boolean flag = false;Cookie[] cs = request.getCookies();if (cs != null) {for (Cookie cookie : cs) {if ("date".equals(cookie.getName())) {flag = true;break;}}}Date date = new Date();String str = DateUtil.dateToString(date);Cookie cookie = new Cookie("date", str);if (flag) {pWriter.write("歡迎回來,上次登錄的時間是:"+ cookie.getValue());}else {pWriter.write("登錄成功");cookie.setMaxAge(2000);//2000秒response.addCookie(cookie);}} }3.利用Cookie記錄客戶端訪問次數
package com.henu.demo.servlet; ? import java.io.IOException; import java.io.PrintWriter; ? import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /*** @author George* @description 利用Cookie記錄客戶端訪問次數*/ public class ThirdCookieServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();Cookie[] cs = request.getCookies();Cookie c = findCookieByName("count", cs);int num = 0;if(c==null){num = 1;}else{num = Integer.parseInt(c.getValue());}out.print("<h1>第"+num+"次訪問</h1>");Cookie cookie ?= new Cookie("count",(++num)+"");cookie.setMaxAge(10000);response.addCookie(cookie);out.flush();out.close();}public static Cookie findCookieByName(String name,Cookie[] cs){if(cs!=null){for(Cookie c:cs){if(name.equals(c.getName())){return c;}}}return null;} }總結
以上是生活随笔為你收集整理的浅析cookie以及一些小案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于servletjspmysql的表格
- 下一篇: 使用cookie登录时记录登录名