這章節主要學習:如何使用tomcat來發佈一個web應用:helloapphtml
1.tomcat/conf/server.xml中的以下配置java
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
......
</Host>web
決定了:名字爲localhost的虛擬主機,其應用的缺省目錄是webapps;也就是說:想要在此虛擬主機上發佈某一個web應用(好比這裏的helloapp),則須要將此web應用的所在目錄放到webapps目錄中。而一個web應用的缺省入口,就是該web應用的根目錄名。這就是說,能夠訪問http://localhost:8080/helloapptomcat
2.在helloapp這個web應用中,其自身的配置文件是 helloapp/WEB-INF/web.xml文件(此文件內容是區分大小寫的),其內容爲:app
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
'-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/j2ee/dtds/web-app_2_3.dtd'>
<web-app>
<servlet>
<servlet-name>dispatcher</servlet-name> //用於爲servlet類定義一個名字,這樣當在html中看到dispatcher,就知道它表示一個servlet類了
<servlet-class>mypack.DispatcherServlet</servlet-class> //用於表示此servlet類的完整類名(也包括包名)。這個類名同時也就告訴了到哪裏能夠找到該類(helloapp/WEB-INF/classes/mypack/DispatcherServlet.class)
</servlet>
<servlet-mapping> //映射可支持通配符,一個servlet能夠對應多個servlet-mapping
<servlet-name>dispatcher</servlet-name> //用於指定要進行映射的servlet的名稱。須要和上面的<servlet>中的名稱對應,這樣才能找到實際的servlet類
<url-pattern>/dispatcher</url-pattern> //用於指定此servlet在URL上的映射,即相對(相對是相對此web應用的缺省入口)URL路徑。這樣訪問http://localhost:8080/helloapp/dispatcher就能夠訪問此servlet了
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.htm </welcome-file>
</welcome-file-list>
//這裏設置了:此web應用的默認主頁。即若客戶端訪問:http://localhost:8080/helloapp/ (注意:這是一個目錄),就會默認默認定位到此文件:login.htm;這與訪問http://localhost:8080/helloapp/login.htm是同樣的效果webapp
<taglib> //定義jsp標籤的位置
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location> //指定TLD文件的存放位置
</taglib>
</web-app>jsp
3.在servlet類的定義實現中,經過對輸入的ServletRequest對象(來自客戶端發出的http請求正文)進行再次封裝,就能夠將此ServletRequest對象再轉發給某個jsp文件。在由此jsp文件處理後,在經過ServletResponse對象得到處理結果,並將此結果交給客戶端。學習
4.tomcat能夠運行:A.採用開放式目錄結構的web應用(即非壓縮的);B.web應用的打包文件(WAR文件)。開發完畢的web應用,應該是通過打包(用jar cvf命令進行打包)後,發佈WAR文件。tomcat啓動後,會把webapps目錄下的全部WAR文件自動展開爲開放式的目錄結構(所以,webapps中不能提早存在同名目錄)url
5.若是不想將web應用發佈到默認的webapps目錄中,而是發佈到其餘目錄中,在須要使用<Context>元素來告知新的位置(docBase)spa
6.若是要使用JSP標籤,則須要以下組成:一個處理標籤的類(class文件)+一個TLD文件+在web.xml中配置<taglib>元素+在jsp文件中使用標籤<前綴名:標籤名>