3、JSP中的Cookie 用於存儲 web 頁面的用戶信息。


cookie 在平時生活中的運用

存儲用戶在網頁上的登陸信息,包括賬號和密碼。

有的網站,登陸的時候,會出現一個選項,問你是否要一周內或者一個月內保持登陸狀態。
如果你選了,那么一周之內,都不需要再輸入賬號密碼。
這個功能,就是靠cookie來實現的

cookie原理示意圖

什么是cookie

Cookie是一種瀏覽器和服務器交互數據的方式。
Cookie是由服務器端創建,但是不會保存在服務器
創建好之后,發送給瀏覽器。瀏覽器保存在用戶本地
下一次訪問網站的時候,就會把該Cookie發送給服務器。

服務器端創建cookie

在web目錄下創建一個文件 setCookie.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
 
<%
    Cookie c = new Cookie("name", "Gareen");     <%--創建了一個cookie,名字是"name" 值是"Gareen" -- %>
    c.setMaxAge(60 * 24 * 60);   <%-- 表示這個cookie可以保留一天,如果是0,表示瀏覽器一關閉就銷毀 -- %>
    c.setPath("/");       <%-- Path表示訪問服務器的所有應用都會提交這個cookie到服務端-- %><%--如果其值是 /a, 那么就表示僅僅訪問 /a 路徑的時候才會提交 cookie -- %>

response.addCookie(c);  <%--通過response把這個cookie保存在瀏覽器端 -- %>
%>
 
<a href="getCookie.jsp">跳轉到獲取cookie的頁面</a>

 

訪問地址:http://127.0.0.1/setCookie.jsp

通過HTTP調試工具也可以在Cookies這一欄看到

 

把該Cookie發送給服務器

在web目錄下創建文件getCookie.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
 
<%
    Cookie[] cookies = request.getCookies();<%-- 表示獲取所有瀏覽器傳遞過來的cookie-- %>
    if (null != cookies)  <%--如果瀏覽器端沒有任何cookie,得到的Cookie數組是null -- %>
           for (int d = 0; d <= cookies.length - 1; d++) {<%--遍歷所有的cookie-- %>
                  out.print(cookies[d].getName() + ":" + cookies[d].getValue() + "<br>"); 
}

%>

通過HTTP調試工具也可以看到瀏覽器在請求信息里提交了這個Cookie。

注; JSESSIONID 這個不是我們自己設置的cookie,這是tomcat設置的cookie

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM