servlet中三大容器詳解

2021-07-29 12:24:01 字數 3242 閱讀 2285

request 可以從請求行中獲取資料 getparameter()

也可以從容器中獲取資料

在jsp頁面獲取: $

例如:商店: 伺服器

你 : 客戶端

買多次物品: 一次會話 (session)

會員卡:

型別 物件名 在jsp頁面獲取相應容器的值

httpservletrequest   request    $

儲存資料: key必須是string,value是object型別 request.setattribute("key",value);

取資料: 通過key拿到value值,需要的話可以強轉 object o = request.getattribute("key");

request.setattribute("name","tom");

string name = request.getparameter("name");

object obj = reqeust.getattribute("name");

作用範圍:request的存/取資料只能在一次請求之內起作用.比如伺服器內部跳轉的時候(因為內部跳轉客戶端只發一次請求).

注意:客戶端重定向是不行的,因為客戶端重定向會發出多個請求.

總結:1, reqeust 請求行/請求體/容器 獲取值

get/ post/

把資料放到reqeust容器中:request.setattribute("key",object);

在後台** 取:

object o = request.getattribute("key");

在jsp頁面:取:

el表示式:$

login.jsp

–> form url->loginservlet

req.getparameter(「key」)–> 登入成功

loginservelt-跳轉->success.jsp –> 顯示 使用者名稱

把資料從後台傳到前台頁面 就需要用到容器

request容器 :

seta…(「key」,value)

頁面:獲取:

$

eg:

存:request.setattribute("name","tom");

容器 :map

取:string name =(string)request.getattribute("name");

第一次執行getsession() 伺服器就會給瀏覽器乙個標識

在接下來的所有請求都是屬於一次會話(session)

session容器 一般用來做 有隔斷的資料傳輸

獲取session: 通過 reqeust.getsession(); 當第一次執行這句**的時候

怎麼把資料放到session容器中: session.setattribute("key","value");

從session中獲取資料: object o = session.getattribute("key")

在頁面中獲取session中的值:

el表示式 : $

session有生命週期:

1,建立:第一次呼叫reqeust.getsession();

2,死亡:1,正常 時間到了死亡 正常乙個session時間是30分鐘

2,手動死亡 session.invalidate();session就銷毀(資料被清空)標識結束

3,手動設定session的生命時長。

web.xml配置

1

終結:

session建立:

當**執行getsession();

沒有jsessionid 然後伺服器給建立乙個jsessiondid 然後通過response寫回給瀏覽器

下次訪問的時候 就會攜帶cookie中的jsessiondid到伺服器端

瀏覽器每次傳送請求的時候就會攜帶cookie

儲存資料:

儲存資料: key必須是string,value是object型別 session.setattribute("key",value);

取資料: object o = session.getattribute("key");

作用範圍:在乙個會話之中起作用.乙個會話可以包括很多個request請求,所以放在session中的資料,可以被多個請求所共享.

當程式第一次呼叫到request.getsession()方法時說明客戶端明確的需要用到session此時建立出對應客戶端的session物件.

當session超過30分鐘(這個時間是可以在web.xml檔案中進行修改的)沒有人使用則認為session超時銷毀這個session.

程式中明確的呼叫session.invalidate()方法可以立即殺死session. 當伺服器被非正常關閉時,隨著虛擬機器的死亡而死亡.

*** session的鈍化與活化:就是說伺服器被很多的session訪問,記憶體不足,為了更好的執行,只好把一部分比較長時間沒有變動的session從記憶體中放到了硬碟(鈍化),等該session的使用者重新使用的時候,那麼該session就會自動的被呼叫到記憶體中,使用者在整個過程中發覺不出來session又被調動的影響(活化)

序列化: 物件--->字串---> 儲存到檔案

session序列化:session生命週期沒有結束,但是tomcat正常關閉

反序列化: 字串--->物件---> 放到伺服器中

關於session的實現原理之後講到cookie的時候會說到!

第二種:servletconfig config = getservletconfig();//這個servletconfig 就是init(...)

這page是之後我們在jsp中要學習的另乙個範圍,頁面範圍,只在乙個頁面中起作用。)

注意:getparameter(「key」)方法和getattribute(「key」)方法

getparameter是接收客戶端在請求中傳過來的資料 key-value

getattribute方法是從容器中取值,取到之前呼叫setattribute方法儲存到這個物件裡面的值.

掌握:

1,容器的作用範圍

2,怎麼獲得容器

3,怎麼使用容器傳值(獲取/傳到頁面)

JS中三大特殊資料

nan表示不是乙個數字 not a number nan是非法運算的結果,且每乙個nan的 都不一樣,它不等於任何值,即console.log nan nan 的結果為false 如何檢驗nan?js中給我們提供了乙個檢測方法 isnan 十分語義化的應該方法,只有console.log isnan...

PHP中三大設計模式

單例模式 工廠模式 註冊樹模式 class site 屬性 public sitename 本類靜態例項 protected static instance null 禁用掉構造器 private function construct sitename this sitename sitename ...

Servlet三大域物件解析

1.request request是表示乙個請求,只要發出乙個請求就會建立乙個request,它的作用域 僅在當前請求中有效。用處 常用於伺服器間同一請求不同頁面之間的引數傳遞,常應用於表單的控制項值傳遞。方法 request.setattribute request.getattribute re...