WEB環境搭建
1. Web服務器
- Web服務器主要用來接收客戶端發送的請求和響應客戶端請求。
- 作為JavaWeb程序來說,還需要有Servlet容器,容器的主要作用就是調用java程序處理用戶發送的請求,並響應指定的資源,關於Servlet容器我們還需要一點一點學習。
- 開發JavaWeb項目Web服務器和Servlet容器是必須的,通常情況二者是合在一起的。
- 常見的JavaWeb服務器:
- Tomcat(Apache):當前應用最廣的JavaWeb服務器;
- JBoss(Redhat紅帽):支持JavaEE,應用比較廣;
- GlassFish(Orcale):Oracle開發JavaWeb服務器,應用不是很廣;
- Resin(Caucho):支持JavaEE,應用越來越廣;
- Weblogic(Orcale):要錢的!支持JavaEE,適合大型項目;
- Websphere(IBM):要錢的!支持JavaEE,適合大型項目;
2. Tomcat
2.1 Tomcat概述
- Tomcat是Apache 軟件基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支持,最新的Servlet 和JSP 規范總是能在Tomcat 中得到體現,因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟件開發商的認可,成為目前比較流行的Web 應用服務器。目前最新版本是8.0。
- Tomcat6.0 支持Servlet 2.5
- Tomcat7.0 支持Servlet3.0
- Tomcat8.0 支持Servlet 3.1
2.2 安裝、啟動、配置Tomcat
2.2.1 下載
- Tomcat官方網站:http://tomcat.apache.org/
- 安裝版:需要安裝,一般不考慮使用。一個電腦只能安裝一個!卸載也比較麻煩!
- 解壓版: 直接解壓縮使用,我們使用的版本。
- 版本:目前Tomcat的最新版本為8.0。我們使用的是7.0版本。
2.2.2 安裝
- 直接把Tomcat的壓縮包解壓到安裝目錄,例如:D:\apache-tomcat-6.0.43。
- D:\apache-tomcat-6.0.43,這個目錄下直接包含Tomcat的bin目錄,conf目錄等,我們稱之為Tomcat的安裝目錄或根目錄。
2.2.3 啟動和停止
- 啟動Tomcat前還需要配置兩個環境變量。
- JAVA_HOME:jdk的安裝目錄,Tomcat依賴於JDK,所以必須指定該環境變量。
- CATALINA_HOME:tomcat的安裝目錄,在終端(CMD)啟用時,需要配置,不必須。
- 啟動:在Tomcat安裝目錄下的bin目錄,雙擊startup.bat
- 停止:在Tomcat安裝目錄下的bin目錄,雙擊shutdown.bat
- startup.bat會調用catalina.bat,而catalina.bat會調用setclasspath.bat,setclasspath.bat會使用JAVA_HOME環境變量,所以我們必須在啟動Tomcat之前把JAVA_HOME配置正確。如果JAVA_HOME配置不正確,就會導致startup.bat一閃而過!(.bat為在windows環境下,.sh為在Linux環境下)
- 問題:
如果雙擊startup.bat后窗口一閃而過,請查看JAVA_HOME是否配置正確。
正確:
錯誤:
2.2.4 訪問Tomcat
- 打開瀏覽器地址欄輸入:http://localhost:8080
2.2.5 配置端口號
- 打開Tomcat安裝目錄下的conf/server.xml
- 端口:web服務器在啟動時,實際上是監聽了本機上的一個端口,當有客戶端向該端口發送請求時,web服務器就會處理請求。但是如果不是向其所監聽的端口發送請求,web服務器不會做任何響應。例如:Tomcat啟動監聽了80端口,而訪問的地址是http://localhost:8080,將不能正常訪問。
- 80端口:80端口是http協議默認的端口號,也就是說如果在url中不指定端口號那默認會向80端口發送請求。
- (一個端口是一個進程)
2.2.6 Tomcat目錄結構
- bin:該目錄下存放的是二進制可執行文件,如果是安裝版,那么這個目錄下會有兩個exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下啟動Tomcat,后者是彈出GUI窗口啟動Tomcat;如果是解壓版,那么會有startup.bat和shutdown.bat文件,startup.bat用來啟動Tomcat,但需要先配置JAVA_HOME環境變量才能啟動,shutdawn.bat用來停止Tomcat;
- conf:這是一個非常非常重要的目錄,這個目錄下有四個最為重要的文件:
- server.xml:配置整個服務器信息。例如修改端口號,添加虛擬主機等;下面會詳細介紹這個文件;
- tomcatusers.xml:存儲tomcat用戶的文件,這里保存的是tomcat的用戶名及密碼,以及用戶的角色信息。可以按着該文件中的注釋信息添加tomcat用戶,然后就可以在Tomcat主頁中進入Tomcat Manager頁面了;
- web.xml:部署描述符文件,這個文件中注冊了很多MIME類型,即文檔類型。這些MIME類型是客戶端與服務器之間說明文檔類型的,如用戶請求一個html網頁,那么服務器還會告訴客戶端瀏覽器響應的文檔是text/html類型的,這就是一個MIME類型。客戶端瀏覽器通過這個MIME類型就知道如何處理它了。當然是在瀏覽器中顯示這個html文件了。但如果服務器響應的是一個exe文件,那么瀏覽器就不可能顯示它,而是應該彈出下載窗口才對。MIME就是用來說明文檔的內容是什么類型的!
- context.xml:對所有應用的統一配置,通常我們不會去配置它。
- lib:Tomcat的類庫,里面是一大堆jar文件。如果需要添加Tomcat依賴的jar文件,可以把它放到這個目錄中,當然也可以把應用依賴的jar文件放到這個目錄中,這個目錄中的jar所有項目都可以共享之,但這樣你的應用放到其他Tomcat下時就不能再共享這個目錄下的jar包了,所以建議只把Tomcat需要的jar包放到這個目錄下;
- logs:這個目錄中都是日志文件,記錄了Tomcat啟動和關閉的信息,如果啟動Tomcat時有錯誤,那么異常也會記錄在日志文件中。
- temp:存放Tomcat的臨時文件,這個目錄下的東西可以在停止Tomcat后刪除!
- webapps:存放web項目的目錄,其中每個文件夾都是一個項目;如果這個目錄下已經存在了目錄,那么都是tomcat自帶的。項目。其中ROOT是一個特殊的項目,在地址欄中沒有給出項目目錄時,對應的就是ROOT項目。http://localhost:8080/examples,進入示例項目。其中examples就是項目名,即文件夾的名字。
- work:運行時生成的文件,最終運行的文件都在這里。通過webapps中的項目生成的!可以把這個目錄下的內容刪除,再次運行時會生再次生成work目錄。當客戶端用戶訪問一個JSP文件時,Tomcat會通過JSP生成Java文件,然后再編譯Java文件生成class文件,生成的java和class文件都會存放到這個目錄下。
- LICENSE:許可證。
- NOTICE:說明文件。
3. 創建Web應用
3.1 靜態web應用
- 在webapps下創建一個hello目錄;
- 在webapps\hello\下創建index.html;
- 啟動tomcat;
- 打開瀏覽器訪問http://localhost:8080/hello/index.html
index.html
<html> <head> <title>hello</title> </head> <body> <h1>Hello World!</h1> </body> </html> |
3.2 動態web應用
- 在webapps下創建hello1目錄;
- 在webapps\hello1\下創建WEB-INF目錄;
- 在webapps\hello1\WEB-INF\下創建web.xml;
- 在webapps\hello1\下創建index.html。
- 打開瀏覽器訪問http://localhost:8080/hello/index.html
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"> </web-app> |
完整的Web應用還需要在WEB-INF目錄下創建:
- classes;
- lib目錄;
webapps
|- hello
|-index.html
|-WEB-INF
|-web.xml
|-classes
|-lib
- hello:應用目錄,hello就是應用的名稱;
- index.html:應用資源。應用下可以有多個資源,例如css、js、html、jsp等,也可以把資源放到文件夾中,例如:hello\html\index.html,這時訪問URL為:http://localhost:8080/hello/html/index.html;
- WEB-INF:這個目錄名稱必須是大寫,這個目錄下的東西是無法通過瀏覽器直接訪問的,也就是說放到這里的東西是安全的;
- web.xml:應用程序的部署描述符文件,可以在該文件中對應用進行配置,例如配置應用的首頁:
<welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list>
- classes:存放class文件的目錄;(二進制文件)
- lib:存放jar包的目錄;
3.3 外部Web應用
- 上面我們所寫的web應用都是放在來webapps目錄下,實際上也可以將web應用放到其他地方,也就是Tomcat目錄的外部。例如:我們把上面寫的hello應用從webapps目錄中剪切到C盤下,即C:/hello。現在hello這個Web應用已經不在Tomcat中了,這時我們需要在tomcat中配置外部應用的位置,配置的方式一共有兩種:
- conf/server.xml:打開server.xml文件,找到<Host>元素,在其中添加<Context>元素,代碼如下:
server.xml
![]()
|
1) path:指定當前應用的名稱;
2) docBase:指定應用的物理位置;
3) 瀏覽器訪問路徑:http://localhost:8080/atguigu/index.html。
3.4 Eclipse創建Web應用
3.4.1 Eclipse配置Tomcat
- 在Eclipse中配置好Tomcat后,可以直接通過Eclipse控制Tomcat的啟動和停止,而不用再去操作startup.bat和shutdown.bat。
配置步驟:
- 在servers標簽中,右鍵 -> New -> Server
- 在出現的窗口中選中Tomcat v6.0 Server,點擊下一步
- 選擇tomcat安裝路徑,選擇系統的JDK,點擊Finish
- 創建好后,Servers標簽下出現剛剛創建好的服務器
3.4.2 Eclipse創建動態Web應用
右鍵 ->new ->Dynamic Web Project
- 配置項目信息
- 輸入項目名,
- 選擇配置好的tomcat,
- 選擇Dynamic web module version 為 2.5
- 點擊Finish,創建好的項目會出現在左側的列表中。
- 在項目的WebContent目錄下創建一個index.html文件
3.4.3 部署/移除Web項目
- 右鍵點擊剛創建好的Tomcat服務器,選擇Add and Remove …
- 選中剛創建的項目,點擊add,點擊Finish
3.4.4 啟動/關閉Tomcat
- 右鍵選擇服務器,單擊start
- 看到控制台輸出:信息: Server startup in 161 ms
- 服務器變成如下狀態,證明服務器啟動成功
- 訪問 http://localhost:8080/MyWeb
3.4.5 Eclipse使用Tomcat的原理
- 當我們使用Eclipse將項目部署到Tomcat的時,我們發現,在Tomcat下的webapps目錄下並沒有我們創建好的項目,但是當通過Eclipse啟動服務器后,項目卻真的可以訪問到,這是為什么呢?
- 實際上,Eclipse在使用Tomcat時,並沒有將項目部署到Tomcat的目錄下,而是在其工作空間中,創建了一個Tomcat的鏡像,Eclipse啟動的Tomcat是他自己配置的鏡像。
- Eclipse鏡像所在目錄
你的工作空間目錄\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
- 在這個目錄下,我們會發現一個和Tomcat安裝目錄幾乎一模一樣的目錄結構。
- 在這里Eclipse中Tomcat鏡像配置文件也是獨立的,而我們所創建的項目是部署到wtpwebapps目錄下的,這樣做的好處是Eclipse中Tomcat和我們本機的Tomcat可以保持相互獨立,不會影響彼此。