JavaWeb Tomcat


1. Web相關概念

1.1. RCPTCP

我們經常使用的桌面程序叫做胖客戶端程序(Rich Client Program,簡稱RCP),例如QQExcelWord等軟件。這類桌面軟件需要安裝到電腦上才能運行,並會導致占用電腦硬盤空間越來越大,因此我們稱這類桌面程序為胖客戶端程序。

與胖客戶端程序相對的是瘦客戶端程序。瘦客戶端程序(Thin Client Program,簡稱TCP)一般都是Web程序,例如Web QQ、網上銀行等。這類瘦客戶端程序不需要在電腦安裝,只需要打開瀏覽器就可以運行。

1.2. C/SB/S

常見的的軟件系統結構分別為C/S結構和B/S結構,C/S結構意思是客戶端/服務器端體系結構,B/S結構意思是瀏覽器/服務器端體系結構。

C/SClient/Server)即客戶端/服務器端:

  • 優點:安全性比較好。
  • 缺點:軟件更新時同時更新服務器端和客戶端,比較麻煩。

B/SBrowser/Server)即瀏覽器/服務器端:

  • 優點:只需編寫服務器端程序。
  • 缺點:安全性比較差。

1.3. Web資源

在打開瀏覽器訪問某個網站或打開某個程序時,都是訪問Web程序的相關資源。而Web資源可以分為靜態資源和動態資源。

所謂靜態資源就是指訪問的網頁內容是始終不改變的,例如網頁中顯示的文本、圖片、視頻或視頻等內容都屬於靜態資源。而動態資源就是指訪問的網頁內容是可以通過服務器端呈現動態變化的,例如顯示用戶信息的列表、顯示本月消費記錄等內容都屬於動態資源。我們所學習的技術中例如HTML技術就屬於靜態資源內容,而例如ServletFilter就屬於動態資源內容。當然,除了Java Web技術外,還有很多技術是屬於動態資源的,例如ASPPHP技術等。

無論是靜態資源還是動態資源,我們在訪問時都需要打開瀏覽器,在瀏覽器的地址欄中輸入對應的地址(URL)。該地址是由“協議名://域名:端口號/路徑”組成的,就像訪問某個網站的頁面,例如http://www.baidu.com:80/index.html

1.4. Web服務器

對於靜態資源或者動態資源,需要存儲在Web服務器中,方便用戶訪問。Web服務器的作用是接收用戶的請求信息,並為用戶做出響應。

當然,對於Java Web程序而言,不僅需要Web服務器,還需要JSP/Servlet容器的。

我們常見使用的都是Web服務器和JSP/Servlet容器集成在一起的,下列就是比較流行的Web服務器:

  • Tomcat服務器:Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由ApacheSun 和其他一些公司及個人共同開發而成。也是目前應用最廣泛的Web服務器。
  • JBoss服務器:是全世界開發者共同努力的成果,一個基於J2EE的開放源代碼的應用服務器。
  • GlassFish服務器:是用於構建 Java EE 5應用服務器的開源開發項目基於 Sun Microsystems 提供的 Sun Java System Application Server PE 9 的源代碼以及 Oracle 貢獻的 TopLink 持久性代碼
  • Weblogic服務器:是美國Oracle公司出品的一個application server確切的說是一個基於JAVAEE架構的中間件,BEA WebLogic是用於開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的Java應用服務器。
  • Websphere服務器: IBM 的軟件平台。它包含了編寫、運行和監視全天候的工業強度的隨需應變 Web 應用程序和跨平台、跨產品解決方案所需要的整個中間件基礎設施,如服務器、服務和工具

2. 安裝Tomcat

2.1. Tomcat服務器介紹

Tomcat服務器是一個免費的開放源代碼的Web應用服務器,它是Apache軟件基金會(Apache Software Foundation)的jakarta項目中的一個核心項目,由ApacheSun和其他一些公司及個人共同開發而成。由於有了Sun的參與和支持,最新的ServletJSP規范總是能在Tomcat中得到體現。因為Tomcat技術先進、性能穩定、而且免費,因此深受Java開發人員的喜愛並得到了部分軟件開發商的認可,成為目前比較流行的Web應用服務器。

下面給出Tomcat服務器接收用戶請求並做出響應的圖解:

① 客戶端(通常是瀏覽器)訪問Web服務器,發送HTTP請求。

② Web服務器接收到請求后,傳遞給Servlet容器。

③ Servlet容器加載Servlet,產生Servlet實例后,向其傳遞表示請求和響應的對象。

④ Servlet實例使用請求對象得到客戶端的請求信息,然后進行響應的處理。

⑤ Servlet實例將處理結果通過響應對象發送回客戶端,容器負責確保響應正確送出,同時將控制返回給Web服務器。

2.2. 安裝Tomcat服務器

首先訪問Tomcat的官方網站,http://tomcat.apache.org/

在左邊菜單中,可以找到Download”選項,其下面包含Tomcat 8.0Tomcat 7.0Tomcat 6.0三個版本。選擇Tomcat 7.0

 

從上圖中看到“32-bit Windows zip”表示32位的Tomcat服務器,“64-bit Windows zip”表示64位的Tomcat服務器,根據操作系統選擇對應版本。

將下載的壓縮包解壓縮到指定的系統目錄中即可。

2.3. Tomcat目錄說明

目    錄

用    途

/bin

存放啟動和關閉Tomcat的腳本文件

/conf

存放Tomcat服務器的各種配置文件,其中包括server.xml、tomcat-users.xml和web.xml等配置文件

/lib

存放Tomcat服務器及所有Web應用程序都可以訪問的Jar文件

/logs

存放Tomcat服務器的日志文件

/temp

存放Tomcat服務器運行時產生的臨時文件

/webapps

當發布Web應用程序時,通常把Web應用程序的目錄及文件放到這個目錄下

/work

Tomcat將JSP生成的Servlet源文件和字節碼文件到這個目錄下

2.4. 啟動Tomcat服務器

Tomcat安裝目錄下的bin目錄中,鼠標雙擊startup.bat文件,啟動Tomcat服務器。

這時有可能出現上面的錯誤提示,“Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program”表示沒有設置JAVA_HOME環境變量或JRE_HOME環境變量沒有設置。要運行Tomcat服務器的前提是,需要先安裝JDK環境,並設置相關環境變量。

JDK環境變量設置需要以下三個:

  • JAVA_HOME:設置為JDK安裝目錄,例如C:\Tools\Java\jdk1.7.0_10。
  • CLASSPATH%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
  • Path; %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

JDK環境變量設置成功后,我們再次鼠標雙擊startup.bat文件

這時,打開瀏覽器,在地址欄中輸入http://localhost:8080,將出現以下頁面(Tomcat服務器的歡迎頁面)。

 

Tomcat安裝目錄的bin目錄下,鼠標雙擊shutdown.bat文件,可以關閉Tomcat服務器。

2.5. Tomcat啟動分析

利用文本編輯器打開Tomcat安裝目錄中的bin目錄中startup.bat文件,我們可以看到這樣一段代碼:

 

通過上面代碼,我們可以知道:在啟動Tomcat服務器之前,先判斷CATALINA_HOME環境變量是否為空。如果為空,就將當前目錄設為CATALINA_HOME的值,並判斷當前目錄下是否存在bin\catalina.bat文件。所以,如果將startup.bat文件放置到其他目錄中,再啟動Tomcat服務器時,就會報錯。

 

所以,我們需要設置CATALINA_HOME環境變量的值為Tomcat安裝目錄。

2.6. 啟動常見問題

訪問Tomcat服務主頁的地址是http://localhost:8080,其中localhost是指向本主機,8080表示端口號。端口號可能出現被其他程序占用的情況,如果出現這種情況,會提示以下錯誤:

上面的錯誤提示可以在Tomcat安裝目錄中的logs目錄中的catalina.xxxx-xx-xx.log日志文件找到,其中“java.net.BindException: Address already in use: JVM_Bind”該錯誤提示表示Tomcat服務的端口號已被占用。

我們可以啟動操作系統的命令行窗口,然后在命令行窗口中輸入netstat –ano”命令,查看是哪個程序占用了8080端口。

 

通過上面命令行窗口的提示,我們可以發現是被PID7872的程序占用。然后我們可以打開系統任務管理器,找到PID7872的程序進程。

選中PID7872的程序進程,鼠標右鍵選擇結束進程即可。這時可以再次正常啟動Tomcat服務器。

也可以修改Tomcat服務器地址的端口號,在Tomcat安裝目錄的conf目錄的server.xml文件中,可以找到這樣一段代碼:

 

將上面的代碼中,port改為“80”即可。這時再次啟動Tomcat服務器,在瀏覽器的地址欄輸入http://localhost:80即可訪問Tomcat服務的主頁。由於80端口是HTTP協議的默認端口,所以可以省略不寫,直接輸入http://localhost即可訪問。

但是,操作系統的IIS服務或其他服務可能占用80端口,同樣導致Tomcat服務器啟動失敗。可以打開系統服務窗口,關閉占用80端口的服務即可。

3. 創建Web應用

3.1. 創建Web靜態應用

通過Tomcat安裝目錄說明我們知道,Tomcat安裝目錄的webapps目錄是用於存放Web應用程序的。所以,我們可以將創建的Web靜態應用放置到該目錄中,具體步驟如下:

  • 進入到Tomcat安裝目錄的webapps目錄中,新建一個文件夾為“mydemo”。
  • 進入到新建的文件夾mydemo”中,創建一個HTML頁面“index.html”。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MyDemo.html</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <h1>Hello Tomcat!</h1>
  </body>
</html>
  • 進入到Tomcat安裝目錄的bin目錄中,鼠標雙擊startup.bat文件,啟動Tomcat服務器。
  • 打開瀏覽器,在地址欄中輸入http://localhost:8080/mydemo/index.html即可訪問。

3.2. 創建Web動態應用

HTML頁面屬於靜態資源,我們更多使用Web應用多為動態資源。想要創建Web動態應用,首先我們需要了解Web動態應用的目錄結構:

  • Web應用目錄下存放各種靜態資源,例如HTML頁面等。
  • Web應用目錄/WEB-INF目錄:這個目錄名稱必須是大寫,並且該目錄中的內容是無法通過瀏覽器訪問的。一般情況下,我們會將私有的或安全性高的內容放置在該目錄中。
  • Web應用目錄/WEB-INF/classes目錄:用於存放Java編譯后的class文件。
  • Web應用目錄/WEB-INF/lib目錄:存放該Web動態應用所使用的Jar包。
  • Web應用目錄/WEB-INF/web.xml文件:Web動態應用的部署描述文件,可以在該文件中對Web應用進行配置。例如,可以配置Web應用的默認主頁。

了解了Web動態應用的目錄結構,我們就可以嘗試在Tomcat安裝目錄的webapps目錄中創建一個Web動態應用。

  • 進入到Tomcat安裝目錄的webapps目錄中,新建一個文件夾為“mydemo”。
  • 進入到新建的文件夾mydemo”中,創建一個HTML頁面“index.html”。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>MyDemo.html</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <h1>Hello Tomcat!</h1>
  </body>
</html>
  • mydemo”目錄中,鼠標右鍵新建一個文件夾“WEB-INF”。
  • 進入到WEB-INF”目錄中,鼠標右鍵新建一個文件夾“classes”。默認情況下,我們可以不編寫Java文件,該目錄為空。
  • WEB-INF”目錄中,鼠標右鍵新建一個文件夾“lib”,默認情況下,該目錄也可以為空。
  • WEB-INF”目錄中,鼠標右鍵新建一個XML文件“web.xml”,具體內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>    
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>
  • 進入到Tomcat安裝目錄的bin目錄中,鼠標雙擊startup.bat文件,啟動Tomcat服務器。
  • 打開瀏覽器,在地址欄中輸入http://localhost:8080/mydemo/index.html即可訪問。

3.3. Tomcat配置外部應用

我們將創建的Web應用全部放置在Tomcat安裝目錄的webapps目錄中,會導致Tomcat安裝目錄的體積越來越大。所以,我們還可以將創建的Web應用放置到其他目錄中,具體有兩種配置方式:

  1. 通過修改Tomcat安裝目錄的conf目錄中的server.xml方式完成。
  • 將創建的Web應用拷貝到本地磁盤的任意目錄中,例如C盤下。
  • 打開Tomcat安裝目錄的conf目錄中的server.xml文件,在<Host>標簽內添加如下內容:
<Context path="mydemo" docBase="c:/mydemo" />
    • ² path屬性:設置當前Web應用的名稱。
    • ² docBase屬性:設置Web應用的物理位置。
  • 進入到Tomcat安裝目錄的bin目錄中,鼠標雙擊startup.bat文件,啟動Tomcat服務器。
  • 打開瀏覽器,在地址欄中輸入http://localhost:8080/mydemo/index.html即可訪問。

這種方式的問題在於每次配置外部的Web應用,都需要修改Tomcat安裝目錄下的server.xml文件。所以,每次修改完成之后,需要重新啟動Tomcat服務器。

  1. 通過在Tomcat安裝目錄的conf目錄中創建相關配置信息方式完成。
  • 將創建的Web應用拷貝到本地磁盤的任意目錄中,例如C盤下。
  • 進入到Tomcat安裝目錄\conf\Catalina\ localhost目錄中,鼠標右鍵新建一個XML文件“mydemo.xml”,具體內容如下:
<Context docBase="c:/mydemo" />

需要注意的是:創建的XML文件名稱為當前Web應用的名稱。

  • 進入到Tomcat安裝目錄的bin目錄中,鼠標雙擊startup.bat文件,啟動Tomcat服務器。
  • 打開瀏覽器,在地址欄中輸入http://localhost:8080/mydemo/index.html即可訪問。

這種方式是Tomcat官方推薦的,因為不需要每次修改server.xml文件。每次配置外部Web應用后不需要重新啟動Tomcat服務器。

3.4. 配置映射虛擬主機

之前我們配置到Web應用到Tomcat服務器,訪問地址都是要先訪問到Tomcat服務的地址才可以。如果我們要配置像訪問百度網站一樣的Web應用應該怎么做呢?

  • 進入到C:\WINDOWS\system32\drivers\etc目錄中,打開並編輯host文件,內容如下:
127.0.0.1    www.baidu.com

這一步的作用是將百度網站地址映射到本主機。

  • 進入到Tomcat安裝目錄的conf目錄中,打開並編輯server.xml文件,內容如下:
<Host name="www.baidu.com"  appBase="mywebapps" 
  unpackWARs="true" autoDeploy="true">
</Host>
  • Tomcat安裝目錄中,鼠標右鍵創建一個文件夾“mywebapps”,將此文件夾作為Web應用在本地的存儲位置。
  • 進入到mywebapps”目錄中,鼠標右鍵創建一個文件夾“ROOT”,將Web應用的所有內容拷貝到此文件夾中。
  • 打開Tomcat安裝目錄的conf目錄中的server.xml文件,修改Tomcat服務的端口號為80
  • 進入到Tomcat安裝目錄的bin目錄中,鼠標雙擊startup.bat文件,啟動Tomcat服務器。
  • 打開瀏覽器,在地址欄中輸入http://www.baidu.com即可訪問。

3.5. Tomcat管理平台

當啟動Tomcat服務器,通過瀏覽器訪問Tomcat服務的主頁,我們會發現首頁中含有“Manager App”選項,該功能是Tomcat的管理平台,用於管理Tomcat下已發布的Web應用。

但是,當點擊Manager App”時,會提示輸入用戶名和密碼。我們需要設置用戶名和密碼才能進入Tomcat管理平台,具體步驟如下:

  • 打開Tomcat安裝目錄的conf目錄中的tomcat-users.xml文件,配置Tomcat管理平台的用戶名和密碼,具體配置信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>
  • 進入到Tomcat安裝目錄的bin目錄中,鼠標雙擊startup.bat文件,啟動Tomcat服務器。
  • 打開瀏覽器,在地址欄中輸入http://localhost:8080訪問Tomcat服務的主頁,點擊“Manager App”,輸入用戶名和密碼,進入Tomcat管理平台。

4. Eclipse配置Tomcat

4.1. 配置Tomcat

使用MyEclipse配置Tomcat服務器后,就可以使用MyEclipse來啟動和關閉Tomcat服務器。首先,我們需要先來配置Tomact服務器。

MyEclipse自帶了Tomcat服務器,但通常都不會使用,而是使用外部獨立的Tomcat服務器。所以,首先需要關閉MyEclipse自帶的Tomcat服務器。

  • 打開MyEclipse開發工具,進入開發主操作頁面。
  • 點擊window”菜單下的“Preference”選項。
  • 彈出MyEclipse配置窗口。
  • 在左欄菜單中選擇MyEclipse->Servers->Integrated Sandbox->MyEclipse Tomcat 6”選項。
  • MyEclipse Tomcat 6”配置界面中,選擇“Disable”選項,關閉自帶的Tomcat服務器。

關閉MyEclipse自帶的Tomcat服務器后,就可以配置外部獨立的Tomcat服務器了,具體步驟如下:

  • 打開MyEclipse開發工具,進入開發主操作頁面。
  • 點擊window”菜單下的“Preference”選項。
  • 彈出MyEclipse配置窗口。
  • 在左欄菜單中選擇MyEclipse”下的“Servers”的“Tomcat”,選擇對應的版本(例如Tomcat 7.x)。在Tomcat配置主頁面中,選擇“Enable”開啟當前的Tomcat,並選擇對應Tomcat的安裝目錄。

 

  • 選擇Tomcat菜單下的“JDK”選項,選擇對應的JDK版本。
  • 選擇Tomcat菜單下的“Launch”選項,選擇啟動Tomcat的方式(默認為debug)。

4.2. 創建Web工程

利用MyEclipse來創建Web工程,具體操作如下:

  • 打開MyEclipse開發工具,進入開發主操作頁面。
  • 在菜單欄中選擇File->New->Web Project”來創建新的Web工程。
  • 點擊Finish”按鈕,完成Web工程的創建。但會彈出一個警告窗口。

選擇Yes”表示使用JavaEE 5.0編譯級別,選擇“No”表示使用JavaEE 6.0編譯級別。兩者區別不大,選擇“Yes”或“No”都可以。

  • 創建之后的Web工程目錄如下:

 

  • Web工程目錄中的web.xml文件說明:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    web-app標簽:Web工程的web.xml文件的根標簽.
     * xmlns:xsi - W3C提供的Schema約束.
     * xmlns - 默認命名空間.
     * xmlns:web - 命名空間.
     * xsi:schemaLocation - 指定Schema文件.
 -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
        version="2.5">
  <!-- 設置顯示的名稱 -->
  <display-name></display-name>
  <!-- Web工程默認主頁列表 -->
  <welcome-file-list>
      <!-- 設置Web工程默認主頁 -->
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

4.3 發布Web工程

MyEclipse中的Web工程發布到Tomcat服務器下運行,具體操作步驟如下:

  • Package Explore”區域選擇要發布的Web工程。
  • 選擇Web工程名稱后,鼠標右鍵彈出工程配置列表。
  • 在工程配置列表中,選擇MyEclipse->Add and Remove Project Deployments”選項,彈出發布配置界面。
  • 在發布配置界面中,點擊Add”按鈕,為要發布的Web工程選擇Tomcat服務器。
  • Server”一欄,選擇對應版本的Tomcat服務器,點擊“Finish”按鈕,回到發布配置界面。
  • 點擊OK”按鈕,完成Web工程的發布。這時啟動Tomcat服務器,即可訪問Web工程。

4.4. Web工程打包

JavaSE程序可以打包成Jar包運行,而JavaWeb程序可以打包成War包,然后發布到Tomcat服務器的webapps目錄下運行(Tomcat服務器會自動解壓縮War包)。具體將JavaWeb程序打包成War包的步驟如下:

  • Package Explore”區域選擇要打包的Web工程。
  • 選擇Web工程名稱后,鼠標右鍵彈出工程配置列表。
  • 在工程配置列表中,選擇Export”選項,彈出導出界面。
  • 找到WAR file(MyEclipse)”選項,點擊“Next”按鈕。
  • 點擊Finish”按鈕,完成打包過程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM