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

運行和關閉tomcat
windows啟動軟件:
到/bin目錄下找到startup.bat ,雙擊這個文件
彈出命令窗口,顯示如下:表示運行正常

ubuntu下啟動軟件:
到/bin目錄下打開終端,輸入命令:./startup.sh
顯示信息如下:

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

關閉軟件
windows下到/bin目錄下找到/shutdown.bat,雙擊這個文件即可!
ubuntu下在終端輸入(在bin目錄下):./shutdown.sh
Tomcat常見問題:
閃退問題
原因:tomcat軟件是java語言開發的。 tomcat軟件啟動時,會默認到系統的環境變量中查找一個名稱叫JAVA_HOME的變量。這個變量的作用找到tomcat啟動所需的jvm。
windows下:
解決辦法: 到環境變量中設置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"
端口占用的錯誤
原因: tomcat啟動所需的端口被其他軟件占用了!
解決辦法:
a)關閉其他軟件程序,釋放所需端口
b)修改tomcat軟件所需端口
c)找到并修改/conf/server.xml文件
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Tomcat的目錄結構:
|-bin: 存放tomcat的命令。catalina.bat(sh) 命令:startup.bat(sh) -> catalina.bat(sh) startshutdown.bat - > catalina.bat(sh) stop|- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。|-lib:支持tomcat軟件運行的jar包。其中還有技術支持包,如servlet,jsp|-logs:運行過程的日志信息|-temp: 臨時目錄|-webapps: 共享資源目錄。web應用目錄。(注意不能以單獨的文件進行共享)|-work: tomcat的運行目錄。jsp運行時產生的臨時文件就存放在這里
配置文件的修改:
server.xml的修改
端口,和編碼的修改:
<Connector port="8080" #這里修改端口 protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" #解決大多數中文編碼問題/>
修改host主機
<Host name="localhost"#默認的主機名,這里修改后,還需修改系統的host文件 appBase="webapps"#默認存放工程的文件夾 unpackWARs="true" autoDeploy="true">
修改訪問工程的路徑不建議修改:
打開server.xml,在這個主機中增加一個Context即可
即可以完成項目發布,之后通過?localhost:8080/hello就可以訪問該目錄

Context表示訪問的虛擬路徑,path表示要訪問的網頁下文路徑,docBase表示要訪問的文件夾所在路徑,reloadable表示是否在修改之后進行重新啟動,如果使用eclipse開發建議設置為false,因為在eclipse中會通過debug進行啟動。
web.xml的修改
主頁的修改
<welcome-file-list> <welcome-file>index.html</welcome-file>#一般創建web項目時默認的主頁是index.html index.jsp <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file>#;你可以修改成你的將你的主頁放置在工程根目錄就行; <welcome-file>hello.jsp</welcome-file>#比如加一個你自己的主頁; </welcome-file-list>
是否列出列表
listings表示是否在顯示頁面時打開文件列表,建議在調試時打開,方便查詢一些特殊的網頁文件,比如文件名太長的等;
<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應用和目錄結構:
|- WebRoot : web應用的根目錄 |- 靜態資源(html+css+js+image+vedio) |- WEB-INF : 固定寫法。 |-classes: (可選)固定寫法。存放class字節碼文件 |-lib: (可選)固定寫法。存放jar包文件。 |-web.xml注意:1)WEB-INF目錄里面的資源不能通過瀏覽器直接訪問2)如果希望訪問到WEB-INF里面的資源,就必須把資源配置到一個叫web.xml的文件中。
URL簡介:
URL全名叫統一資源定位符,用于定位互聯網的資源。 問題: http://localhost:8080/examples/hello.html http:// 協議。http協議。 localhost 域名。為了找到IP地址。 本地域名: localhost 外部域名:www.baidu.com 8080: tomcat默認的端口 3306:mysql數據庫的端口 1521: orace數據庫的端口。 /examples: web應用的名稱。默認情況下,在webapps目錄下找 /hello.html : 資源名稱。
手動開發動態資源(web)
最簡單的例子:
在Tomcat文件下的webapps/examples 文件下建立一個html的文件,比如我建立了hello.html:
I am peacethis is test
運行Tomcat,在瀏覽器里面輸入http://localhost:8080/examples/hello.html.顯示如下:

手動servlet的例子:
Servlet : 用java語言來編寫動態資源的開發技術。
Servlet類只能交給tomcat服務器運行!(開發者自己不能運行)
Servlet手動編寫步驟:
- 導入servlet的jar包:在Tomcat目錄的lib文件下:

- 編寫一個類,繼承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 { //解決中文亂碼問題 resp.setContentType("text/html;charset=utf-8"); //向瀏覽器輸出時間 resp.getWriter().write("這是第一個servlet程序。當前時間為:"+new Date()); }}
- 在工程目錄下找到build文件,將對應類class的字節碼(包括包文件)拷貝到:apache-tomcat-8.0.26/webapps/examples/WEB-INF/classes下

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

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

啟動tomcat服務器
訪問servlet
主頁:http://localhost:8080/HttpProtocl

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

程序下載地址
點擊這里
來自一條小鯊魚(rlovep.com)