Servlet 原理概述
Servlet概述
1. Servlet 背景
早期的web應用主要用于瀏覽新聞等靜態頁面,用戶通過HTTP協議請求服務 器上的靜態頁面,服務器上的web服務器軟件接收到請求后,讀取URI標示的資源,再加上消息報頭發送給客戶端瀏覽器,瀏覽器負責解析HTML,將結果呈現出來 
 后來用戶需要一些交互操作,獲取一些動態結果。如果基于HTTP協議實現服務器端軟件增強功能太過復雜,所以需要一些擴展機制來實現用戶想要的功能。早期使用的Web服務器擴展機制是CGI(Common Gateway Interface,公共網關接口)。使用這種方法,用戶單擊某個鏈接或輸入網址來訪問CGI程序,web服務器收到請求后,運行該CGI程序,對用戶請求進行處理,緊接著將處理結果并產生一個響應,該響應被返回給web服務器,web服務器對響應進行包裝,以HTTP響應的方式返回給瀏覽器。 
 CGI程序在一定程度上解決了用戶需求。不過還存在一些不足之處,如CGI程序編寫困難,響應時間較長,以進程方式運行導致性能受限。于是1997年,sun公司推出了Servlet技術,作為java陣營的CGI解決方案。
2. Servlet 原理
2.1 servlet通信
Tomcat將http請求接收并解析為HttpServletRequest對象,發送給Servlet 
 Tomcat將HttpServletResponse對象變成http響應,發送給瀏覽器
Servlet是一個基于Java技術的Web組件,運行在服務器端。 
 它由Servlet容器所管理,用于生成動態的內容。 
 Servlet是平臺獨立的Java類,編寫一個Servlet,實際上就是按照Servlet規范編寫一個Java類。
2.2 servlet容器
Servlet容器也叫做Servlet引擎,是Web服務器或應用程序服務器的一部分,用于在發送的請求和響應之上提供網絡服務,解碼基于MIME的請求,格式化基于MIME的響應。
常用的MIME類型:text/html,application/pdf,video/quicktime,application /java,image/jpeg,application/jar,application/octet-stream,application/x- zip)
使用servlet容器來管理和運行servlet的原因: 
 - 通信支持: 利用容器提供的方法,你能輕松的讓servlet與web服務器對話,而不用自己建立serversocket、監聽某個端口、創建流等 
 - 多線程支持:容器會自動為它所接收的每個servlet請求創建一個新的java線程。 
 - 聲明方式實現安全:利用servlet容器,你可以使用xml部署描述文件來配置和修改安全性,而不必將其硬編碼寫到servlet類代碼中。 
 - JSP支持:servlet容器負責將jsp代碼翻譯為真正的java代碼。
2.3 用與CGI程序相比,Servlet具有以下優點:
- Servlet是單實例多線程的運行方式。每個請求在一個獨立的線程中運行,而提供服務的Servlet實例只有一個。線程僅占用有限的系統資源,所以能響應更多的請求。
- Servlet使用標準的API,被更多的Web服務器所支持。
- Servlet使用Java語言編寫,因此擁有Java程序語言的所有優點,包括容易開發和平臺獨立性,和有Java平臺豐富的類庫的支持。
- Servlet容器給Servlet提供額外的功能,如錯誤處理和安全。
3. Servlet的使用
3.1 Servlet包
Java Servlet是運行在帶有支持Java Servlet規范的解釋器的web服務器上的Java類。 
 使用javax.servlet和javax.servlet.http包創建 
 Java Servlet 就像任何其他的 Java 類一樣已經被創建和編譯。
總結
以上是生活随笔為你收集整理的Servlet 原理概述的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【自动驾驶】LQR控制实现轨迹跟踪
- 下一篇: DH参数的理解
