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 啓動和中止
- 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是否配置正確。css
正確:html
錯誤:java
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.htmlweb
<html>apache <head>windows <title>hello</title>瀏覽器 </head>tomcat <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目錄下建立:
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 …
3.4.4 啓動/關閉Tomcat
- 看到控制檯輸出:信息: 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能夠保持相互獨立,不會影響彼此。