最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Javaweb開(kāi)發(fā)項(xiàng)目實(shí)例教程(idea版)——Servlet規(guī)范(下篇)

2021-03-04 09:57 作者:動(dòng)力節(jié)點(diǎn)小王本王  | 我要投稿



接上篇servlet規(guī)范繼續(xù)更新~~~好了,廢話不多說(shuō),開(kāi)始正題!

十六、Cookie類:

1.介紹:

1) 來(lái)自于Servlet規(guī)范中提供一個(gè)工具類

2) 如果兩個(gè)Servlet為同一個(gè)用戶/用一個(gè)瀏覽器提供服務(wù),此時(shí)借助于用戶的cookie實(shí)現(xiàn)數(shù)據(jù)共享

3) cookie在現(xiàn)實(shí)生活中相當(dāng)于用戶的會(huì)員卡

2.實(shí)現(xiàn)原理

3.使用: myWeb網(wǎng)站中OneServlet通過(guò)Cookie與TwoServlet實(shí)現(xiàn)數(shù)據(jù)共享

運(yùn)行OneServlet

//1.生成一個(gè)Cookie對(duì)象Cookie? ? ? card=? ?new Cookie("共享數(shù)據(jù)名","共享數(shù)據(jù)");

//***一個(gè)Cookie對(duì)象只能存儲(chǔ)一個(gè)共享數(shù)據(jù)

//***cookie中共享數(shù)據(jù)只能String類型

//2.調(diào)用響應(yīng)對(duì)象將cookie寫入到響應(yīng)頭response.addCookie(card);

運(yùn)行twoServlet

//1.調(diào)用請(qǐng)求對(duì)象讀取請(qǐng)求頭中所有的cookie

Cookie? cookieArray[]= request.getCookies();

//2.遍歷循環(huán)數(shù)組,讀取OneServlet在cookie存入的數(shù)據(jù)

? ??for(Cookie card:cookieArrray){

? ? ? ? ? ? ? ??String key =? ?card.getName(); // 返回共享數(shù)據(jù)名

? ? ? ? ? ? ? ??String? value =? card.getValue();? //返回共享數(shù)據(jù)

? ? }

4.生命周期

1)在正常情況下,cookie存放在瀏覽器內(nèi)存中。在瀏覽器關(guān)閉時(shí),cookie將被銷毀

2)在命令控制下,可以要求瀏覽器將接收cookie存放在客戶端計(jì)算機(jī)的硬盤上并指定存活時(shí)間。在存活時(shí)間范圍內(nèi),關(guān)閉瀏覽器,關(guān)閉服務(wù)器,關(guān)閉計(jì)算機(jī)都不會(huì)導(dǎo)致cookie銷毀

cookie對(duì)象.setMaxAge(60); 在硬盤上存活1分鐘

十七、HttpSession接口

1.介紹

1)HttpSession接口來(lái)自于Servlet規(guī)范中

2)? HttpSession接口實(shí)現(xiàn)類由Http服務(wù)器廠商提供

3)? HttpSession接口修飾對(duì)象被稱為會(huì)話作用域?qū)ο?/p>

4)如果兩個(gè)Servlet為同一個(gè)用戶/同一個(gè)瀏覽器提供服務(wù)此時(shí)可以借助于用戶的HttpSession對(duì)象進(jìn)行數(shù)據(jù)共享

2.cookie與HttpSession區(qū)別 【筆試】

1)類型不同:

Cookie是一個(gè)類

HttpSession是一個(gè)接口

2)? 存放位置不同:

Cookie存放在客戶端計(jì)算機(jī)會(huì)話作用域?qū)ο蟠娣旁诜?wù)端計(jì)算機(jī)內(nèi)存

3)存放共享數(shù)據(jù)個(gè)數(shù)不同

一個(gè)cookie對(duì)象只能存儲(chǔ)一個(gè)共享數(shù)據(jù)

一個(gè)會(huì)話作用域?qū)ο笸ㄟ^(guò)map存儲(chǔ),因此可以任何個(gè)共享數(shù)據(jù)

4)? 存放數(shù)據(jù)類型不同

cookie只能存放String類型的共享數(shù)據(jù)

會(huì)話作用域?qū)ο蟠娣臤bject類型的共享數(shù)據(jù)

5)? ?與用戶關(guān)系

一個(gè)用戶可以擁有多個(gè)cookie

一個(gè)用戶只能擁有一個(gè)會(huì)話作用域?qū)ο?/p>

6) 參照物不同

cookie相當(dāng)于用戶在服務(wù)端擁有的會(huì)員卡

會(huì)話作用域?qū)ο笙喈?dāng)于用戶在服務(wù)端擁有的私人儲(chǔ)物柜

3. 工作原理:

4.使用? ?myWeb網(wǎng)站中OneServlet通過(guò)HttpSession與TwoServlet實(shí)現(xiàn)數(shù)據(jù)共享

//運(yùn)行OneServlet

//1.調(diào)用請(qǐng)求對(duì)象向Tomcat索要當(dāng)前用戶私人儲(chǔ)物柜

HttpSession session = request.getSession();

//2.將共享數(shù)據(jù)添加到當(dāng)前用戶私人儲(chǔ)物柜

session.setAttribute("共享數(shù)據(jù)名")

//運(yùn)行TwoServlet

//1.調(diào)用請(qǐng)求對(duì)象向Tomcat索要當(dāng)前用戶私人儲(chǔ)物柜

HttpSession? ? session = request.getSession(false);

//2.讀取OneServlet存入到共享數(shù)據(jù)

Object data = session.getAttribute("共享數(shù)據(jù)名")

5.? request.getSession()? 與? request.getSession(false)

1) request.getSession():

如果當(dāng)前用戶在服務(wù)端擁有私人儲(chǔ)物柜,要求tomcat返回這個(gè)儲(chǔ)物柜

如果當(dāng)前用戶在服務(wù)端尚未擁有私人儲(chǔ)物柜,要求tomcat為當(dāng)前用戶創(chuàng)建一個(gè)全新的私人儲(chǔ)物柜

2)request.getSession(false)

如果當(dāng)前用戶在服務(wù)端擁有私人儲(chǔ)物柜,要求tomcat返回這個(gè)儲(chǔ)物柜

如果當(dāng)前用戶在服務(wù)端尚未擁有私人儲(chǔ)物柜,要求tomcat返回null

3) 如果當(dāng)前用戶身份【經(jīng)過(guò)登錄驗(yàn)證審核判定為合法】,此時(shí)應(yīng)該使用request.getSession()來(lái)索要私人儲(chǔ)物柜

4)如果當(dāng)前用戶身份尚未確認(rèn)合法,此時(shí)應(yīng)該使用request.getSession(false)來(lái)索要私人儲(chǔ)物柜

6.session銷毀時(shí)機(jī):

1)在瀏覽器關(guān)閉時(shí),服務(wù)端是否會(huì)銷毀用戶的session[面試]

? ? ? 在瀏覽器關(guān)閉時(shí),切斷了用戶與瀏覽器之間聯(lián)系但是tomcat是服務(wù)端計(jì)算機(jī)中資源調(diào)度軟件無(wú)法偵測(cè)瀏覽器何時(shí)關(guān)閉的,因此在瀏覽器關(guān)閉時(shí),服務(wù)端是不會(huì)銷毀用戶的session

2)tomcat在創(chuàng)建session對(duì)象時(shí),設(shè)置一個(gè)【最大空閑時(shí)間】。

如果session對(duì)象從上次使用完畢到現(xiàn)在空閑時(shí)間達(dá)到了【最大空閑時(shí)間】tomcat認(rèn)為用戶放棄了自己的session.此時(shí)tomcat負(fù)責(zé)銷毀

3)tomcat設(shè)置【最大空閑時(shí)間】是30分鐘

4)網(wǎng)站自行設(shè)置session 【最大空閑時(shí)間】

? ??? ? web.xml

? ? ??? <session-config>

? ? ? ?? ? ? ? ?<session-timeout>5</session-timeout><!--session最大空閑時(shí)間5分鐘-->

? ??? ? </session-config>

7.HttpServletRequest實(shí)現(xiàn)Servlet之間數(shù)據(jù)共享

1.前提條件: 在一次請(qǐng)求轉(zhuǎn)發(fā)過(guò)程中,兩個(gè)Servlet共享同一個(gè)請(qǐng)求協(xié)議包。

? ?因此兩個(gè)Servlet共享這個(gè)請(qǐng)求協(xié)議包中請(qǐng)求對(duì)象和響應(yīng)對(duì)象

? ?所以在請(qǐng)求轉(zhuǎn)發(fā)過(guò)程中兩個(gè)Servlet可以通過(guò)當(dāng)前請(qǐng)求對(duì)象實(shí)現(xiàn)數(shù)據(jù)共享。

? ?當(dāng)請(qǐng)求對(duì)象實(shí)現(xiàn)數(shù)據(jù)共享時(shí)使用內(nèi)部attribute(ConcurrentHashMap)屬性存儲(chǔ)共享數(shù)據(jù)

? ?此時(shí)開(kāi)發(fā)人員將請(qǐng)求對(duì)象稱為【請(qǐng)求作用域?qū)ο蟆?/p>

2. 使用:? ?在一次請(qǐng)求轉(zhuǎn)發(fā)過(guò)程中OneServlet需要通過(guò)請(qǐng)求對(duì)象將數(shù)據(jù)共享給TwoServlet

運(yùn)行OneServlet

request.setAttribute("共享數(shù)據(jù)名",共享數(shù)據(jù));

request.getRequestDispatcher("/two").forward(request,response)

運(yùn)行TwoServlet

Object 共享數(shù)據(jù) = request.getAttribute("共享數(shù)據(jù)名");

十八、監(jiān)聽(tīng)器接口:

1.介紹:

1)一組(8個(gè))來(lái)自于Servlet規(guī)范中接口

2) 監(jiān)聽(tīng)器接口由項(xiàng)目開(kāi)發(fā)人員負(fù)責(zé)實(shí)現(xiàn)

3) 監(jiān)聽(tīng)器負(fù)責(zé)監(jiān)聽(tīng)作用域?qū)ο蟛⒃谥付ㄊ录姓{(diào)用監(jiān)聽(tīng)處理方法

2.作用域?qū)ο?

存在于服務(wù)端計(jì)算機(jī)內(nèi)存中,可以在指定條件下為servlet之間提供數(shù)據(jù)共享服務(wù)的對(duì)象

3.Servlet規(guī)范中定義作用域?qū)ο?3個(gè)

1.ServletContext接口----全局作用域?qū)ο?br>

2.HttpSession接口? ------會(huì)話作用域?qū)ο?/p>

3.HttpServletRequest接口----請(qǐng)求作用域?qū)ο?/p>

4.監(jiān)聽(tīng)器作用:

1)?監(jiān)聽(tīng)作用域?qū)ο笊芷谧兓瘯r(shí)刻

2) 監(jiān)聽(tīng)作用域?qū)ο蟠娣殴蚕頂?shù)據(jù)變化時(shí)刻

5.監(jiān)聽(tīng)器接口實(shí)現(xiàn)類開(kāi)發(fā)步驟

1)根據(jù)監(jiān)聽(tīng)目的選擇對(duì)應(yīng)接口進(jìn)行實(shí)現(xiàn)

2)重寫監(jiān)聽(tīng)器接口中事件處理方法,這些方法在指定事件產(chǎn)生時(shí)由tomcat負(fù)責(zé)調(diào)用

3)web.xml向tomcat注冊(cè)監(jiān)聽(tīng)器接口實(shí)現(xiàn)類

6.ServletContextListener接口:

? ?監(jiān)聽(tīng)全局作用域?qū)ο笊芷谧兓瘯r(shí)刻

7.全局作用域?qū)ο笊芷冢?br>

1)在Tomcat啟動(dòng)時(shí),自動(dòng)為當(dāng)前網(wǎng)站創(chuàng)建全局作用域?qū)ο?br>

2)在Tomcat運(yùn)行時(shí),一個(gè)網(wǎng)站有且只能有一個(gè)全局作用域?qū)ο?/p>

3)在Tomcat關(guān)閉時(shí),自動(dòng)銷毀網(wǎng)站中全局作用域?qū)ο?/p>

8.ServletContextAttributeListener接口

? ??監(jiān)聽(tīng)全局作用域?qū)ο蠊蚕頂?shù)據(jù)變化時(shí)刻

9.全局作用域?qū)ο蠊蚕頂?shù)據(jù)變化

ServletContext application = request.getServletContext();

application.setAttribute("key1",100); //新增共享數(shù)據(jù)

application.setAttribute("key1",200);//更新共享數(shù)據(jù)

application.removeAttribute("key1");//移除共享數(shù)據(jù)

10.浴池拖鞋管理方案:

1.在浴池營(yíng)業(yè)之前,實(shí)現(xiàn)購(gòu)買一批拖鞋

2.在浴池營(yíng)業(yè)時(shí),每當(dāng)接受一個(gè)客人直接提供一雙拖鞋

3.在浴池營(yíng)業(yè)時(shí),客人接收服務(wù)完畢后需要返還拖鞋,為下一個(gè)用戶準(zhǔn)備

11.數(shù)據(jù)庫(kù)連接池管理方案(Connection)

1.在Tomcat啟動(dòng)時(shí),預(yù)先創(chuàng)建一定數(shù)量的Connection

2.在Tomcat運(yùn)行時(shí),為用戶提供服務(wù)時(shí)選擇一個(gè)空閑的Connection為用戶使用

3.在Tomcat運(yùn)行時(shí),用戶服務(wù)處理完畢后不會(huì)銷毀Connection。而是重新設(shè)置為空閑狀態(tài)

4.在Tomcat準(zhǔn)備關(guān)閉時(shí),銷毀掉所有Connection

12.數(shù)據(jù)庫(kù)連接池管理方案遇到問(wèn)題:??

1.如何確保連接通道在tomcat運(yùn)行時(shí)一直存在的 (application)

2.如何將連接通道共享給所有Servlet(application)

3.如何知曉tomcat何時(shí)啟動(dòng)何時(shí)關(guān)閉(ServletContextListener)

十九、過(guò)濾器接口(Filter)

1.介紹:

1)Filter接口來(lái)自于Servlet規(guī)范

2)Filter接口實(shí)現(xiàn)類由項(xiàng)目開(kāi)發(fā)人員實(shí)現(xiàn)

3)? Filter接口可以在tomcat調(diào)用資源文件之前進(jìn)行攔截??

2.Filter接口作用:

1) 攔截tomcat之后,幫助tomcat檢測(cè)本次請(qǐng)求合法性

2) 攔截tomcat之后,對(duì)本次攔截的請(qǐng)求做增強(qiáng)服務(wù)

3.Filter接口實(shí)現(xiàn)類開(kāi)發(fā)步驟:3步

1) 創(chuàng)建Filter接口實(shí)現(xiàn)類

2)? ?重寫doFilter方法

3)web.xml注冊(cè)過(guò)濾器接口實(shí)現(xiàn)類

4.過(guò)濾器攔截地址:

1)通知tomcat調(diào)用某個(gè)具體資源文件時(shí)需要調(diào)用當(dāng)前過(guò)濾器

? ? ??<url-pattern>/文件名.后綴名</url-pattern>

2)通知tomcat調(diào)用某個(gè)文件夾下資源文件時(shí)需要調(diào)用當(dāng)前過(guò)濾器

? ? ??<url-pattern>/文件夾名/*</url-pattern>

3) 通知tomcat調(diào)用某種類型文件時(shí)需要調(diào)用當(dāng)前過(guò)濾器

? ???<url-pattern>*.jpg</url-pattern>

4) 通知tomcat在調(diào)用當(dāng)前網(wǎng)站下任意資源文件時(shí)需要調(diào)用當(dāng)前過(guò)濾器

? ??<url-pattern>/*</url-pattern>

5.惡意登錄解決方案----令牌機(jī)制


最后奉上視頻教程??,視頻觀看效果更佳??!走過(guò)路過(guò)別忘素質(zhì)三連哦~~



Javaweb開(kāi)發(fā)項(xiàng)目實(shí)例教程(idea版)——Servlet規(guī)范(下篇)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
乌恰县| 清水河县| 东乡族自治县| 庄浪县| 仲巴县| 客服| 长宁县| 革吉县| 珲春市| 措美县| 昌吉市| 济阳县| 皋兰县| 金坛市| 同心县| 内黄县| 紫金县| 浙江省| 安岳县| 隆安县| 常德市| 法库县| 双江| 天峨县| 饶平县| 怀宁县| 出国| 仁寿县| 广德县| 麻阳| 宜城市| 介休市| 惠州市| 汪清县| 禹州市| 藁城市| 江城| 新乡市| 依兰县| 邵阳市| 务川|