servlet中提供了一些域物件,這些域物件可以用來資料儲存和資料共享,當然了這些域物件各有優點,比如作用範圍不同,按照範圍如下:
一次請求中的範圍,通常用於**中共享資料,請求關閉即銷毀
一次會話中資料共享,會話結束即關閉
代表整個web應用,伺服器關閉即關閉
域物件儲存讀取資料的方法如下:
儲存資料:setattribute("鍵",值)
獲得資料:getattribute("鍵")
移除資料:removeattribute("鍵")
範圍:一次請求中的範圍,通常用於**中共享資料
接下來我們寫三個servlet,在第乙個servlet1中建立域物件,然後列印資料到控制台,並**到servlet2中,servlet2也列印域物件對應的資料,servlet3和servlet2一樣開始訪問
response.
setcontenttype
("text/html;charset=utf-8");
//request物件就是乙個域物件
request.
setattribute
("name"
,"tom");
printwriter printwriter=response.
getwriter()
; printwriter.
println
(request.
getattribute
("name"))
; system.out.
println
(request.
getattribute
("name"))
; request.
getrequestdispatcher
("/reqtrea2").
forward
(request,response)
;//servlet2和servlet3
response.
setcontenttype
("text/html;charset=utf-8");
printwriter ps=response.
getwriter()
; ps.
println
(request.
getattribute
("name"))
; system.out.
println
(request.
getattribute
("name"))
;
訪問servlet1,再訪問servlet3,再訪問servlet2
tom
tomnull
null
一次會話中資料共享,會話結束即關閉,session是會話技術,儲存在伺服器中
//得到域物件
;
建立兩個servlet,servlet1中建立資料,列印資料,servlet2獲得資料列印資料
//servlet1得到域物件
;session.
setattribute
("age"
,"yellow");
system.out.
println
(session.
getattribute
("age"))
;//servlet12
;system.out.
println
(session.
getattribute
("age"))
;
分別訪問
yellow
yellow
在瀏覽器x中訪問servlet1,在瀏覽器y中訪問servlet2
yellow
null
代表整個web應用,伺服器關閉即關閉
//得到乙個域物件,兩種都行
servletcontext servletcontent=request.
getservletcontext()
;`在這裡插入**片`
servletcontext servletcontent=
this
.getservletcontext()
;
建立兩個servlet,執行session步驟
servletcontext servletcontent=request.
getservletcontext()
; servletcontent.
setattribute
("id"
,"110");
system.out.
println
(servletcontent.
getattribute
("id"))
;//得到乙個域物件
servletcontext servletcontent=
this
.getservletcontext()
; system.out.
println
(servletcontent.
getattribute
("id"))
;
分別訪問,然後更換瀏覽器繼續訪問
110
110110
110110
110
更換瀏覽器後仍然可以繼續訪問,只要伺服器不關閉資料就可以被訪問到 Servlet入門學習(三)
經過前兩篇的學習,我們知道了我們需要繼承乙個httpservlet類,並且需要重寫do post與 do get方法 在重寫過後會出現httpservletrequest request與 httpservletresponse response這麼一串串東西 它們就是我們今天主要學習的請求物件與響...
Servlet三大域物件解析
1.request request是表示乙個請求,只要發出乙個請求就會建立乙個request,它的作用域 僅在當前請求中有效。用處 常用於伺服器間同一請求不同頁面之間的引數傳遞,常應用於表單的控制項值傳遞。方法 request.setattribute request.getattribute re...
Servlet三大作用域
1.request request表示乙個請求,只要發出乙個請求就會建立乙個request,它的作用域僅在當前請求中有效,如果web元件之間需要共享同乙個請求中的資料,只能使用請求 用處 用於伺服器間同一請求不同頁面之間的引數傳遞 用於表單的控制項值傳遞 常用方法 2.session 伺服器為每個會...