Servlet與Tomcat

Web應用不只侷限於展現在服務器上的靜態頁面,更多的是根據用的請求動態的生成頁面信息,還能夠從數據庫中提取數據,生成頁面返回給用戶。web

 

第一種方法:遵循HTTP協議實現一個服務器端軟件數據庫

 

第二種方法:利用已實現HTTP協議的服務器端軟件留出的擴展接口,根據相應的規則提供擴展功能小程序

 

 

最先的Web服務器擴展機制是CGI,容許用戶調用Web服務器上的CGI程序。瀏覽器

CGI的全稱Common Gateway Interface,即公共網關接口。安全

 

大多數CGI程序用Perl編寫,也有用C、Python或PHP來編寫的。服務器

 

用戶訪問CGI的過程包括:網絡

  1. 用戶經過單擊某個連接或者直接在瀏覽器輸入URL來訪問CGI程序;
  2. web服務器接收到請求後,發現這個請求是給CGI程序的,因而就啓動並運行這個CGI程序;
  3. CGI程序解析請求中的CGI數據,處理數據併產生一個響應,這個響應一般是HTML頁面;
  4. 這個響應被返回給Web服務器,Web服務器包裝這個響應,以HTTP響應的形式發送給Web瀏覽器。

 

CGI的缺點有:多線程

CGI程序編寫困難;app

對用戶請求的響應時間比較長;webapp

以進程的方式致使性能受限。

 

CGI的其餘解決方案:

Sun公司的Servlet技術(97年),JSP技術(98年);

微軟公司的ASP技術(96年);

Rasmus Lerdorf在94年發明的PHP。

 

Servlet和Servlet容器

 

Java Servlet(Java服務器小程序)是一個基於Java技術的Web組件,運行在服務器端,由Servelet容器所管理,用於生成動態內容。

Servlet是平臺獨立的Java類,寫一個Servlet實際上就是按照Servlet的規範編寫一個Java類。

 

Servlet容器有時也叫Servlet引擎,是Web服務器或應用程序的一部分,用於在發送的請求和響應之上提供網絡服務,解碼基於MIME的請求,格式化基於MIME的響應;

Servlet不能獨立運行,必須被部署到Servlet容器中,由容器來實例化和調用Servlet的方法;

Servlet容器在Servlet的生命週期內包容和管理Servlet。

 

JSP推出後,管理和運行Servlet/JSP的容器也被稱爲Web容器。

 

用戶訪問Servlet的過程包括:

用戶經過點擊連接或者在地址欄輸入URL來訪問Servlet;

Web服務器接收到該請求後,並非直接將請求直接交給Servlet,而是交給Servlet容器;

Servlet容器實例化Servlet,調用Servlet的一個特定方法對請求進行處理,併產生一個響應;

這個響應由Servlet容器返回給Web服務器;

Web服務器包裝該響應,以HTTP響應的形式發送給Web瀏覽器。

 

相比於CGI,Servlet有一下優點:

Servlet的單實例多線程運行方式,每一個請求在一個獨立的線程中運行,而提供服務的Servlet實例只有一個;

Servlet使用線程而不是操做系統進程;

Servlet使用標準的API,被更多的Web服務器所支持;

Servlet採用Java編寫,具備容易開發和平臺獨立的優勢;

Servlet能夠訪問Java平臺豐富的類庫;

Servlet容器給Servlet提供額外的功能,如錯誤處理和安全。

 

Servlet容器有三類:

獨立的Servlet容器;

進程內的Servlet容器;

進程外的Servlet容器。

 

Tomcat和IIS、Apache等Web服務器同樣,具備處理HTML頁面的功能,另外它仍是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。

不過Tomcat處理靜態HTML的功能不如Apache,咱們能夠將兩者結合起來使用,Apache做爲HTTP Web服務器,Tomcat做爲Web容器。

 

Tomcat服務器接受用戶請求並作出響應的過程

客戶端(一般是瀏覽器)訪問Web服務器,發送HTTP請求;

Web服務器接收到請求後,傳遞給Servlet容器;

Servlet容器加載Servlet,產生Servlet實例後,向其傳遞表示請求和響應的對象;

Servlet實例使用請求對象得到客戶端的請求信息,而後進行相應的處理;

Servlet實例將處理結果經過響應對象發送回客戶端,容器負責確保響應正確送出,同時將控制返回給Web服務器。

 

Tomcat目錄結構及其用途

目錄 用途
/bin 存放啓動和關閉Tomcat的腳本
/conf 存放Tomcat的各類配置文件,其中包括Server.xml(主要配置文件)
/lib 存放Tomcat服務器和Web應用程序須要訪問的JAR文件
/logs 日誌文件
/temp 臨時文件
/webapps 發佈Web應用程序時,將Web應用程序的目錄和文件放到這個目錄下
/work Tomcat將JSP生成的Servlet源文件和字節碼文件放於此

 

Tomcat安裝目錄下的conf子目錄用於存放Tomcat服務器的各類配置文件,其中的server.xml是Tomcat的主要配置文件,這是一個格式良好的XML文檔,在這個文件中能夠修改Tomcat默認監聽的端口號。

<Connector port=」8080」 protocol="HTTP/1.1"

                    connectionTimeout="20000"

                    redirectPort="8443" />

 

Tomcat啓動分析

主要是分析幾個bin下的腳本

 

Tomcat體系結構(這裏還沒怎麼看懂,先放一下吧

相關文章
相關標籤/搜索