日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java httpserver 多个接口_多个Servlet之间数据共享实现方案

發布時間:2023/12/2 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java httpserver 多个接口_多个Servlet之间数据共享实现方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.數據共享:OneServlet工作完畢后,將產生數據交給TwoServlet來使用

Servlet規范中提供四種數據共享方案

1.ServletContext接口

2.Cookie類

3.HttpSession接口

4.HttpServletRequest接口

ServletContext接口:

1.介紹:

1)來自于Servlet規范中一個接口。在Tomcat中存在servlet-api.jar在Tomcat中負責提供這個接口實現類

2)如果兩個Servlet來自于同一個網站。彼此之間通過網站的ServletContext 實例對象實現數據共享

3)開發人員習慣于將ServletContext對象稱為【全局作用域對象】

2.工作原理:

每一個網站都存在一個全局作用域對象。 這個全局作用域對象【相當于】一個Map.在這個網站中OneServlet可以將一個數據存入到全局作用域對象,當前網站中其他Servlet此時都可以從全局作用域對象得到這個數據進行使用

3.全局作用域對象生命周期:

1)在Http服務器啟動過程中,自動為當前網站在內存中創建一個全局作用域對象

2)在Http服務器運行期間時,一個網站只有一個全局作用域對象

3)在Http服務器運行期間,全局作用域對象一直處于存活狀態

4)在Http服務器準備關閉時,負責將當前網站中全局作用域對象進行銷毀處理

全局作用域對象生命周期貫穿網站整個運行期間

4.命令實現: 【同一個網站】OneServlet將數據共享給TwoServlet

OneServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response){

//1.通過【請求對象】向Tomcat索要當前網站中【全局作用域對象】

ServletContext application = request.getServletContext();

//2.將數據添加到全局作用域對象作為【共享數據】

application.setAttribute("key1",數據) }

}

TwoServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response){

//1.通過【請求對象】向Tomcat索要當前網站中【全局作用域對象】

ServletContext application = request.getServletContext();

//2.從全局作用域對象得到指定關鍵字對應數據

Object 數據 = application.getAttribute("key1"); }

}

Cookie:

1.介紹:

1)Cookie來自于Servlet規范中一個工具類,存在于Tomcat提供servlet-api.jar中

2)如果兩個Servlet來自于同一個網站,并且為同一個瀏覽器/用戶提供服務,此時借助于Cookie對象進行數據共享

3).Cookie存放當前用戶的私人數據,在共享數據過程中提高服務質量

4).在現實生活場景中,Cookie相當于用戶在服務端得到會員卡

2.原理:

用戶通過瀏覽器第一次向MyWeb網站發送請求申請OneServlet OneServlet在運行期間創建一個Cookie存儲與當前用戶相關數據 OneServlet工作完畢后,將Cookie寫入到響應頭交還給當前瀏覽器

瀏覽器收到響應響應包之后,將cookie存儲在瀏覽器的緩存

一段時間之后,用戶通過同一個瀏覽器再次向myWeb網站發送請求申請TwoServlet時。瀏覽器需要無條件的將myWeb網站之前推送過來的Cookie,寫入到請求頭發送過去此時TwoServlet在運行時,就可以通過讀取請求頭中cookie中信息,得到OneServlet提供的共享數據

3.實現命令: 同一個網站 OneServlet 與 TwoServlet 借助于Cookie實現數據共享

OneServlet{

public void doGet(HttpServletRequest request,HttpServletResponse resp){

//1.創建一個cookie對象,保存共享數據(當前用戶數據)

Cookie card = new Cookie("key1","abc");

Cookie card1= new Cookie("key2","efg");

//cookie相當于一個map

//一個cookie中只能存放一個鍵值對

//這個鍵值對的key與value只能是String

//鍵值對中key不能是中文

//2.【發卡】將cookie寫入到響應頭,交給瀏覽器

resp.addCookie(card);

resp.addCookie(card1);}

}

TwoServlet{

public void doGet(HttpServletRequest request,HttpServletResponse resp){

//1.調用請求對象從請求頭得到瀏覽器返回的Cookie

Cookie cookieArray[] = request.getCookies();

//2.循環遍歷數據得到每一個cookie的key 與 value

for(Cookie card:cookieArray){

String key = card.getName(); //讀取key "key1"

Strign value = card.getValue();//讀取value "abc"

// 提供較好的服務。。 }

}

}

4.Cookie銷毀時機:

1.在默認情況下,Cookie對象存放在瀏覽器的緩存中。因此只要瀏覽器關閉,Cookie對象就被銷毀掉

2.在手動設置情況下,可以要求瀏覽器將接收的Cookie。存放在客戶端計算機上硬盤上,同時需要指定Cookie在硬盤上存活時間。在存活時間范圍內,關閉瀏覽器關閉客戶端計算機,關閉服務器,都不會導致Cookie 被銷毀。在存活時間到達時,Cookie自動從硬盤上被刪除

cookie.setMaxAge(60); //cookie在硬盤上存活1分鐘

HttpSession接口:

1.介紹:

1)HttpSession接口來自于Servlet規范下一個接口。存在于Tomcat中servlet-api.jar,其實現類由Http服務器提供。Tomcat提供實現類存在于servlet-api.jar

2)如果兩個Servlet來自于同一個網站,并且為同一個瀏覽器/用戶提供服務,此時 借助于HttpSession對象進行數據共享

3)開發人員習慣于將HttpSession接口修飾對象稱為【會話作用域對象】

2.HttpSession 與 Cookie 區別:【面試題】

1)存儲位置: 一個在天上,一個在地下

Cookie:存放在客戶端計算機(瀏覽器內存/硬盤)

HttpSession:存放在服務端計算機內存

2)數據類型:

Cookie對象存儲共享數據類型只能是String

HttpSession對象可以存儲任意類型的共享數據Object

數據數量:

一個Cookie對象只能存儲一個共享數據

HttpSession使用map集合存儲共享數據,所以可以存儲任意數量共享數據

4)參照物:

Cookie相當于客戶在服務端【會員卡】

HttpSession相當于客戶在服務端【私人保險柜】

3.命令實現: 同一個網站(myWeb)下OneServlet將數據傳遞給TwoServlet

OneServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response){

//1.調用請求對象向Tomcat索要當前用戶在服務端的私人儲物柜

HttpSession session = request.getSession();

//2.將數據添加到用戶私人儲物柜

session.setAttribute("key1",共享數據) }

}

//瀏覽器訪問/myWeb中TwoServlet

TwoServlet{

public void doGet(HttpServletRequest request,HttpServletResponse response){

//1.調用請求對象向Tomcat索要當前用戶在服務端的私人儲物柜

HttpSession session = request.getSession();

//2.從會話作用域對象得到OneServlet提供的共享數據

Object 共享數據 = session.getAttribute("key1");}

}

4.Http服務器如何將用戶與HttpSession關聯起來

Tomcat在創建一個HttpSession對象時自動為這個HttpSession對象生成一個編號

Tomcat將編號保存到cookie對象,推送到當前瀏覽器緩存

cookie.JESSIONID

等到用戶第二次來訪時,Tomcat根據請求頭JESSIONID確認用戶是否有HttpSession以及哪一個HttpSession是當前用戶的

5.getSession() 與 getSession(false)

1)getSession(): 如果當前用戶在服務端已經擁有了自己的私人儲物柜.要求tomcat將這個私人儲物柜進行返回如果當前用戶在服務端尚未擁有自己的私人儲物柜要求tocmat為當前用戶創建一個全新的私人儲物柜

2)getSession(false):如果當前用戶在服務端已經擁有了自己的私人儲物柜. 要求tomcat將這個私人儲物柜進行返回如果當前用戶在服務端尚未擁有自己的私人儲物柜此時Tomcat將返回null

6.HttpSession銷毀時機:

1.用戶與HttpSession關聯時使用的Cookie只能存放在瀏覽器緩存中.

2.在瀏覽器關閉時,意味著用戶與他的HttpSession關系被切斷

3.由于Tomcat無法檢測瀏覽器何時關閉,因此在瀏覽器關閉時并不會導致Tomcat將瀏覽器關聯的HttpSession進行銷毀

4.為了解決這個問題,Tomcat為每一個HttpSession對象設置【空閑時間】這個空閑時間默認30分鐘,如果當前HttpSession對象空閑時間達到30分鐘此時Tomcat認為用戶已經放棄了自己的HttpSession,此時Tomcat就會銷毀掉這個HttpSession

7.HttpSession空閑時間手動設置

在當前網站/web/WEB-INF/web.xml

5

HttpServletRequest接口實現數據共享

1.介紹:

1) 在同一個網站中,如果兩個Servlet之間通過【請求轉發】方式進行調用, 彼此之間共享同一個請求協議包。而一個請求協議包只對應一個請求對象 因此servlet之間共享同一個請求對象,此時可以利用這個請求對象在兩個Servlet之間實現數據共享

2) 在請求對象實現Servlet之間數據共享功能時,開發人員將請求對象稱為【請求作用域對象】

2.命令實現: OneServlet通過請求轉發申請調用TwoServlet時,需要給TwoServlet提供共享數據

OneServlet{

public void doGet(HttpServletRequest req,HttpServletResponse response){

//1.將數據添加到【請求作用域對象】中attribute屬性

req.setAttribute("key1",數據); //數據類型可以任意類型Object

//2.向Tomcat申請調用TwoServlet

req.getRequestDispatcher("/two").forward(req,response)}

}

TwoServlet{

public void doGet(HttpServletRequest req,HttpServletResponse response){

//從當前請求對象得到OneServlet寫入到共享數據

Object 數據 = req.getAttribute("key1"); }

}

總結

以上是生活随笔為你收集整理的java httpserver 多个接口_多个Servlet之间数据共享实现方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 极品探花在线 | 国产精品30p | 超碰干| 打屁股视频网站 | 欧美成人a视频 | 五月天精品视频 | 光棍影院av | 免费无码肉片在线观看 | 综合久久2o19 | 亚洲国产精品欧美久久 | 男男肉耽高h彩漫 | 全部免费毛片在线播放一个 | 自拍第1页 | 东方成人av在线 | 成人羞羞网站 | 久久国产精品无码网站 | 亚洲一区高清 | 国产区在线观看视频 | 亚洲综合色在线 | 激情综合视频 | 91亚洲精品乱码久久久久久蜜桃 | 亚洲综合图色 | 国产成人久久77777精品 | 捆绑裸体绳奴bdsm亚洲 | 在线视频播放大全 | 国产黄色一级 | 亚洲九九夜夜 | 国模无码大尺度一区二区三区 | 青青草原免费观看 | 日本天堂在线播放 | jzzjzz日本丰满成熟少妇 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 中文字幕永久在线视频 | 成人免费黄色大片v266 | 欧美日韩黄色一级片 | 亚洲第一国产视频 | 日韩精品免费一区二区夜夜嗨 | 日本黄色高清 | 激情小说中文字幕 | 青草99| 国产www精品 | 日韩一区二区三区精品 | www.男人的天堂 | 天天爽网站| 天堂网视频在线观看 | 在线视频h | 2025av在线播放 | 国产精品久久久久影院色老大 | 久久国产精品久久久 | 在线不卡av | 成人免费视频网站在线看 | 亚洲作爱视频 | 琪琪电影午夜理论片八戒八戒 | 国产精品一区无码 | 日日射日日干 | 一区二区午夜 | 亚洲天堂精品在线 | 国产一区二区在线电影 | 国内免费av| ass亚洲肉体欣赏pics | 18一20岁毛毛片 | 色激情网| a视频在线观看免费 | 欧美50p| 久久视频一区二区三区 | 国产深夜福利在线 | www.avcao | 午夜免费看 | 美女又黄又免费的视频 | 免费无码国产精品 | 午夜网址 | 日产精品久久久久久久蜜臀 | 亚洲精品乱码久久久久久麻豆不卡 | 色综合视频在线 | 天堂在线观看 | 国产精品888| 高清国产mv在线观看 | 操日本老太太 | 国产激情第一页 | 蝌蚪网在线视频 | 97伦伦午夜电影理伦片 | 国产一区二区视频网站 | 资源av | 神马午夜伦理影院 | 亚洲一区二区天堂 | 国产精品111 | av网站不卡 | 亚洲国产中文字幕在线观看 | 亚洲第一成网站 | 99re在线视频精品 | 国产精品久久久久久久免费看 | 中文 日韩 欧美 | 久久久久久久久久久久国产精品 | _级黄色片 | 麻豆疯狂做受xxxx高潮视频 | 久久香蕉网站 | 懂色av粉嫩av蜜乳av | 成人在线视频网 | 国产亚洲欧美精品久久久久久 |