Servlet是服務器小應用程序(http/ftp等) ,用來完成B/S架構下客戶端請求的響應處理 。平臺獨立,性能優良,能以線程方式運行 ,Servlet API爲Servlet提供了統一的編程接口。html
Servlet通常在容器中運行,常見的Servlet容器: java
Tomcat (其下載、安裝和運行請參考視頻文件) Jetty / Resinweb
一.背景知識編程
1.經常使用的Web服務器 windows
·IIS 應用服務器 瀏覽器
·Apache web服務器(處理靜態頁面) tomcat
·Tomcat JSP/Servlet容器 安全
2.一般的動態網頁技術 服務器
·CGI (Common GateWay Interface)架構
·API經常使用的有(NSAPI,ISAPI)
·ASP(Active Server Page)
·PHP(Personal Home Page)
·JSP/Servlet (Java Server Page)
二.tomcat
1.tomcat目錄結構
·bin: 存放各類平臺下啓動和關閉Tomcat的腳本文件。
·startup.bat是windows下啓動tomcat的文件,
·shutdown.bat是關閉tomcat的文件。
·common: 在common目錄下的lib目錄,存放Tomcat服務器和全部web應用都能訪問的JAR。
·shared: 在shared目錄下的lib目錄,存放全部web應用能訪問的,但Tomcat不能訪問的JAR。
·server: 在server/webapps目錄中,存放Tomcat自帶的兩個APP-admin和manager應用,來管理Tomcat-web服務用的。
·work : Tomcat把各類由jsp生成的servlet文件放在這個目錄下。
·temp : 臨時活頁夾,Tomcat運行時候存放臨時文件用的。
·logs : 存放Tomcat的日誌文件
·webapps: web應用的發佈目錄,把 java開發的web站點或war文件放入這個目錄下就能夠經過tomcat服務器訪問了。
·conf : Tomcat的各類配置文件,最重要的是 server.xml.
2.tomcat啓動與中止
·startup shutdown
·catalina start catalina stop
·catalina debug 調試錯誤的時候
·run exit help
·設置環境變量JAVA_HOME
·shutdown.batà當心使用
3.Tomcat配置文件
·conf/server.xml
服務器的主配置文件
·conf/web.xml
定義全部Web應用的配置
·缺省的Servlet定義和MIME類型定義
·conf/tomcat-user.xml
定義了tomcat用戶的信息(用於權限與安全)
4.conf/server.xml
·頂層類元素: 位於整個配置文件的頂層, <Server>;
·鏈接器類元素[Connectors ]: 客戶和服務(容器類元素)間的通信接口。接受客戶請求,返回響應結果;<Connector>
·容器類元素[Containers]: 處理客戶請求而且生成響應結果,包含3個:<Engine> <Host> <Context>
·嵌套類元素[Nested Components]: 能夠加入到容器中的元素,包括:<logger> <Valve><Realm>等
·一個<Server>包含一個或多個<Service>,一個<Service>包含惟一一個< Engine>和一個或多個<Connector>,多個 <Connector>共享一個<Engine>;一個<Engine>包含多個<Host>,每一個 <Host>定義一個虛擬主機,包含一個或多個web應用<Context>; <Context>元素是表明一個在虛擬主機上運行的Web應用。
·Please note that for tomcat 5.x, unlike tomcat 4.x, it is NOT recommended to place <Context> elements directly in the server.xml file. Instead, put them in the META-INF/context.xml directory of your WAR file or the conf directory as described above.
5.什麼是MIME
·Multipurpos Internet Mail Extension
·指明白傳送內容的格式
·最先用於郵件附件
·傳遞文件的頭信息
·MIME類型就是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。多用於指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
三.HTTP協議
1.HTTP協議基礎:客戶端請求
·GET /latest.html HTTP/1.1
Host: www.foo.com
Content-Type: text/html
…
{空行}
·POST /servlet/serv HTTP/1.1
Host: www.foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 32
username=billgates&password=hehe
·HTTP/1.1 200 OK ---服務器響應
Date: Fri,31 Dec 2003 10:23:34 GMT
Content-Type: text/html
Content-length: 280
<html>
……
</html>
四.Web Application的概念
1·Web Application Name
·WEB-INF 靜態文件直接放在這,就可訪問
··web.xml
該web app的配置文件
··lib
該web app用到的庫文件
··classes
存放編譯好的servlet
·META-INF
··存放該web app的上下文信息,符合J2EE標準
2·Web Application能夠直接放在webapp下面,也能夠經過配置文件指定到其餘目錄 <host>裏面
<Context path=「/虛擬路徑名「 docBase=」目錄位置" debug="0" reloadable="true"/>