JSP-JSP狀態管理
阿新 • • 發佈:2017-07-16
bject 查找 應用 這就是 .cn 沒有 url encoder 服務
http協議的無狀態性 1、無狀態是指,當瀏覽器發送請求給服務器的時候,服務器會響應。但當同一個瀏覽器再次發送請求時,服務器不會知道是剛才那個瀏覽器。 2、簡單說,服務器【不會保存用戶狀態】,不會記得客戶端是否訪問過,所以這就是無狀態協議。
jsp狀態管理 保存用戶狀態的兩大機制 1、Session 2、Cookie 什麽是cookie? cookie:是web服務器保存在客戶端的一系列文本信息。 典型應用之一:判斷註冊用戶是否已經登錄網站。 典型二:保存用戶瀏覽記錄。 cookie的作用: 1、對特定對象的追蹤。 2、保存用戶網頁瀏覽記錄與習慣。 3、簡化登錄 安全風險:容易泄露用戶信息。
jsp中創建與使用Cookie: 1、創建Cookie對象: Cookie cookie=new Cookie(String key,Object value); 2、寫入Cookie: response.addCookie(cookie); 3、讀取Cookie: Cookie[] cookies=request.getCookies();
常用方法: 1. setMaxAge( expiry ) 設置cookie的有效期,以秒為單位 getMaxAge() 獲取cookie的有效時間,以秒為單位 2. setValue(String value) 在cookie創建後,對cookie進行賦值 getValue() 獲取cookie的值 3. getName() 獲取cookie的名稱 4. setValue()和getValue()涉及的都是字符串,對應前面提到的 Cookie是web服務器保存在客戶端的文本文件。
解決Cookie無法保存中文字符串的問題 1.java.net包下的URLEncoder類來進行編碼 public static encode(String string, String enco); 2.URLDecoder類進行解碼 URLDecoder.decode(String string, String enco); 3.如果在登錄界面把username和password的值設為了null,那麽在登陸框就會出現null 最好是設為"" 4.查找Cookie時,是按照k值進行查找的 ----------------------------------- 使用URLEncoder(在java.net包下)解決無法在Cookie當中保存中文字符串問題: String username = URLEncoder.encode(request.getParameter("username"),"utf-8");//編碼,防止中文亂碼 String password = URLEncoder.encode(request.getParameter("password"),"utf-8");//編碼,防止中文亂碼
session與cookie對比 1.保存位置:session在服務器端內存,cookie在客戶端文本 2.保存對象:session保存Object類(保存對象大小沒有限制),cookie保存String類型(保存對象大小有限制) 3.生存權:session會話結束即銷毀,cookie可以長期保存在客戶端 4.重要性:session安全性更高,保存重要信息,cookie保存不重要的信息
JSP-JSP狀態管理