Servlet與web容器的配合:java
1)客戶端向Web服務器發起一個HTTP請求。web
2)HTTP請求被Web服務器接受,若是請求的是靜態頁面,則由Web服務器負責處理。若是請求的是Java Web組件(Servlet或者JSP),則移交給Web容器。Web容器能夠在主 機的同一個進程、不一樣的進程或其餘的Web服務主機的進程中啓動。服務器
3)Web容器根據Servlet的配置文件肯定調用的具體Servlet類,並把request對象、response對象傳給它。網絡
4)Servlet經過request對象知道客戶端的使用者是誰,客戶的請求信息是什麼和其餘的一些信息。Servlet處理完請求後把要返回的信息放入response對象返回到客戶端。app
5)一旦Servlet完成了請求的處理,Web容器就會刷新response,把控制權返回給web服務器。url
WEB-INF很重要的文件,不可或缺,lib放網頁須要用到的Java包等;server
總結:xml
HTTP是一套計算機在網絡中通訊的一種規則
HTTP請求包含請求行、請求頭、空行和消息體
HTTP響應包含狀態行、響應頭、空行和消息體
Web服務器存在缺陷
CGI程序嚴重消耗服務器資源,Servlet能夠消除這種缺陷
Web容器給處於容器中的應用程序組件提供一個環境
一個web應用程序包括配置文件、靜態文件、JSP、類文件和包
Tomcat既是一個優秀的JSP/Servlet容器,也是一個HTTP服務器
server.xml和web.xml是Tomcat主要的配置文件
welcome-file-list指示服務器在收到一個目錄名而不是文件名的URL時,使用哪一個文件;對象
服務器啓動首先讀取 web.xml文件;blog
web.xml文件的配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- 註冊 --> <servlet> <!-- 註冊名(必須惟一);通常命名爲,本身書寫的servlet名字 --> <servlet-name>TestHttpServlet</servlet-name> <!-- 給定書寫的servlet的全類名(包名+類名) (目的是讓web容器採用反射機制來建立servlet的實例) --> <servlet-class>com.lovo.servlet.TestHttpServlet</servlet-class> </servlet> <!-- 映射servlet 路徑 --> <servlet-mapping> <!-- 給註冊的servlet映射命名(註冊,名字和映射名字同樣) --> <servlet-name>TestHttpServlet</servlet-name> <!-- 映射路徑,以類名命名 --> <url-pattern>/one</url-pattern> </servlet-mapping> </web-app>