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

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

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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

 

web應用啟動做了什么?


 

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

 

瀏覽器到服務器解析?


A.瀏覽器發(fā)送請求到服務器

 

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

2.解析后的URL信息封裝成HTTP報文

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

 

B.服務器接收到瀏覽器請求

 

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

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

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

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

 

jsp?


 

什么是jsp?

jsp是一種運行在服務器端的腳本語言,是一種軟件開發(fā)者可以動態(tài)響應給客戶端的web網頁技術標準。

 

jsp運行原理及過程?

 

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

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

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

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

 

Web應用運行原理

 

 

Servlet?


 

什么是Servlet?

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

Servlet創(chuàng)建?

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

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

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

Servlet運行原理?

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

2.容器啟動的時候,只會讀取xml配置文件,如果不發(fā)生請求servlet是不會被加載運行的

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

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

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

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

7.將請求資源響應給客戶端

8.服務器關閉(或者更新servlet文件),servlet實例調用destroy()方法,servlet實例被銷毀

Web應用運行原理

 

 

Servlet生命周期?

1.當servlet實例調用init()方法實例化的時候,servlet的生命周期開始

2.當servlet實例調用destroy()方法的時候,servlet被銷毀,生命周期結束

 

注意

- 1.servlet實例只會被加載一次,init()方法、destroy()方法也只會被調用一次

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

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

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

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

- 5.get和post請求

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

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

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

分享到:
標簽:Web
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

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

數(shù)獨一種數(shù)學游戲,玩家需要根據9

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

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

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

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

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定