1. 程式人生 > >JSP-JSP狀態管理

JSP-JSP狀態管理

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狀態管理