轉自javaresearch.com由timgball 整理
Tomcat是一個免費的開源Web服務器,最新版本是5.5.1,支持Servlet2.4,JSP2.0,非常適合初學者學習Java Web開發。下面是一個簡單的Tutorial:[安裝Tomcat],在安裝Tomcat之前,必須首先安裝JDK1.4,因為Tomcat本身是純Java程序,需要JVM運行,此外JSP頁面需要javac來編譯運行,因此必須安裝JDK(單裝JRE不行)。然后從Tomcat官方站點下載最新版的Tomcat:Windows版本:http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.5.1/bin/jakarta-tomcat-5.5.1.zip ,Linux版本:http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.5.1/bin/jakarta-tomcat-5.5.1.tar.gz
Tomcat不需安裝,直接解壓到某個目錄即可(請注意整個路徑不要有中文名)。
[配置Tomcat]
先設置如下環境變量:
JAVA_HOME = <JDK安裝目錄>
TOMCAT_HOME = <Tomcat根目錄>
在Path最后附加:
Path = ......;%JAVA_HOME%/bin
如果使用linux,請用export設置環境變量。
然后打開控制台窗口,輸入javac,如果能夠運行,說明能找到JDK的編譯器,輸入java -version,如果顯示1.4.x_xx則配置正確,否則檢查是否安裝了低版本的JDK(比如1.3版本),如果有低版本的JDK,把它從Path中移除即可。
[啟動和關閉Tomcat]
打開目錄%TOMCAT_HOME%/bin,運行startup.bat(linux下是startup.sh),稍等片刻,直到出現信息: Server startup in XXXXX ms表示啟動成功!要關閉Tomcat,最好不要直接關掉控制台窗口,運行%TOMCAT_HOME%/bin/shutdown.bat(linux下是shutdown.sh)。
[第一個JSP程序]
運行在Tomcat的Web程序全部放在%TOMCAT_HOME%/webapps下,每個應用單獨一個目錄,我們開始寫第一個"Hello, world"JSP頁面。
首先,我們在%TOMCAT_HOME%/webapps下新建一個hello目錄,作為整個Web應用程序的根目錄,然后在hello目錄下新建hello.jsp,用任何文本編輯器輸入以下內容:
<% out.println("Hello, world."); %>
然后啟動Tomcat,打開瀏覽器,輸入http://localhost:8080/hello/hello.jsp,稍等片刻,瀏覽器顯示“Hello, world.”我們的第一個JSP運行成功!
[Web開發基礎]
J2EE的Web應用程序有標准的格式,我們先創建如下結構的目錄(請嚴格區分大小寫):
hello |
+- WEB-INF |
+- classes |
+- lib
+- web.xml
所有需要的class文件均以WEB-INF/classes/為根目錄按包名存放,所有的jar文件全部放在WEB-INF/lib下,Web服務器(比如Tomcat)會自動把classes和lib下的所有jar文件動態添加到CLASSPATH中,其中classes目錄優先級高,如果classes和lib中某個jar的class全名相同,則只會找到classes下的文件。
WEB-INF/web.xml是標准配置文件,負責注冊Servlet,Filter及其它用到的資源。在我們的hello應用中,因為沒有web.xml,Tomcat會使用缺省的配置文件(什么也不配置)。
一般說來,自己寫的class包括servlets,filter,javaBean等編譯后放在classes目錄下,用到的第三方jar(如struts.jar)放在lib下。
JSP文件可放在根目錄下的任意位置,但是位置不同會影響URL的格式。以上面的hello應用為例,我們指定hello/hello.jsp,則URL為http://localhost:8080/hello/hello.jsp,若是放在hello/admin/hello.jsp,則相應的URL變為http://localhost:8080/hello/admin/hello.jsp,若是放在WEB-INF下,則用戶不可直接訪問此JSP文件,只能通過RequestDispatch間接訪問,此方法可向用戶屏蔽真實的URL,在struts等Web框架中被廣泛使用。
[發布Web應用程序]
發布Web應用程序非常簡單,直接使用jar命令將整個hello目錄打包,命名為xxx.war,然后復制到另一台計算機的%TOMCAT_HOME%/webapps/下(或者別的Web服務器如Resin,WebLogic也可),啟動服務器,它會自動找到這個war文件並解壓安裝。
./catalina.sh start 開啟tomcat服務
./catalina.sh stop 關閉tomcat服務
Tomcat容器入門介紹
Tomcat環境配置
PS:JDK的安裝這里就不講了,找到安裝包直接下一步下一步就行了。
1、配置JDK
在Windows10下,找到環境變量
在環境變量中添加JDK主目錄
格式為:JAVA_HOME= 指向你的jdk的主目錄(並不是bin文件目錄)
在環境變量中添加路徑
格式為:path = %JAVA_HOME%\bin;
在環境變量中添加classpath
格式為:classpath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
至此,JDK就配置完了。
PS:如果在不配置JAVAHOME的前提下可以用如下方法啟動tomcat
在startup.bat的第25行中添加set JAVA_HOME=JKD路徑
2、啟動tomcat
到 tomcat 主目錄下的bin/startup.bat點擊啟動
3、驗證是否安裝成功
在瀏覽器中輸入http://127.0.0.1:8080(8080是默認端口,如果該端口被占用需要到主目錄/conf/server.xml中改端口號)
出現這個界面,就表示tomcat已經配置成功了。
Tomcat配置異常及其解決
1、JAVA_HOME 配置錯誤,或者沒有配置
這時候,可以按照上面的步驟在來一次,在命令行中輸入java -version,如果顯示
就表示成功了。
2、如果你的機器已經占有了8080 端口,則無法啟動
解決方法
(1) 你可以8080 先關閉
netstat –an
netstat –anb 來查看誰占用該8080
(2) 主動改變tomcat的端口.
到 conf/server.xml 文件中修改
3、 能夠正常啟動,但是會導航到另外一個頁面
去修改工具->管理加載項,把默認的導航給禁用即可
4、瀏覽器顯示404 Not Found
在訪問 tomcat時候,一定要保證 tomcat 服務器是啟動,不然就會出現這種錯誤。
Tomcat的目錄結構文件
bin: 啟動和關閉tomcat的bat文件
conf: 配置文件
-->*server.xml *: 該文件用於配置和 server 相關的信息, 比如 tomcat啟動端口后,配置Host, 配置Context 即web應用
-->web.xml : 該文件配置與 web應用(web應用就相當於是一個 web站點)
-->tomcat-users.xml: 該文件用戶配置tomcat 的用戶密碼 和 權限
lib 目錄: 該目錄放置運行tomcat 運行需要的jar包
logs 目錄:存放日志, 當我們需要去查看日志的時候,很有用!,當我們啟動tomcat錯誤時候,可以查詢信息.
webapps 目錄: 該目錄下,放置我們的web應用(web 站點), 比如:
建立 web1 目錄 下面放置我們的html 文件 jsp 文件..圖片... 則 web1就被當做一個web應用管理起來(☞ 特別說明tomcat 6.0 以后支持 tomcat 5 版本 還有別的設置)
work: 工作目錄: 該目錄用於存放jsp被訪問后 生成的對應的 server文件 和.class文件
如何訪問一個web應用的某個文件
PS:想要訪問一個WEB應用中的某個文件可以采用url(Uniform Resource Locator)統一資源定位符來訪問,其格式如上。
Tomcat應用部署目錄結構規范
Tomcat管理虛擬目錄
需求:當希望將web應用部署到非webapps目錄下時,怎么解決這問題。
PS:可以通過虛擬目錄配置技術解決。
配置步驟
1、找到server.xml文件
2、編輯host節點,添加Context path
<Context path="/應用名" docBase="web應用所在的絕對路徑"/>
例如:要訪問該web應用根目錄下的hello.html文件
實際訪問時輸入的地址:http://localhost:8088/應用名/hello.html
3、重啟、重新部署生效
context的幾個屬性的說明
path: 應用名稱
docbase: web應用所在的絕對路徑
reloadable: 如果設為ture ,表示 tomcat 會自動更新 web應用,但是這個開銷大,建議在開發過程中,可以設為true, 但是真的發布了,則應當設為false
upackWAR: 如果設為 ture ,則自動解壓,否則不自動解壓.
PS:war包的打包和Tomcat怎么部署war包可以使用搜索引擎找到。
配置域名
實現的步驟如下:
(1) 在C:\WINDOWS\system32\drivers\etc 下的host文件 添加127.0.0.1 www.myweb.com
(2) 在tomcat 的server.xml文件添加主機名
<Host name="www.myweb.com" appBase="d:\web3”> <Context path="/" docBase="d:\web3" /> </Host>
(3) 在d:\web3 加入了一個 /WEB-INF/web.xml 把 hello2.html設為首頁面,如果連端口都不希望帶,則可以把tomcat的啟動端口設為80即可.
(4) 重啟生效
Tomcat框架機制
Tomcat配置默認主機
在tomcat/conf/server.xml 文件
<Engine name="Catalina" defaultHost="主機名">
如:<Engine name="Catalina" defaultHost="www.myweb.com">
----------參考《韓順平.細說Servlet》