创建servlet程序知识点详解---servlet-day07
情景1:
京東在買東西的時候,只有結(jié)帳的時候才會要求必須登錄賬戶
#1.狀態(tài)管理
##(1)什么是狀態(tài)管理?
將瀏覽器與web服務(wù)器之間多次交互當(dāng)做一個整體來處理,并且將多次交互所涉及的數(shù)據(jù)(即狀態(tài))保存下來
##(2)如何進行狀態(tài)管理
方式一:將狀態(tài)保存在客戶端(瀏覽器端)
cookie技術(shù)
方式二:將狀態(tài)保存在服務(wù)器端
session技術(shù)
###(3)cookie技術(shù)
#### 1)什么是cookie?
服務(wù)器臨時存放在瀏覽器端的少量數(shù)據(jù)
### 2)工作原理
瀏覽器訪問服務(wù)器時,服務(wù)器會將少量數(shù)據(jù)以set_cookie消息頭的形式發(fā)送給瀏覽器,瀏覽器將這些數(shù)據(jù)保存下來;
當(dāng)瀏覽器再次訪問服務(wù)器,會將之前保存的這些數(shù)據(jù)以cookie消息頭的形式發(fā)送給服務(wù)器
### 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字符,中文需要轉(zhuǎn)換成合法的ascii字符才可以
b.如何處理?
String URLEncoder.decode(String str,String charset);
String URLDecoder.decode(String str,String charset);
c.建議:
在添加cookie時,對所有的值都統(tǒng)一使用上述方法來進行處理
###6)生存時間
默認情況下,瀏覽器會將cookie保存在內(nèi)存里,
只要瀏覽器不關(guān),則cookie會一直存在,可以調(diào)用cookie.setMaxAge方法來設(shè)置cookie的生存時間
生存時間:
setMaxAge(int seconds)
注: a.單位是秒
b.值可以
>0 瀏覽器會將cookie保存在硬盤上,當(dāng)超過指定的時間,瀏覽器會將cookie刪除
<0 default 缺省值,即瀏覽器會將cookie保存在內(nèi)存里面
=0 刪除cookie
比如,要刪除名稱為city的cookie Cookie c =new Cookie("city","");
c.setMaxAge(0)
### 7)cookie的路徑問題
a.什么是cookie的路徑問題
瀏覽器在向服務(wù)器上的某個地址發(fā)送請求時,會比較該地址是否符合cookie的路徑的要求,只有符合條件的cookie才會被發(fā)送
b.cookie的默認路徑
cookie的默認路徑等于添加該cookie的web組件的路徑
c.匹配規(guī)則
比如,cookie的路徑是"/day07/abc"
如果訪問的是/day07/findCookie1.jsp no
/day07/abc/findCookie2.jsp yes
/day07/abc/sub/findCookie3.jsp yes
即: 請求路徑要么等于cookie的路徑,要么cookie路徑的子路徑,則該cookies會被發(fā)送
d.修改cookie的路徑
cookie.setPath( )
### 8)cookie的限制
a.可以被用戶禁止
b.不安全 注: 不要將敏感數(shù)據(jù)以cookie的方式來保存
c.只能保存少量數(shù)據(jù) 注:大約是4k
d.cookie的數(shù)量也有限制 注:大約幾百個
e.cookie只能保存字符串
總結(jié)
以上是生活随笔為你收集整理的创建servlet程序知识点详解---servlet-day07的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java容器基础
- 下一篇: 多图:一文带你入门掌握JVM所有知识点