日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2019-04-12 cookie基础

發(fā)布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2019-04-12 cookie基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

cookie

? ? ?作為web服務器,必須能夠采用一種機制來唯一標識一個用戶,同時記錄該用戶的狀態(tài)

?

會話cookie和持久化cookie

cookie.setMaxAge(30) 設置cookie存在的時間

如果不設置過期時間,則表示這個cookie生命周期為瀏覽器會話期間,只要關閉瀏覽器窗口,cookie就消失了。這種生命期為瀏覽器會話期的cookie稱為會話cookie。會話cookie一般不保存在硬盤上而是保存在內(nèi)存里。

若果過了設置的時間,瀏覽器就會把cookie保存到硬盤上,關閉后再次打開瀏覽器,這些cookie依然有效直到超過設定的過期時間。

存儲在硬盤上的cookie可以在不不同的瀏覽器進程間共享,比如兩個IE窗口,而對于保存在內(nèi)存的cookie,不同的瀏覽器有不同的處理方式。

?

利用cookie 自動登陸

login.jsp

1 <form action="index.jsp" method="post"> 2 name:<input type="text" name="name"/> 3 <input type="submit" value="Submit"> 4 </form>

?

index.jsp

1 <% 2 //若可以獲取到請求的參數(shù)name,則打印出歡迎的信息,把登陸信息存儲到Cookie中,并設置Cookie的最大時效30s 3 String name = request.getParameter("name"); 4 if (name != null && !name.trim().equals("")) { 5 6 Cookie cookie = new Cookie("name", name); 7 cookie.setMaxAge(30); 8 response.addCookie(cookie); 9 } else { 10 //從cookie中讀取用戶信息,若存在則打印歡迎信息 11 Cookie[] cookies = request.getCookies(); 12 if (cookies != null && cookies.length > 0) { 13 for (Cookie cookie : cookies) { 14 String cookieName = cookie.getName(); 15 if ("name".equals(cookieName)) { 16 String val = cookie.getValue(); 17 name = val; 18 } 19 } 20 21 } 22 23 } 24 25 if (name != null && !name.trim().equals("")) { 26 out.print("hello: " + name); 27 } else { 28 //若既沒有請求參數(shù),也沒有Cookie,則重定向到login.jsp 29 response.sendRedirect("login.jsp"); 30 } 31 %>

?

利用cookie顯示最近瀏覽的商品

books.jsp

1 <!-- 2 利用 Cookie 實現(xiàn) "您瀏覽過的圖書有: x, y, z", 只顯示最近瀏覽的 3 本圖書的信息 3 且支持 Cookie 的持久化. 其余的 Cookie 被刪除: 調(diào)用其 setMaxAge() 方法, 傳入 4 0 即可。 5 --> 6 7 8 <h4>Books Page</h4> 9 10 <a href="book.jsp?book=JavaWeb">Java Web</a><br><br> 11 <a href="book.jsp?book=Java">Java</a><br><br> 12 <a href="book.jsp?book=Oracle">Oracle</a><br><br> 13 <a href="book.jsp?book=Ajax">Ajax</a><br><br> 14 <a href="book.jsp?book=JavaScript">JavaScript</a><br><br> 15 <a href="book.jsp?book=Android">Android</a><br><br> 16 <a href="book.jsp?book=Jbpm">Jbpm</a><br><br> 17 <a href="book.jsp?book=Struts">Struts</a><br><br> 18 <a href="book.jsp?book=Hibernate">Hibernate</a><br><br> 19 <a href="book.jsp?book=Spring">Spring</a><br><br> 20 21 <br><br> 22 23 <% 24 StringBuilder books = new StringBuilder(""); 25 26 Cookie [] cookies = request.getCookies(); 27 28 if(cookies != null && cookies.length > 0){ 29 30 31 for(Cookie cookie: cookies){ 32 String cookieName = cookie.getName(); 33 String cookieVal = cookie.getValue(); 34 35 if(cookieName.startsWith("book_")){ 36 books.append(cookieVal + "&nbsp;&nbsp;"); 37 } 38 } 39 40 } 41 42 if(!books.toString().equals("")){ 43 out.print("您瀏覽過的商品有: " + books.toString()); 44 } 45 46 %>

?

book.jsp

1 <h4>Book Detail Page</h4> 2 3 Book: <%= request.getParameter("book") %> 4 5 <br><br> 6 7 <a href="books.jsp">Return</a> 8 9 <% 10 String book = request.getParameter("book"); 11 Cookie tempCookie = null; 12 13 //只顯示最近瀏覽過的 3 件商品. 14 15 //1. 獲取所有滿足條件的 Cookie 16 List<Cookie> books = new ArrayList<Cookie>(); 17 18 Cookie [] cookies = request.getCookies(); 19 20 if(cookies != null && cookies.length > 0){ 21 22 23 for(Cookie cookie: cookies){ 24 String cookieName = cookie.getName(); 25 26 if(cookieName.startsWith("book_")){ 27 books.add(cookie); 28 29 String cookieVal = cookie.getValue(); 30 if(cookieVal.equals(book)){ 31 tempCookie = cookie; 32 } 33 } 34 } 35 36 } 37 38 if(books.size() == 5){ 39 if(tempCookie == null){ 40 tempCookie = books.get(0); 41 } 42 43 tempCookie.setMaxAge(0); 44 response.addCookie(tempCookie); 45 } 46 47 //2. 在數(shù)組 length == 3 的情況下, 把最早的那個(即數(shù)組的第 1 個元素-下標是 0 的那個元素)刪除 48 Cookie cookie = new Cookie("book_" + book, book); 49 response.addCookie(cookie); 50 %>

?

設置cookie的作用路徑

cookie的作用范圍:可以作用當前目錄和當前目錄的子目錄。但不能作用于當前目錄的上一級目錄。

設置cookie的作用范圍

cookie.setPath(request.getContextPath());

request.getContextPath() 這個是動態(tài)的代表web項目地址 如/day_3

可以通過setPath方法來設置cookie的作用域,其中/代表站點的根目錄。

?

轉(zhuǎn)載于:https://www.cnblogs.com/Codinginging/p/10699217.html

總結(jié)

以上是生活随笔為你收集整理的2019-04-12 cookie基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。