JavaWeb第一篇

一、 軟件系統體系結構

1 常見軟件系統體系結構B/S、C/S

1.1 C/S

C/S結構即客戶端/服務器(Client/Server),例如QQ;
需要編寫服務器端程序,以及客戶端程序,例如我們安裝的就是QQ的客戶端程序;
缺點:軟件更新時需要同時更新客戶端和服務器端兩端,比較麻煩;
優點:安全性比較好。

1.2 B/S

B/S結構即瀏覽器/服務器(Browser/Server);
優點:只需要編寫服務器端程序;
缺點:安全性較差。

2 WEB資源

2.1 Web資源介紹

html:靜態資源;
JSP/Servlet:動態資源。
當然,除了JavaWeb程序,還有其他Web程序,例如:ASP、PHP等。

2.2 靜態資源和動態資源區別

在這裏插入圖片描述

2.3 訪問Web資源

打開瀏覽器,輸入URL:協議名://域名:端口/路徑

3 Web服務器

Web服務器的作用是接收客戶端的請求,給客戶端作出響應。對於JavaWeb程序而已,還需要有JSP/Servlet容器,JSP/Servlet容器的基本功能是把動態資源轉換成靜態資源,當然JSP/Servlet容器不只這些功能,我們需要使用的是Web服務器和JSP/Servlet容器,通常這兩者會集於一身。下面是JavaWeb服務器:
Tomcat(Apache):當前應用最廣的JavaWeb服務器;
JBoss(Redhat紅帽):支持JavaEE,應用比較廣;EJB容器
GlassFish(Orcale):Oracle開發JavaWeb服務器,應用不是很廣;
Resin(Caucho):支持JavaEE,應用越來越廣;
Weblogic(Orcale):要錢的!支持JavaEE,適合大型項目;
Websphere(IBM):要錢的!支持JavaEE,適合大型項目.

二、Tomcat

1 Tomcat概述

Tomcat服務器由Apache提供,開源免費。由於Sun和其他公司參與到了Tomcat的開發中,所以最新的JSP/Servlet規範總是能在Tomcat中體現出來。omcat7支持Servlet3.0,而Tomcat6只支持Servlet2.5!

2 安裝、啓動、配置Tomcat

下載Tomcat可以到http://tomcat.apache.org下載。
Tomcat分爲安裝版和解壓版:
安裝版:一臺電腦上只能安裝一個Tomcat;
解壓版:無需安裝,解壓即可用,解壓多少份都可以,所以可以選擇解壓版。

2.1啓動和關閉Tomcat

在啓動Tomcat之前,我們必須要配置環境變量:
JAVA_HOME:必須先配置JAVA_HOME,因爲Tomcat啓動需要使用JDK;
CATALANA_HOME:如果是安裝版,那麼還需要配置這個變量,這個變量用來指定Tomcat的安裝路徑,例如:F:\apache-tomcat-7.0.42。
啓動:進入%CATALANA_HOME%\bin目錄,找到startup.bat,雙擊即可;
關閉:進入%CATALANA_HOME%\bin目錄,找到shutdown.bat,雙擊即可;
startup.bat會調用catalina.bat,而catalina.bat會調用setclasspath.bat,setclasspath.bat會使用JAVA_HOME環境變量,所以我們必須在啓動Tomcat之前把JAVA_HOME配置正確。
啓動問題:點擊startup.bat後窗口一閃即消失:檢查JAVA_HOME環境變量配置是否正確;

2.2進入Tomcat主頁

訪問:http://localhost:8080

2.3 配置端口號

打開%CATALANA_HOME%\conf\server.xml文件:
在這裏插入圖片描述
http默認端口號爲80,也就是說在URL中不給出端口號時就表示使用80端口。當然也可以修改爲其它端口號。當把端口號修改爲80後,在瀏覽器中只需要輸入:http://localhost就可以訪問Tomcat主頁了

2.4 Tomcat的目錄結構

在這裏插入圖片描述
bin:該目錄下存放的是二進制可執行文件,如果是安裝版,那麼這個目錄下會有兩個exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制檯下啓動Tomcat,後者是彈出UGI窗口啓動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:說明文件。

三、Web應用

靜態網站:在webapps目錄下創建一個目錄(命名必須不包含中文和空格),這個目錄稱之爲項目目錄;在項目目錄下創建一個html文件;
動態網站:在webpass目錄下創建一個項目目錄;在項目目錄下創建如下內容:
WEB-INF目錄;在WEB-INF目錄下創建web.xml文件,創建靜態或動態頁面。

1 創建靜態應用

在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>

2 創建動態應用

在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 配置外部應用

原來我們的項目放到webapps下,現在我放到外面,也希望tomcat可以找到它!也可以把應用放到Tomcat之外,這就是外部應用了。例如我們把上面寫的hello應用從webapps目錄中剪切到C盤下,即C:/hello。現在hello這個Web應用已經不在Tomcat中了,這時我們需要在tomcat中配置外部應用的位置,配置的方式一共有兩種:
第一種:
conf/server.xml:打開server.xml文件,找到元素,在其中添加元素,代碼如下:
server.xml:

<Host>
<Context path="/hello" docBase="D:\hello\WebContent"  reloadable="true" />
</Host>
  1. path:指定當前應用的名稱;
  2. docBase:指定應用的物理位置;
  3. 瀏覽器訪問路徑:http://localhost:8080/hello/index.html。
    第二種:
    conf/catalana/localhost:在該目錄下創建itcast_hello.xml文件,在該文件中編寫元素,代碼如下:
<Context docBase="D:/hello"  />
  1. 文件名:指定當前應用的名稱;
  2. docBase:指定應用的物理位置;
  3. 瀏覽器訪問路徑:http://localhost:8080/hello/index.html。

4 理解server.xml

:根元素,表示整個服務器的配置信息; :的子元素,在中只能有一個元素,它表示服務; :的子元素,在中可以有N個元素,它表示連接。 :的子元素,在中只能有一元素,該元素表示引擎,它是組件的核心。 :的子元素,在中可以有N個元素,每個元素表示一個虛擬主機。所謂虛擬主機就像是真的主機一樣,每個主機都有自己的主機名和項目目錄。例如表示主機名爲localhost,這個主機的項目存放在webapps目錄中。訪問這個項目下的主機時,需要使用localhost主機名,項目都存放在webapps目錄下。 :元素的子元素,在中可以有N個元素,每個元素表示一個應用。如果應用在的appBase指定的目錄下,那麼可以不配置元素,如果是外部應用,那麼就必須配置。如果要爲應用指定資源,也需要配置元素。 我們可以把看作是一個大酒店: :酒店的服務部門; :服務員; :後廚; :後廚中的一個區,例如川菜區是一個、粵菜區是一個; :後廚的一個廚師。 用戶發出一個請求:http://localhost:8080/hello/index.jsp。發現是http/1.1協議,而且還是8080端口,所以就交給了處理這一請求的“服務員(處理HTTP請求的)”,“服務員”再把請求交給了“後廚()”,因爲請求是要一盤水煮魚,所以由“川菜區()”負責,因爲“大老王師傅”做水煮魚最地道,所以由它完成。 :關心請求中的http、和8080; < Host>:關心localhost; :關心hello
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章