国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

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

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



Servlet規(guī)范介紹:

1.servlet規(guī)范來自于JAVAEE規(guī)范中的一種

2.作用:

1)在Servlet規(guī)范中,指定【動態(tài)資源文件】開發(fā)步驟

2)在Servlet規(guī)范中,指定Http服務(wù)器調(diào)用動態(tài)資源文件規(guī)則

3)在Servlet規(guī)范中,指定Http服務(wù)器管理動態(tài)資源文件實(shí)例對象規(guī)則


一、Servlet規(guī)范:

1.Servlet規(guī)范是Sun公司提供

2.Servlet規(guī)范指定動態(tài)資源文件調(diào)用管理規(guī)則

3.servlet規(guī)范涉及接口實(shí)現(xiàn)類由Http服務(wù)器廠商提供

4.tomcat對于servlet規(guī)范提供接口實(shí)現(xiàn)類在lib/servlet-api.jar

二、Servlet規(guī)范細(xì)節(jié):

1.指定了Servlet接口實(shí)現(xiàn)類開發(fā)步驟

2.指定了Tomcat調(diào)用Servlet接口實(shí)現(xiàn)類規(guī)則

3.指定了Tomcat如何管理Servlet接口實(shí)現(xiàn)類的實(shí)例對象

4.指定了多個(gè)Servlet接口實(shí)現(xiàn)類之間調(diào)用規(guī)則

5.指定了多個(gè)Servlet接口實(shí)現(xiàn)類之間數(shù)據(jù)共享方案

三、Servlet接口實(shí)現(xiàn)類開發(fā)步驟

1.Servlet規(guī)范認(rèn)為,只有作為Servlet接口的實(shí)現(xiàn)類才可以被稱為動態(tài)資源文件只有動態(tài)資源文件才有資格被Tomcat服務(wù)器進(jìn)行調(diào)用

2.開發(fā)步驟:

第一步:創(chuàng)建一個(gè)Java類繼承與HttpServlet

第二步:重寫doGet/doPost方法

第三步:在網(wǎng)站中web.xml中注冊Servlet接口實(shí)現(xiàn)類

四、Servlet對象生命周期 【背】

1.一個(gè)網(wǎng)站中所有的Servlet接口實(shí)現(xiàn)類的實(shí)例對象應(yīng)該由Http服務(wù)器負(fù)責(zé)創(chuàng)建

2.在正常情況下,只有在Tomcat接收到第一個(gè)針對當(dāng)前Servlet接口實(shí)現(xiàn)類請求時(shí)才會創(chuàng)建其實(shí)例對象

通過命令干預(yù),可以要求tomcat在啟動時(shí)自動創(chuàng)建Servlet接口實(shí)現(xiàn)類

實(shí)例對象

? ? ? ? ??web.xml

? ? ? ? ? ? ? ? ?? <servlet>

? ? ? ? ? ?? ? ? ? ? ? ? ? ?<servlet-name></servlet-name>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <servlet-class></servlet-class>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <load-on-startup>76</load-on-startup> 大于0的整數(shù)即可

? ? ? ? ? ? ? ? ? ?</servlet>

3.一個(gè)Servlet接口實(shí)現(xiàn)類最多只能被創(chuàng)建一個(gè)實(shí)例對象

4.在Tomcat關(guān)閉時(shí)負(fù)責(zé)銷毀掉網(wǎng)站中所有的Servlet接口實(shí)現(xiàn)類

實(shí)例對象

五、HttpServletResponse接口

1.介紹:

1)HttpServletResponse接口來自于Servlet規(guī)范

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

3)HttpServletResponse接口可以將Servlet中運(yùn)行結(jié)果寫入到響應(yīng)包

4)開發(fā)人員習(xí)慣于將HttpServletResponse接口修飾的對象稱為【響應(yīng)對象】

2.主要功能:

1)HttpServletResponse接口負(fù)責(zé)將Servlet運(yùn)行結(jié)果以二進(jìn)制形式寫入到響應(yīng)包中響應(yīng)體

2)HttpServletResponse接口負(fù)責(zé)設(shè)置響應(yīng)包中響應(yīng)頭中content-type屬性控制瀏覽器采用對應(yīng)的解析器和編譯器對響應(yīng)體中二進(jìn)制數(shù)據(jù)進(jìn)行處理

3)HttpServletResponse接口負(fù)責(zé)將一個(gè)請求地址寫入到響應(yīng)頭中l(wèi)ocation屬性中來控制瀏覽器下一次請求的方式

六、HttpServletRequest接口? ? ?

1.介紹:

1)HttpServletRequest接口來自于Servlet規(guī)范

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

3)HttpServletRequest接口讀取請求協(xié)議包內(nèi)容

4) 開發(fā)人員習(xí)慣于將HttpServletRequest接口修飾對象稱為【請求對象】

2.主要功能:

1) 讀取請求包中請求行中信息【url,method】

2) 讀取請求包中請求頭或則請求體中參數(shù)信息

3) 代替瀏覽器向tomcat索要資源文件? ?

七、默認(rèn)歡迎資源文件設(shè)置??

1. 默認(rèn)歡迎資源文件:tomcat針對用戶對當(dāng)前網(wǎng)站發(fā)起默認(rèn)請求,自動返回資源文件

2.? 默認(rèn)請求:

1)正常請求:

? ? ?http://localhost:8080/myWeb/one.html

2) 默認(rèn)請求:

? ? ?http://localhost:8080/myWeb/

3.tomcat遵守的默認(rèn)歡迎資源文件定位規(guī)則:

1)規(guī)則位置:tomcat安裝目錄/conf/web.xml??

4.自定義網(wǎng)站中的默認(rèn)歡迎資源文件定位規(guī)則:

? ?? ?web.xml

? ? ? ? ? <welcome-file-list>

? ? ? ?? ? ? ? ? <welcome-file></welcome-file>

? ? ? ? ? </welcome-file-list>? ?

八、Http狀態(tài)碼

1.介紹:

1)由Http服務(wù)器生成一個(gè)由三位數(shù)字組成符號

2) 表示本次通信的狀態(tài)同時(shí)可以要求瀏覽器接收到響應(yīng)包之后行為

3)分為5個(gè)大類 (1XX,2xx,3xx,4xx,5xx)

2.? 200: Http服務(wù)器將瀏覽器請求的資源文件進(jìn)行了返回

3.? 302:Http服務(wù)器通知瀏覽器到響應(yīng)頭中l(wèi)ocation中讀取請求地址并要求瀏覽器將得到請求地址更新到瀏覽器地址欄response.sendRedirect("請求地址")

4. 404: Http服務(wù)器通知瀏覽器本次索要的資源文件不存在

原因:

1)人為原因:

網(wǎng)站名不對

如果網(wǎng)站名正確,可能資源文件名稱

tomcat沒有在網(wǎng)站定位默認(rèn)歡迎資源文件

設(shè)置請求地址沒有按照uri格式(/網(wǎng)站名/資源文件名)設(shè)置

2)IEDA沒有將最新網(wǎng)站內(nèi)容交給tomcat

5.405:? Http服務(wù)器通知瀏覽器本次索要的資源文件已經(jīng)被找到了,但是

這個(gè)資源文件對于瀏覽器請求方式無法接收

? ? ? ? ? ? ? ? ? ? ? ? ? ?get

? ? ? ? 瀏覽器------------》servlet.doGet()

? ? ? ? ? ? ? ? ? ? ? ? ? ?post

? ? ? ? 瀏覽器-----------》 servlet.doPost()

5.500:Http服務(wù)器通知瀏覽器本次索要的資源文件已經(jīng)被找到了并且也可以接收瀏覽器的請求方式,但是由于資源文件在處理過程出現(xiàn)了異常因此無法提供服務(wù)

異常:并不是命令寫錯(cuò)了,命令使用數(shù)據(jù)不滿足條件

**一個(gè)異常至少遇到三次以上才有可能進(jìn)行解決

九、常見異常:

1. jdbc-jar包忘記添加

ClassNotFoundException: com.mysql.jdbc.Driver

2. mysql服務(wù)器停止或則mysql服務(wù)器所在計(jì)算機(jī)ip地址寫錯(cuò)

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

3. 訪問數(shù)據(jù)庫不存在

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'xxx'

4. 訪問數(shù)據(jù)庫使用密碼不正確

java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

5. SQL命令書寫錯(cuò)誤

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dname='888',loc='888' where deptno=5'

6. NullPointerException

十、servlet之間調(diào)用方式

1.前提條件:

針對瀏覽器某次請求,需要在服務(wù)端中由多個(gè)Servlet參與其中但是瀏覽器一次只能請求一個(gè)資源文件,導(dǎo)致用戶為了得到服務(wù)結(jié)果需要手動通過瀏覽器發(fā)起多次請求,增加用戶獲得服務(wù)難度降低使用感受。導(dǎo)致用戶流失

2.紅線:? ?無論本次請求中涉及了多個(gè)Servlet,用戶只需要手動發(fā)起一次請求

3.解決方案:? 重定向解決方案,請求轉(zhuǎn)發(fā)解決方案

十一、重定向解決方案

1.工作原理:

2.依賴命令? response.sendRedirect("地址")

3.地址格式:

1)如果要求瀏覽器訪問的其他網(wǎng)站的資源,地址采用URL?response.sendRedirect("http://www.baidu.com")

2)? 如果要求瀏覽器訪問的當(dāng)前網(wǎng)站的資源,地址采用URI

response.sendRedirect("/myWeb/two")

4.特征【背】

1)重定向過程中瀏覽器會發(fā)送多少次請求重定向過程中瀏覽器至少發(fā)送兩次以上請求,但是只有第一次請求是用戶手動發(fā)起的

2)在瀏覽器發(fā)送請求之后,如何判斷服務(wù)端采用重定向方案解決請求在本次請求結(jié)束后,收到的狀態(tài)碼是302時(shí)就可以判定

3)通過重定向方案調(diào)用的Servlet接收的請求方式一定是GET.從第二次請求開始是通過瀏覽器地址發(fā)起的。因此發(fā)起請求方式一定是GET

十二、請求轉(zhuǎn)發(fā)解決方案

1.工作原理

2.依賴命令:

? ? ? ? ? ? ? ? ? ??//通過請求對象獲得資源申請對象

? ? ? ? ? ? ? ? ? ?RequestDispatcher? report =? ?request.getRequestDispatcher("地址");

? ? ? ? ? ? ? ? ? ?//將資源申請對象發(fā)送給tomcat

? ? ? ? ? ? ? ? ? ?report.forward(request,response)?

3.地址:? ? ? "/資源文件名"

4.特征:

1)請求轉(zhuǎn)發(fā)過程中,瀏覽器發(fā)送了多少次請求只發(fā)送了一次請求

2)請求轉(zhuǎn)發(fā)過程中,為什么將請求對象和響應(yīng)對象交給tomcat請求轉(zhuǎn)發(fā)過程,兩個(gè)Servlet應(yīng)該共享同一個(gè)請求協(xié)議包,因此共享這個(gè)請求協(xié)議包關(guān)聯(lián)的請求對象和響應(yīng)對象

3)通過請求轉(zhuǎn)發(fā)調(diào)用的Servlet接收的請求方式在同一次請求轉(zhuǎn)發(fā)過程中,所有servlet接收請求方式保持一致

十三、HashMap與HashTable與ConcurrentHashMap [面試題]

十四、Servlet之間數(shù)據(jù)共享方案

1.ServletContext接口

2.Cookie類

3.HttpSession接口

4.HttpServletRequest接口

十五、ServletContext接口

1.介紹:

1)ServletContext接口來自于Servlet規(guī)范

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

3)ServletContext接口修飾對象被稱為全局作用域?qū)ο?/p>

4)來自于同一個(gè)網(wǎng)站下Servlet都可以使用全局作用域?qū)ο筮M(jìn)行數(shù)據(jù)共享

2. 使用:? myWeb網(wǎng)站中OneServlet通過全局作用域?qū)ο笙騎woServlet提供共享數(shù)據(jù)

運(yùn)行OneServlet

//1.通過請求對象向Tomcat索要當(dāng)前網(wǎng)站中全局作用域?qū)ο骃ervletContext? ?application=? request.getServletContext()

//2.將數(shù)據(jù)添加到全局作用域?qū)ο笾凶鳛楣蚕頂?shù)據(jù)application.setAttribute("共享數(shù)據(jù)名",共享數(shù)據(jù))

運(yùn)行TwoServlet

//1.通過請求對象向Tomcat索要當(dāng)前網(wǎng)站中全局作用域?qū)ο骃ervletContext? ?application=? request.getServletContext()

//2.從全局作用域?qū)ο笞x取數(shù)據(jù)Object 共享數(shù)據(jù) = application.getAttribute("共享數(shù)據(jù)名");

3. 生命周期:[背]

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

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

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

4. 存在問題:

1)如果不進(jìn)行限制,無限向全局作用域?qū)ο筇砑訑?shù)據(jù)。導(dǎo)致服務(wù)端計(jì)算機(jī)內(nèi)存消耗殆盡

2)容易導(dǎo)致數(shù)據(jù)污染


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

? ? ? ?


? ? ? ? ? ? ??






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

分享到微博請遵守國家法律
左贡县| 泽州县| 百色市| 沙河市| 桓台县| 南岸区| 临潭县| 易门县| 务川| 黑山县| 南阳市| 合川市| 泗洪县| 新密市| 老河口市| 澄迈县| 措勤县| 泽库县| 固原市| 叶城县| 华亭县| 镇坪县| 理塘县| 和平县| 澄迈县| 修文县| 柳江县| 汝南县| 洞头县| 牙克石市| 博乐市| 潼南县| 瑞金市| 肇东市| 台湾省| 惠东县| 崇明县| 牟定县| 茌平县| 武平县| 尖扎县|