日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

作者:OnlyLoveVivian
來源:https://blog.csdn.net/OnlyLoveVivian/article/details/73928067

 

web應(yīng)用啟動(dòng)做了什么?


 

讀取web.xml文件

- web.xml常用配置參數(shù):

1).context-param(上下文參數(shù))
2).listener(監(jiān)聽器配置參數(shù))
3).filter(過濾器配置參數(shù))
4).servle(servlet頁面參數(shù))
5).其他
- 讀取順序:1)>>>2)>>>3)>>>4)(5))(具體對(duì)應(yīng)的執(zhí)行順序也是如此)
- 原理及過程
1)應(yīng)用在服務(wù)器上啟動(dòng),容器按上述順序自動(dòng)讀取web.xml中的參數(shù)
2)容器創(chuàng)建一個(gè)上下文對(duì)象,即ServletContext,整個(gè)web應(yīng)用共享這個(gè)對(duì)象
3)容器將讀取到的context-param配置參數(shù)轉(zhuǎn)化為鍵值對(duì),封裝到ServletContext
4)創(chuàng)建監(jiān)聽器對(duì)象(Servlet容器實(shí)例化所有監(jiān)聽器,回調(diào)無參構(gòu)造方法,調(diào)用init初始化方法)
5)創(chuàng)建過濾器對(duì)象(Servlet容器實(shí)例化所有過濾器,回調(diào)無參構(gòu)造方法,調(diào)用init初始化方法)
注意:此時(shí)只是web應(yīng)用啟動(dòng)時(shí)的讀取文件以及初始化階段,客戶端沒有發(fā)送的請(qǐng)求的情況下不會(huì)有其他任何操作

 

瀏覽器到服務(wù)器解析?


A.瀏覽器發(fā)送請(qǐng)求到服務(wù)器

 

1.在瀏覽器地址欄輸入請(qǐng)求地址,瀏覽器解析請(qǐng)求URL,解析出IP地址等信息(域名解析)

2.解析后的URL信息封裝成HTTP報(bào)文

3.瀏覽器創(chuàng)建一個(gè)socket調(diào)用send()方法將HTTP報(bào)文發(fā)送到服務(wù)器(以流的方式)

 

B.服務(wù)器接收到瀏覽器請(qǐng)求

 

1.web容器也會(huì)創(chuàng)建一個(gè)socket并且調(diào)用receive()方法接收瀏覽器發(fā)送過來的HTTP報(bào)文(攜帶有IP地址,請(qǐng)求參數(shù)等信息)

2.服務(wù)器解析請(qǐng)求信息,將請(qǐng)求到的靜態(tài)或動(dòng)態(tài)資源利用sokcet調(diào)用send()方法發(fā)送給瀏覽器

3.瀏覽器利用sokcet調(diào)用receive()方法接收服務(wù)器端發(fā)送的資源,例如html,jsp等

4.瀏覽器解析資源,有可能進(jìn)行再次請(qǐng)求(例如請(qǐng)求css/js等文件資源),遇到有html或jsp代碼將對(duì)腳本標(biāo)簽進(jìn)行渲染

 

jsp?


 

什么是jsp?

jsp是一種運(yùn)行在服務(wù)器端的腳本語言,是一種軟件開發(fā)者可以動(dòng)態(tài)響應(yīng)給客戶端的web網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。

 

jsp運(yùn)行原理及過程?

 

-本質(zhì)上jsp只是一個(gè)帶有.jsp后綴的腳本語言文件,并不能直接在jvm(虛擬機(jī))上運(yùn)行,所以需要將其轉(zhuǎn)換為一個(gè)Servlet類,才能通過jvm解釋執(zhí)行:

1)客戶端發(fā)送請(qǐng)求到服務(wù)器,web容器通過jsp引擎將jsp文件轉(zhuǎn)換為一個(gè)Servlet類源文件(.JAVA)(如果是第一次訪問或jsp文件被修改過,那么將會(huì)重新轉(zhuǎn)換為一個(gè)新的Servlet類)

2)轉(zhuǎn)換過來的Servlet類進(jìn)一步被java編譯器編譯成字節(jié)碼文件(.class)

3)字節(jié)碼文件被系統(tǒng)類加載器裝載到j(luò)vm上,開始初始化、執(zhí)行

 

Web應(yīng)用運(yùn)行原理

 

 

Servlet?


 

什么是Servlet?

Java Servlet 是運(yùn)行在 Web 服務(wù)器或應(yīng)用服務(wù)器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請(qǐng)求和 HTTP 服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間層。

Servlet創(chuàng)建?

1. 創(chuàng)建一個(gè)類,實(shí)現(xiàn)HttpServlet接口(HttpServlet繼承于GenericServlet,GenericServlet(實(shí)現(xiàn)類)繼承于Servlet接口)

2. 右鍵—新建Servlet(選擇配置文件還是注解虛擬路徑)

3. 重寫doGet()和doPost()方法處理請(qǐng)求

Servlet運(yùn)行原理?

1. Servlet沒有main方法不能直接獨(dú)立運(yùn)行。所以需要依賴于web容器(如Tomcat),由這個(gè)容器來控制servlet從創(chuàng)建到銷毀的過程

2.容器啟動(dòng)的時(shí)候,只會(huì)讀取xml配置文件,如果不發(fā)生請(qǐng)求servlet是不會(huì)被加載運(yùn)行的

3.客戶端第一次發(fā)送請(qǐng)求,服務(wù)器接收到請(qǐng)求后,解析請(qǐng)求參數(shù)并封裝成該請(qǐng)求對(duì)應(yīng)的HttpServletRequest和HttpServletResponse對(duì)象以給容器使用

4.根據(jù)URL匹配容器中的servlet實(shí)例,若沒有容器將創(chuàng)建和實(shí)例化一個(gè)servlet,若有則進(jìn)入下一步(實(shí)例化之前類加載器將字節(jié)碼文件加載過來)

5.容器調(diào)用servlet實(shí)例的init()方法完成初始化工作

6.調(diào)用service方法處理請(qǐng)求,判斷請(qǐng)求方式是get還是post,再調(diào)用業(yè)務(wù)邏輯層的方法完成數(shù)據(jù)交互

7.將請(qǐng)求資源響應(yīng)給客戶端

8.服務(wù)器關(guān)閉(或者更新servlet文件),servlet實(shí)例調(diào)用destroy()方法,servlet實(shí)例被銷毀

Web應(yīng)用運(yùn)行原理

 

 

Servlet生命周期?

1.當(dāng)servlet實(shí)例調(diào)用init()方法實(shí)例化的時(shí)候,servlet的生命周期開始

2.當(dāng)servlet實(shí)例調(diào)用destroy()方法的時(shí)候,servlet被銷毀,生命周期結(jié)束

 

注意

- 1.servlet實(shí)例只會(huì)被加載一次,init()方法、destroy()方法也只會(huì)被調(diào)用一次

- 2.只有創(chuàng)建的對(duì)象會(huì)每請(qǐng)求一次就會(huì)創(chuàng)建一對(duì)(requset和response)

- 3.如果需要在實(shí)例被創(chuàng)建和加載的時(shí)候就完成初始化,則可以如下設(shè)置參數(shù)

@requires_authorization
<servlet> 
 <servlet-name>類名</servlet-name> 
 <servlet-class>包名.類名</servlet-class> 
 <load-on-startup>優(yōu)先級(jí)別(數(shù)字)</load-on-startup> 
</servlet>

- 4.對(duì)于某些servlet沒有元素,但又想提前初始化則可以進(jìn)行上述配置,否則需要配置參數(shù)

- 5.get和post請(qǐng)求

a. get請(qǐng)求只能以字符串形式傳遞參數(shù)名和值,直接跟在URL后,安全性差;post請(qǐng)求在請(qǐng)求頭中,較為安全,并且傳遞數(shù)據(jù)沒有限制

b. get傳輸數(shù)據(jù)量較小;post傳輸數(shù)據(jù)量大

c. get請(qǐng)求服務(wù)器接收效果不好,不能判斷是否完成發(fā)送;post方式是先發(fā)送長(zhǎng)度,可以判斷是否發(fā)送完成

分享到:
標(biāo)簽:Web
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定