主要講解Tomcat的 安裝與使用,講解ubuntu版本和windows。
下載與安裝:
1)到apache官網(wǎng)。www.apache.org http://jakarta.apache.org(產(chǎn)品的主頁(yè))
2)
安裝版:window (exe、msi) linux(rmp)
壓縮版:window(rar,zip) linux(tar,tar.gz)建議下載壓縮版
3)下載壓縮版,解壓到本地
解壓后的文件夾如下:windows和linux下都是一樣的。

運(yùn)行和關(guān)閉tomcat
windows啟動(dòng)軟件:
到/bin目錄下找到startup.bat ,雙擊這個(gè)文件
彈出命令窗口,顯示如下:表示運(yùn)行正常

ubuntu下啟動(dòng)軟件:
到/bin目錄下打開(kāi)終端,輸入命令:./startup.sh
顯示信息如下:

打開(kāi)瀏覽器,輸出以下地址
http://localhost:8080
顯示如下

關(guān)閉軟件
windows下到/bin目錄下找到/shutdown.bat,雙擊這個(gè)文件即可!
ubuntu下在終端輸入(在bin目錄下):./shutdown.sh
Tomcat常見(jiàn)問(wèn)題:
閃退問(wèn)題
原因:tomcat軟件是java語(yǔ)言開(kāi)發(fā)的。 tomcat軟件啟動(dòng)時(shí),會(huì)默認(rèn)到系統(tǒng)的環(huán)境變量中查找一個(gè)名稱叫JAVA_HOME的變量。這個(gè)變量的作用找到tomcat啟動(dòng)所需的jvm。
windows下:
解決辦法: 到環(huán)境變量中設(shè)置JAVA_HOME的變量
JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30 (注意別配置到bin目錄下)
ubuntu下:
解決辦法:
$ sudo gedit /etc/environment #在environment中修改PATH,追加JDK路徑,添加CLASSPATH與JAVA_HOME后如下:export JAVA_HOME=/usr/lib/jvm/jdk8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib PATH="/usr/lib/jvm/jdk8/bin:/usr/local/sbin:/usr/local/bin: /usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
端口占用的錯(cuò)誤
原因: tomcat啟動(dòng)所需的端口被其他軟件占用了!
解決辦法:
a)關(guān)閉其他軟件程序,釋放所需端口
b)修改tomcat軟件所需端口
c)找到并修改/conf/server.xml文件
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Tomcat的目錄結(jié)構(gòu):
|-bin: 存放tomcat的命令。catalina.bat(sh) 命令:startup.bat(sh) -> catalina.bat(sh) startshutdown.bat - > catalina.bat(sh) stop|- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。|-lib:支持tomcat軟件運(yùn)行的jar包。其中還有技術(shù)支持包,如servlet,jsp|-logs:運(yùn)行過(guò)程的日志信息|-temp: 臨時(shí)目錄|-webapps: 共享資源目錄。web應(yīng)用目錄。(注意不能以單獨(dú)的文件進(jìn)行共享)|-work: tomcat的運(yùn)行目錄。jsp運(yùn)行時(shí)產(chǎn)生的臨時(shí)文件就存放在這里
配置文件的修改:
server.xml的修改
端口,和編碼的修改:
<Connector port="8080" #這里修改端口 protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" #解決大多數(shù)中文編碼問(wèn)題/>
修改host主機(jī)
<Host name="localhost"#默認(rèn)的主機(jī)名,這里修改后,還需修改系統(tǒng)的host文件 appBase="webapps"#默認(rèn)存放工程的文件夾 unpackWARs="true" autoDeploy="true">
修改訪問(wèn)工程的路徑不建議修改:
打開(kāi)server.xml,在這個(gè)主機(jī)中增加一個(gè)Context即可
即可以完成項(xiàng)目發(fā)布,之后通過(guò)?localhost:8080/hello就可以訪問(wèn)該目錄

Context表示訪問(wèn)的虛擬路徑,path表示要訪問(wèn)的網(wǎng)頁(yè)下文路徑,docBase表示要訪問(wèn)的文件夾所在路徑,reloadable表示是否在修改之后進(jìn)行重新啟動(dòng),如果使用eclipse開(kāi)發(fā)建議設(shè)置為false,因?yàn)樵趀clipse中會(huì)通過(guò)debug進(jìn)行啟動(dòng)。
web.xml的修改
主頁(yè)的修改
<welcome-file-list> <welcome-file>index.html</welcome-file>#一般創(chuàng)建web項(xiàng)目時(shí)默認(rèn)的主頁(yè)是index.html index.jsp <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file>#;你可以修改成你的將你的主頁(yè)放置在工程根目錄就行; <welcome-file>hello.jsp</welcome-file>#比如加一個(gè)你自己的主頁(yè); </welcome-file-list>
是否列出列表
listings表示是否在顯示頁(yè)面時(shí)打開(kāi)文件列表,建議在調(diào)試時(shí)打開(kāi),方便查詢一些特殊的網(wǎng)頁(yè)文件,比如文件名太長(zhǎng)的等;
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value>#將此去改為true </init-param> <load-on-startup>1</load-on-startup> </servlet>
修改后例子:

web應(yīng)用和目錄結(jié)構(gòu):
|- WebRoot : web應(yīng)用的根目錄 |- 靜態(tài)資源(html+css+js+image+vedio) |- WEB-INF : 固定寫法。 |-classes: (可選)固定寫法。存放class字節(jié)碼文件 |-lib: (可選)固定寫法。存放jar包文件。 |-web.xml注意:1)WEB-INF目錄里面的資源不能通過(guò)瀏覽器直接訪問(wèn)2)如果希望訪問(wèn)到WEB-INF里面的資源,就必須把資源配置到一個(gè)叫web.xml的文件中。
URL簡(jiǎn)介:
URL全名叫統(tǒng)一資源定位符,用于定位互聯(lián)網(wǎng)的資源。 問(wèn)題: http://localhost:8080/examples/hello.html http:// 協(xié)議。http協(xié)議。 localhost 域名。為了找到IP地址。 本地域名: localhost 外部域名:www.baidu.com 8080: tomcat默認(rèn)的端口 3306:mysql數(shù)據(jù)庫(kù)的端口 1521: orace數(shù)據(jù)庫(kù)的端口。 /examples: web應(yīng)用的名稱。默認(rèn)情況下,在webapps目錄下找 /hello.html : 資源名稱。
手動(dòng)開(kāi)發(fā)動(dòng)態(tài)資源(web)
最簡(jiǎn)單的例子:
在Tomcat文件下的webapps/examples 文件下建立一個(gè)html的文件,比如我建立了hello.html:
I am peacethis is test
運(yùn)行Tomcat,在瀏覽器里面輸入http://localhost:8080/examples/hello.html.顯示如下:

手動(dòng)servlet的例子:
Servlet : 用java語(yǔ)言來(lái)編寫動(dòng)態(tài)資源的開(kāi)發(fā)技術(shù)。
Servlet類只能交給tomcat服務(wù)器運(yùn)行!(開(kāi)發(fā)者自己不能運(yùn)行)
Servlet手動(dòng)編寫步驟:
- 導(dǎo)入servlet的jar包:在Tomcat目錄的lib文件下:

- 編寫一個(gè)類,繼承HttpServlet并覆蓋doGet的方法:如下:
package com.rlovep.servlet;import java.io.IOException;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Hander extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解決中文亂碼問(wèn)題 resp.setContentType("text/html;charset=utf-8"); //向?yàn)g覽器輸出時(shí)間 resp.getWriter().write("這是第一個(gè)servlet程序。當(dāng)前時(shí)間為:"+new Date()); }}
- 在工程目錄下找到build文件,將對(duì)應(yīng)類class的字節(jié)碼(包括包文件)拷貝到:apache-tomcat-8.0.26/webapps/examples/WEB-INF/classes下

修改/examples/WEB-INF/web.xml的文件:
增加如下內(nèi)容:
<!-- 配置一個(gè)servlet程序 --> <servlet> <!-- servlet的內(nèi)部名稱 ,可以自定義--> <servlet-name>HelloServlet</servlet-name> <!-- servlet類名: 包名+簡(jiǎn)單類名--> <servlet-class>com.rlovep.servlet.Hander</servlet-class> </servlet> <servlet-mapping> <!-- servlet的內(nèi)部名稱,和上面的名稱保持一致!!!--> <servlet-name>HelloServlet</servlet-name> <!-- servlet的訪問(wèn)名稱: /名稱 --> <url-pattern>/hello</url-pattern> </servlet-mapping>
在瀏覽器中輸入:http://localhost:8080/examples/hello.顯示如下:

建立成功
工具開(kāi)發(fā)動(dòng)態(tài)資源
- 創(chuàng)建web project (javaweb工程)ubuntu下是建立Dynamic web project
2.在WebRoot下建立靜態(tài)資源文件:index.html
3.在src下建立動(dòng)態(tài)資源文件
3.1 new -> Servlet( servlet的代碼生成器)
3.2 寫pacakge -> class名 -> 修改mapping url

啟動(dòng)tomcat服務(wù)器
訪問(wèn)servlet
主頁(yè):http://localhost:8080/HttpProtocl

servlet:http://localhost:8080/HttpProtocl/Auto

程序下載地址
點(diǎn)擊這里
來(lái)自一條小鯊魚(yú)(rlovep.com)