您好,登錄后才能下訂單哦!
1、C/S架構和B/S架構的概念:
a、C/S架構:
- C/S,Client/Server,客戶端/服務器,客戶端需要安裝專用的客戶端軟件。客戶端是針對某以具體業務專門開發的軟件。
- 由于客戶端是專用的軟件,所以客戶端程序一般也具有對具體業務進行處理的能力。從而減輕對服務端的處理壓力,使得服務端的運算速度更快,對客戶端的響應更快。
- 也正是由于客戶端是需要專門安裝的專用軟件,所以導致C/S架構的系統也出現了致命的問題:版本升級成本異常地高。無論是由于客戶端軟件本身功能的升級,或者是由于服務端的升級導致客戶端也必須進行升級,無論什么原因導致客戶端需要升級,每一個客戶端機器上都必須先獲取到新版本軟件,再將老版本進行卸載替換。C/S架構系統的每一次客戶端升級,都需要企業為之付出人力、物力和財力上的成本代價。
b、B/S架構:
- B/S,Browser/Server,瀏覽器/服務器。B/S架構,其實也是一種特殊的C/S架構,只不過,這個Client特指的是瀏覽器。
- 對于B/S架構的系統,需要客戶端安裝有瀏覽器,那么客戶端就可以訪問服務器。而整個系統的升級,只需要升級服務器端程序即可。所以,B/S架構的系統最大的優點就是不存在客戶端升級問題。
- 由于客戶端不是專門針對某一具體業務而設計,是一個通用的客戶端,所以客戶端幾乎沒有任何對具體業務進行處理運算的能力。而對于具體業務的處理壓力,全部加在了服務端,從而導致服務器程序運算速度降低,對客戶端的響應速度降低,影響了客戶體驗。
- 另外,B/S架構系統還存在一個問題:瀏覽器兼容問題。雖然客戶端只需要一個瀏覽器即可訪問服務端,但由于現在瀏覽器品牌、版本很多,而其實現技術千差萬別,所以導致服務端需要想辦法兼容各種瀏覽器版本。這無形中又增加了服務器端的壓力。
2、Web訪問中的角色與協議:
- Web訪問中的角色與協議示意圖:(角色有4個,瀏覽器,Web服務器,服務器端程序和DB;協議有3個,HTTP協議,Servlet協議,JDBC協議。)
- 所謂協議,即是規范、規則,是通信雙方事先的約定。
- HTTP協議要求,通行雙方,即瀏覽器與服務器雙方,都需要按照指定的格式發出請求與響應。對方按照協議,即事先的約定,對對方發送來的信息進行解析。
- Servlet協議要求,若程序員要開發完成某一個具體業務的服務端程序,則必須實現Servlet接口,使用ServletAPI進行數據傳遞。
- JDBC協議要求,服務器端程序若要連接并操作數據庫,則需要按照JDBC協議中的規定的方式(接口方法)獲取DB連接,進行SQL的執行、進行結果的獲取。而JDBC協議(接口)的實現,均由數據庫廠商來完成。放于數據庫廠商提供的數據庫驅動jar包即可。所以,我們連接不同的數據庫,就需要導入不同的數據庫驅動jar包。
- 此外,還有JavaEE協議:Servlet協議是JavaEE協議里的一部分。JavaEE協議即進行JavaWeb開發的一套API,除了包含Servlet協議外,JSTL協議、JPA協議等。目前使用較多的版本是JavaEE5.0。JavaEE5.0包含的是Servlet2.5協議。JavaEE6.0包含的是Servlet3.0協議。而Servlet2.5與Servlet3.0版本的一個很大的區別在于:Servlet3.0支持對Servlet、Filter、Listener類的注解式開發。
3、Web服務器之Tomcat的相關說明:
a、Tomcat的簡單認識:
- 實際應用中實現了JavaEE規范的Web服務器有很多,如Oracle的WebLogic(需購買)、IBM的WebSphere(需購買)、RedHat公司的JBoss(不支持Servlet規范,開源免費)等,這些都稱為重量級服務器。
- Apache的Tomcat(Apache軟件基金會的一個開源項目,可以在其官網http://www.apache.org/中下載),只是JavaEE規范中Servlet/JSP規范的實現者(也包括EL和WebSocket協議 ),所以其實是一個輕量級的服務器,它是開源免費的。Tomcat也稱之為Web容器,或者是Servlet容器,但是不能夠稱之為JavaEE容器。
- 官網中的Tomcat9.0安裝包和源碼包下載圖片截取:
- 引申出的一個概念:JCP(官網為http://jcp.org),Java Community Process,Java審核社區,是一個開放的國際組織,主要負責規范、監督Java的發展,其他個人、企業、機構等制定的Java規范,必須通過JCP審核后,才能夠被認定為Java規范,JCP的創始者為SUN公司。
b、Tomcat的安裝與目錄結構:
- Tomcat的安裝,即將其解壓縮包即可,無需向導式的安裝過程。解壓縮后可以對Tomcat的根目錄更名。
c、Tomcat的運行環境配置:
- Tomcat安裝完畢后,需要安裝JDK或者JRE。對于Tomcat5以及以前版本,要求必須安裝JDK,而對于Tomcat6及其之后版本可以只安裝JRE而不需要安裝JDK。
- 在安裝JDK時配置系統環境變量JAVA_HOME,將其bin目錄添加到path變量即可。(Tomcat不需要其他配置)
- 如果沒有配置系統環境變量,則在命令行中會顯示如下錯誤:
d、Tomcat的啟動和訪問:
- 在設置完前面的環境變量之后,Tomcat即可進行啟動。
- 進入命令行窗口的Tomcat目錄的bin目錄下,執行startup.bat命令,即可看到Tomcat的啟動過程。當然,也可以在Window窗口中,找到Tomcat目錄的bin目錄,直接雙擊startup.bat文件啟動Tomcat。(shutdown.bat文件為關閉Tomcat)
- 可以通過在瀏覽器地址欄上鍵入localhost:8080來訪問Tomcat。
4、JavaEE規范要求JavaWeb項目的程序結構是:
- 在當前應用所在目錄中可以直接存放資源文件,如.html、.jpg等,也可以將其放入到子目錄中訪問。
- 若Web項目中包含Serlvet代碼,則Servlet的字節碼文件必須存放在當前應用所在子目錄/WEB-INF/classes中。
- 在/WEB-INF/下可以包含web.xml配置文件,定義請求URI與所要訪問的Serlvet間的映射關系、指定歡迎頁面等。
- 在/WEB-INF下可以包含子目錄lib,用于存放當前Web應用所使用的外部jar包。
- 在/WEB-INF/目錄中的資源不能被瀏覽器直接訪問。
- 如下所示:
--- 項目根目錄 ---html、jsp、js、css、jpg等資源文件 ---子目錄 ---相關資源文件 ---WEB-INF ---classes ---lib ---web.xml ---html、jsp等資源文件 |
5、解讀server.xml文件:
6、Tomcat中的context.xml說明、Context標簽講解:
a、在tomcat5.5之前:Context體現在/conf/server.xml中的Host里的<Context>元素中,它由Context接口定義。每個<Context>元素代表了運行在虛擬主機上的單個Web應用。
- server.xml文件,如<Context path="/kaka" docBase="kaka" debug="0" reloadbale="true"> 。
- path表示要創建的虛擬目錄,它指定訪問Web應用的上下文根,如http://localhost:8080/kaka/...;docBase:為應用程序的路徑或者WAR文件存放的路徑,可以是絕對路徑,也可以是相對路徑(相對路徑是相對于<Host>)。
- reloadable:如果這個屬性設置為true,Tomcat服務器在運行狀態下會監視在WEB-INF/classes和WEB-INF/lib目錄class文件的改變,如果監視到有class文件被更新,服務器自動重新加載Web引用,這樣我們可以在不重啟tomcat的情況下改變應用程序。
- 一個Host元素中嵌套任意多個的Context元素。每個Context的路徑必須是唯一的,由path屬性定義。另外,你必須定義一個path=""的Context,這個Context稱之為該虛擬主機的缺省web應用,用來處理那些不能夠匹配任何Context的Context路徑的請求。
b、在tomcat5.5之后:
- 不推薦在server.xml中進行配置,而是在/conf/context.xml中進行獨立的配置。因為server.xml是不可動態重加載的資源,服務器一旦啟動以后,要修改這個文件,就得重新啟動服務器才能夠重新加載。而context.xml文件則不然,tomcat服務器會定時去掃描這個文件。一旦發現文件被修改(時間戳改變),就會自動重新加載這個文件,而不需要重啟服務器。
- 如下所示:
<Context path="/kaka" docBase="kaka" debug="0" reloadbale="true" privileged="true"> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>WEB-INF/kaka.xml</WatchedResource> 監控資源文件,如果web.xml || kaka.xml改變了,則自動重新加載該應用。 <Resource name="jdbc/testSiteds" 表示指定的jdbc名稱 auth="Container" 表示認證方式,一般為Container type="javax.sql.DataSource" maxActive="100" 連接池支持的最大連接數 maxIdle="30" 連接池中最多可空閑maxIdle個連接 maxWait="10000" 連接池中連接用完時,新的請求等待時間,毫秒 username="root" 表示數據庫用戶名 password="root" 表示數據庫用戶的密碼 driverClassName="com.mysql.jdbc.Driver" 表示JDBC DRIVER url="jdbc:mysql://localhost:3306/testSite" /> 表示數據庫URL地址 </Context>
c、附錄:context.xml的三個作用范圍:
- tomcat server級別:在/conf/context.xml里配置。
- Host級別:在/conf/Catalina/${webAppName}.xml,繼而進行配置。
- web app級別:在/conf/Catalina/$(hostName}里添加${webAppName}.xml,繼而進行配置。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。