创建servlet程序知识点详解---servlet-day07
情景1:
京東在買東西的時候,只有結帳的時候才會要求必須登錄賬戶
#1.狀態管理
##(1)什么是狀態管理?
將瀏覽器與web服務器之間多次交互當做一個整體來處理,并且將多次交互所涉及的數據(即狀態)保存下來
##(2)如何進行狀態管理
方式一:將狀態保存在客戶端(瀏覽器端)
cookie技術
方式二:將狀態保存在服務器端
session技術
###(3)cookie技術
#### 1)什么是cookie?
服務器臨時存放在瀏覽器端的少量數據
### 2)工作原理
瀏覽器訪問服務器時,服務器會將少量數據以set_cookie消息頭的形式發送給瀏覽器,瀏覽器將這些數據保存下來;
當瀏覽器再次訪問服務器,會將之前保存的這些數據以cookie消息頭的形式發送給服務器
### 3)添加cookie
cookie c = new cookie(string name,string value);
注: name:cookie的名稱
value:cookie的值
response.addcookie(c);
### 4)讀取cookie
Cookie[ ] request.getCookie();
注:
a.一個Cookie對象封裝了一個Cookie的信息(包括了cookie的名稱和值)
string cookie.getName()
string cookie.getValue()
b.有可能返回null
### 5)編碼問題
a.什么是編碼問題
cookie只能保存合法的ascii字符,中文需要轉換成合法的ascii字符才可以
b.如何處理?
String URLEncoder.decode(String str,String charset);
String URLDecoder.decode(String str,String charset);
c.建議:
在添加cookie時,對所有的值都統一使用上述方法來進行處理
###6)生存時間
默認情況下,瀏覽器會將cookie保存在內存里,
只要瀏覽器不關,則cookie會一直存在,可以調用cookie.setMaxAge方法來設置cookie的生存時間
生存時間:
setMaxAge(int seconds)
注: a.單位是秒
b.值可以
>0 瀏覽器會將cookie保存在硬盤上,當超過指定的時間,瀏覽器會將cookie刪除
<0 default 缺省值,即瀏覽器會將cookie保存在內存里面
=0 刪除cookie
比如,要刪除名稱為city的cookie Cookie c =new Cookie("city","");
c.setMaxAge(0)
### 7)cookie的路徑問題
a.什么是cookie的路徑問題
瀏覽器在向服務器上的某個地址發送請求時,會比較該地址是否符合cookie的路徑的要求,只有符合條件的cookie才會被發送
b.cookie的默認路徑
cookie的默認路徑等于添加該cookie的web組件的路徑
c.匹配規則
比如,cookie的路徑是"/day07/abc"
如果訪問的是/day07/findCookie1.jsp no
/day07/abc/findCookie2.jsp yes
/day07/abc/sub/findCookie3.jsp yes
即: 請求路徑要么等于cookie的路徑,要么cookie路徑的子路徑,則該cookies會被發送
d.修改cookie的路徑
cookie.setPath( )
### 8)cookie的限制
a.可以被用戶禁止
b.不安全 注: 不要將敏感數據以cookie的方式來保存
c.只能保存少量數據 注:大約是4k
d.cookie的數量也有限制 注:大約幾百個
e.cookie只能保存字符串
總結
以上是生活随笔為你收集整理的创建servlet程序知识点详解---servlet-day07的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Sql Server维护计划事务日志找不
- 下一篇: java容器基础
