感謝顏群老師的指點,博主特別喜歡他,感覺乾貨滿滿,分享給大家提供的方法:
void addcookie( cookie cookie ); 服務端向客戶端增加cookie物件
void sendredirect(string location ) throws ioexception; :頁面跳轉的一種方式(重定向)
void setcontettype(string type):設定服務端響應的編碼(設定服務端的contenttype型別)
示例:登陸ogin.jsp -> check.jsp ->success.jsp
請求**
重定向位址列是否改變
不變(check.jsp)
改變(success.jsp)
是否保留第一次
保留不保留
請求的次數12
跳**生的位置
服務端客戶端發出的第二次跳轉
**、重定向:
**:
張三(客戶端) -> 【 服務視窗 a (服務端 ) -> 服務視窗b 】重定向:
張三(客戶端) -> 服務視窗 a (服務端 ) ->去找b張三(客戶端) -> 服務視窗 b (服務端 ) ->結束
string getname():獲取name
string getvalue():獲取value
void setmaxage(int expiry);最大有效期 (秒)
服務端準備cookie:a.服務端增加cookie :response物件;客戶端獲取物件:request物件response.addcookie(cookie cookie)
頁面跳轉**發,重定向)
客戶端獲取cookie: request.getcookies();
b.不能直接獲取某乙個單獨物件,只能一次性將 全部的cookie拿到
通過f12可以發現 除了自己設定的cookie物件外,還有乙個name為 jsessionid的cookie
建議 cookie只儲存 英文數字,否則需要進行編碼、解碼
使用cookie實現 記住使用者名稱 功能session :會話客戶端第一次請求服務端時,(jsessionid-sessionid)服務端會產生乙個session物件(用於儲存該客戶的資訊);a.瀏覽**:開始-關閉
b.購物: 瀏覽、付款、退出
c.電子郵件:瀏覽、寫郵件、退出
開始-結束
每個session物件 都會有乙個唯一的 sessionid( 用於區分其他session);
服務端由會 產生乙個cookie,並且 該cookie的name=jsessionid ,value=服務端sessionid的值;
服務端會在 響應客戶端的同時 將該cookie傳送給客戶端,至此 客戶端就有了 乙個cookie(jsessionid); 客戶端的cookie就可以和服務端的session一一對應(jsessionid - sessionid)
客戶端第二/n次請求服務端時:服務端會先用客戶端cookie種的jsessionid 去服務端的session中匹配sessionid,如果匹配成功(cookie jsessionid和sesion sessionid),說明此使用者 不是第一次訪問,無需登入;session:session儲存在服務端
session是在 同乙個使用者(客戶)請求時 共享
實現機制:第一次客戶請求時 產生乙個sessionid 並複製給 cookie的jsessionid 然後發給客戶端。最終 通過session的sessionid-cookie的jsessionid
session方法:
string getid() :獲取sessionid
boolean isnew() :判斷是否是 新使用者(第一次訪問)
void invalidate():使session失效 (退出登入、登出)
void setattribute()
object getattribute();
void setmaxinactiveinterval(秒) :設定最大有效 非活動時間
int getmaxinactiveinterval():獲取最大有效 非活動時間
示例:
登入客戶端在第一次請求服務端時,如果服務端發現 此請求沒有 jsessionid,則會建立乙個 name=jsesionid的cookie 並返回給客戶端
cookie:
不是內對物件,要使用必須new
但是,服務端會 自動生成乙個(服務端自動new乙個cookie) name=jsesionid的cookie 並返回給客戶端
cookie和session的區別:
session
cookie
儲存的位置
服務端客戶端
安全性較安全
較不安全
儲存的內容
object
string
string getcontextpath() 虛擬路徑
string getrealpath(string name): 絕對路徑(虛擬路徑 相對的絕對路徑)
jsp9大內建物件
pagecontext jsp頁面容器
request 請求物件
session 會話物件
response 響應物件
config 配置物件(伺服器配置資訊)
out 輸出物件
page 當前jsp頁面物件(相當於j**a中的this)
exception 異常物件
以上4個物件共有的方法:
object getattribute(string name):根據屬性名,或者屬性值
void setattribute(string name,object obj) :設定屬性值(新增,修改)
setattribute(「a」,「b」) ;//如果a物件之前不存在,則新建乙個a物件 ;如果a之前已經存在,則將a的值改為b
void removeattribute(string name):根據屬性名,刪除物件
->多個專案共享、重啟後仍然有效 :jndi
以上的4個範圍物件,通過 setattribute()複製,通過getattribute()取值;
以上範圍物件,盡量使用最小的範圍。因為 物件的範圍越大,造成的效能損耗越大。
1 內建物件
一 math物件 1 絕對值 math.abs 2 三個取整方法 math.floor 地板 向下取整 往小了取值 math.ceil 天花板 向上取整 往大了取值 math.round 四捨五入 其他數字都是四捨五入,但是 5 特殊,它往大了取值 例 math.round 1.5 1 math.r...
Python學習筆記1 內建物件介紹
1.數字 1234,3.14,3 4j ps 不用去宣告變數名及其型別。2.字串 asdsa i m meliodas.she said hello to you.3.列表 1,2,3 a b c 1,2,3,4 1,a 3,t ps python中沒有二維陣列,若需要簡單地用到二維陣列,除了物件導...
Jsp中內建物件(1)
jsp的內建物件是指在web容器中建立的一組物件,既不需要使用new關鍵字建立,就可以使用的一組物件。例如 int s for int i s 我們可以看到上例中的out就是乙個內建物件,不需要new,即可直接使用。首先來看最常見的一組物件,request物件和response物件 request物...