下載和安裝Tomcat服務器
下載Tomcat安裝程序包:http://tomcat.apache.org/,下載一個zip版本,解壓到本地即完成了Tomcat的安裝。
測試是否安裝成功:進入Tomcat目錄,雙擊 bin 目錄下的 startup.bat 文件啟動Tomcat服務器,在瀏覽器中輸入http://localhost:8080/,有內容出來就表示成功了。
Tomcat服務器端口的配置
Tomcat的所有配置都放在conf文件夾之中,里面的server.xml文件是配置的核心文件。
如果想修改Tomcat服務器的啟動端口,則可以在server.xml配置文件中的Connector節點進行的端口修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
需要注意的是,一旦服務器中的*.xml文件改變了,則Tomcat服務器就必須重新啟動,重新啟動之后將重新讀取新的配置信息。
Tomcat服務器虛擬目錄的映射方式
Web應用開發好后,若想供外界訪問,需要把web應用所在目錄交給web服務器管理,這個過程稱之為虛似目錄的映射。那么在Tomcat服務器中,如何進行虛擬目錄的映射呢?總共有如下的幾種方式:
1、虛擬目錄的映射方式一:在server.xml文件的host元素中配置(注意:在Tomcat6之后中,不再建議在server.xml文件中使用配置context元素的方式來添加虛擬目錄的映射,因為每次修改server.xml文件后,Tomcat服務器就必須要重新啟動后才能重新加載server.xml文件。)
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host>
在<Host></Host>這對標簽加上<Context path="/JavaWebApp" docBase="F:\JavaWebDemoProject" />即可將在F盤下的JavaWebDemoProject這個JavaWeb應用映射到JavaWebApp這個虛擬目錄上,JavaWebApp這個虛擬目錄是由Tomcat服務器管理的,JavaWebApp是一個硬盤上不存在的目錄,是我們自己隨便寫的一個目錄,也就是虛擬的一個目錄,所以稱之為"虛擬目錄"。其中,Context表示上下文,代表的就是一個JavaWeb應用,Context元素有兩個屬性,path:用來配置虛似目錄,必須以"/"開頭。docBase:配置此虛似目錄對應着硬盤上的Web應用所在目錄。
使用瀏覽器訪問"/JavaWebApp"這個虛擬目錄下的1.txt這個web資源,訪問結果如下:
2、虛擬目錄的映射方式二:讓tomcat服務器自動映射
tomcat服務器會自動管理webapps目錄下的所有web應用,並把它映射成虛似目錄。換句話說,tomcat服務器webapps目錄中的web應用,外界可以直接訪問。
例如:把F盤下的JavaWebDemoProject這個JavaWeb應用直接copy到tomcat服務器webapps目錄中,此時Tomcat服務器就會自動為JavaWebDemoProject這個JavaWeb應用映射一個同名的虛擬目錄"/JavaWebDemoProject",然后就可以使用瀏覽器訪問這個JavaWeb應用的資源了。
3、虛擬目錄的映射方式三:
在tomcat服務器的\conf\Catalina\localhost目錄下添加一個以xml作為擴展名的文件,xml文件的名字可以任意取,比如下面的JavaWebDemo.xml,其中context元素的path指定的路徑就是實際的物理位置,而xml文件的名稱就是服務器上訪問的名稱。
如:<Context docBase="F:\JavaWebDemoProject" />
http://localhost:8080/JavaWebDemo/2.txt
使用這種方式映射虛擬目錄的最大好處是修改了配置文件后不用重啟Tomcat服務器
Tomcat服務器配置虛似主機
配置虛似主機就是配置一個網站。
在Tomcat服務器配置一個虛擬主機(網站),需要修改conf文件夾下的server.xml這個配置文件,使用Host元素進行配置,打開server.xml,可以看到Tomcat服務器自帶的一個名稱為localhost的虛擬主機(網站),將開發好的JavaWeb應用放到webapps文件夾下,然后就可以使用"http://localhost:端口號/JavaWebAppName"的方式去訪問了,其實訪問的就是name是"localhost"的那台虛擬主機(Host),這台虛擬主機管理webapps文件夾下的所有web應用。
首先,新配置一個虛擬主機,虛擬主機的name是"www.john.cn",虛擬主機"www.john.cn"現在管理着JavaWebApps文件夾下的所有web應用。當我們要訪問name是"www.john.cn"的這個虛擬主機時,就可以使用"域名(www.john.cn)"去訪問,注意一下appBase="F:\JavaWebApps",這里的JavaWebApps文件夾代表的不是一個項目的根目錄,而是一個存放了一個或者多個JavaWeb應用的文件夾。
然后,windows系統中注冊域名:配置的主機(網站)要想通過域名被外部訪問,必須在DNS服務器或windows系統中注冊訪問網站時使用的域名,找到"C:\Windows\System32\drivers\etc"目錄下的hosts文件。
127.0.0.1 www.john.cn
這里的127.0.0.1,可以替換為本機的ip地址,通過命令提示符中輸入ipconfig可以查到。
這樣就可以在瀏覽器中進行訪問了:http://www.john.cn:8080/JavaWebDemoProject/2.txt
JavaWeb應用的組成結構
開發JavaWeb應用時,不同類型的文件有嚴格的存放規則,否則不僅可能會使web應用無法訪問,還會導致web服務器啟動報錯
WebRoot →Web應用所在目錄,一般情況下虛擬目錄要配置到此文件夾當中。
┝WEB-INF:此文件夾必須位於WebRoot文件夾里面,而且必須以這樣的形式去命名,字母都要大寫。
┝web.xml:配置文件,有格式要求,此文件必須以這樣的形式去命名,並且必須放置到WEB-INF文件夾中。
web.xml的格式可以直接從Tomcat中參考得到:找到Tomcat目錄下的webapps\ROOT\WEB-INF這個目錄下的web.xml文件,把這個文件拷貝到我們新建的WEB-INF文件夾中,並修改這個web.xml文件,把里面的注釋刪除掉,只留下如下所示的代碼即可:
web.xml :
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1" metadata-complete="true"> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> </web-app>