JavaEE & Tomcat 介紹
- 2021 年 10 月 1 日
- 筆記
- Java Web 基礎
企業開發介紹
JavaEE 規範
JavaEE
規範是J2EE
規範的新名稱,早期被稱為 J2EE 規範,其全稱是 Java 2 Platform Enterprise Edition,是由 SUN 公司領導、各廠家共同制定並得到廣泛認可的工業標準(JCP 組織成員)。
其中,JCP 組織(官網)的全稱是 Java Community Process,是一個開放的國際組織,主要由 Java 開發者以及被授權者組成,職能是發展和更新,成立於 1998 年。
JavaEE 規範是眾多 Java 開發技術的總稱。這些技術規範都是沿用自 J2EE 的,一共包括了 13 個技術規範,如jsp/servlet、jndi、jaxp、jdbc、jni、jaxb、jmf、jta、jpa、EJB 等。
JavaEE 的版本是延續了 J2EE 的版本,但是沒有繼續採用其命名規則。J2EE 的版本從 1.0 開始到 1.4 結束,而 JavaEE 版本是從 JavaEE 5 版本開始的,詳情請參考:JavaEE8 規範概覽。
Web 概述
Web 在英文中的含義是網狀物、網路。在電腦領域,它通常指的是後者,即網路
。
像 WWW 是由 3 個單片語成的,即World Wide Web
,中文含義是萬維網
;而 HTML、CSS 和 JS 的參考文檔《W3School 全套教程》中的W3C
就是萬維網聯盟
。
他們的出現都是為了讓我們在網路的世界中獲取資源,這些資源的存放之處,我們稱之為網站
。我們通過輸入網站的地址(即網址),就可以訪問網站中提供的資源。
在網上我們能訪問到的內容全是資源(不區分區域網還是廣域網)。只不過,不同類型的資源展示的效果不一樣。資源可以分為靜態資源和動態資源:
-
靜態資源
指的是,網站中提供給人們展示的資源是一成不變的,也就是說不同人或者在不同時間,看到的內容都是一樣的。例如:我們看到的新聞,網站的使用手冊,網站功能說明文檔等等。而作為開發者,我們編寫的 html、css、js、圖片、多媒體等,都可以稱為靜態資源。 -
動態資源
指的是,網站中提供給人們展示的資源是由程式產生的,在不同的時間或者用不同的人員由於身份的不同,所看到的內容是不一樣的。例如:我們在12306上購買火車票,火車票的余票數由於時間的變化,會逐漸的減少,直到最後沒有餘票。還有,我們在 CSDN 上下載資料,只有登錄成功後,且積分足夠時才能下載。否則就不能下載,這就是訪客身份和會員身份的區別。作為開發人員,我們編寫的 JSP、servlet、php、ASP 等都是動態資源。
關於廣域網和區域網的劃分,廣域網指的就是萬維網,也就是我們說的互聯網;區域網是指的是在一定範圍之內可以訪問的網路,出了這個範圍,就不能再使用的網路。
系統結構簡介
- 根據基礎結構劃分:C/S 結構,B/S 結構兩類。
- 根據技術選型劃分:Model1 模型,Model2 模型,MVC 模型、三層架構 + MVC 模型。
- 根據部署方式劃分:一體化架構,垂直拆分架構,分散式架構,流動計算架構,微服務架構。
C/S 結構
它指的是客戶端——伺服器
的方式,其中 C 代表著 Client,S 代表著伺服器。
C/S 結構的系統設計圖如下:
B/S 結構
它指的是瀏覽器——伺服器
的方式,其中 B 代表著 Browser,S 代表著伺服器。
B/S 結構的系統設計圖如下:
兩種結構的區別及優略
兩種結構的區別
-
硬體環境不同:C/S 通常是建立在專用的網路或小範圍的網路環境上(即區域網),且必須要安裝客戶端;而 B/S 是建立在廣域網上的,適應範圍強,通常有作業系統和瀏覽器就行。
-
C/S 結構比 B/S 結構更安全,因為用戶群相對固定,對資訊的保護更強。
-
B/S 結構維護升級比較簡單,而 C/S 結構維護升級相對困難。
優勢
-
C/S:是能充分發揮客戶端PC的處理能力,很多工作可以在客戶端處理後再提交給伺服器。對應的優點就是客戶端響應速度快。
-
B/S:總體擁有成本低、維護方便、分布性強、開發簡單,可以不用安裝任何專門的軟體就能 實現在任何地方進行操作,客戶端零維護,系統的擴展非常容易,只要有一台能上網的電腦就能使用。
Tomcat
Tomcat 介紹
關於伺服器
伺服器的概念非常的廣泛,它可以指代一台特殊的電腦(相比普通電腦運行更快、負載更高、價格更貴),也可以指代用於部署網站的應用。
以下說的伺服器,其實是 Web 伺服器,或者應用伺服器,它本質就是一個軟體,一個應用。作用就是發布我們的應用(工程),讓用戶可以通過瀏覽器訪問我們的應用。
常見的應用伺服器:
伺服器名稱 | 說明 |
---|---|
weblogic | 實現了 javaEE 規範,重量級伺服器,又稱為 javaEE 容器 |
websphereAS | 實現了 javaEE 規範,重量級伺服器 |
JBOSSAS | 實現了 JavaEE 規範,重量級伺服器,免費 |
Tomcat | 實現了 jsp/servlet 規範,是一個輕量級伺服器,開源免費 |
Tomcat下載與安裝
Tomcat 各版本所需支援
Tomcat 目錄結構
Tomcat 基礎使用
Tomcat 啟停及問題
問題 1:啟動一閃而過
-
原因:沒有配置環境變數。
-
解決辦法:配置上 JAVA_HOME 環境變數。
問題 2:報錯資訊 Address already in use : JVM_Bind
-
原因:埠被佔用。
-
解決辦法:找到佔用該埠的應用。
- 已佔的進程不重要:使用 cmd 命令:netstat -a -o 查看 pid,在任務管理器中結束佔用埠的進程。
- 已佔的進程很重要:修改 Tomcat 自己的埠號。在 Tomcat 目錄下
\conf\server.xml
中修改配置:
問題 3:啟動時很多異常,但能正常啟動
-
原因:Tomcat 中部署著很多項目,每次啟動這些項目都會啟動。而這些項目中有啟動報異常的。
-
解決辦法:
- 能找到報異常的項目,就把它從發布目錄中移除。
- 不能確定報異常的項目,就重新部署一個新的 Tomcat。
其它問題
-
例如啟動產生異常,但是不能正常啟動。此時就需要部署一個新的 Tomcat 啟動,來確定是系統問題,還是 Tomcat 的問題。
-
此時就需要具體問題,具體分析,然後再對症解決。
IDEA 集成 Tomcat
Tomcat 配置虛擬目錄
虛擬目錄的配置,支援兩種方式:第一種是通過在主配置文件中添加標籤實現;第二種是通過寫一個獨立配置文件實現。
方式一:在server.xml
的<Host>
元素中加一個<Context path="" docBase=""/>
元素。
path
:訪問資源 URI。URI 名稱可以隨便起,但是必須在前面加上一個「/」。docBase
:資源所在的磁碟物理地址。
方式二:是寫一個獨立的xml
文件,該文件名可以隨便起,但在文件內寫一個<Context/>
元素。
- 該文件要放在 Tomcat 目錄中的
conf\Catalina\localhost\
目錄下。 - 需要注意的是,在使用了獨立的配置文件之後,訪問資源 URI 就變成了
/+文件的名稱
,而Context
的path
屬性就失效了。
Tomcat 配置虛擬主機(域名)
在<Engine>
元素中添加一個<Host name="" appBase="" unparkWARs="" autoDeploy="" />
,其中:
name
:指定主機的名稱。appBase
:當前主機的應用發布目錄。unparkWARs
:啟動時是否自動解壓 war 包。autoDeploy
:是否自動發布。
配置示例如下:
<Host name="www.itcast.cn" appBase="D:\itcastapps" unpackWARs="true" autoDeploy="true"/>
<Host name="www.itheima.com" appBase="D:\itheimaapps" unpackWARs="true" autoDeploy="true"/>
Tomcat 默認項配置
配置默認埠
Tomcat 伺服器的主配置文件中配置著訪問埠,它在配置文件中寫的值是:8080。配置方式如下:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
配置默認應用
有兩種方式可以配置默認應用。
方式一:把要作為默認應用的應用,名稱改為ROOT
,放到webapps
目錄中。
方式二:寫一個獨立的配置文件,文件名稱為ROOT.xml
。
-
注意:
ROOT
必須大寫。當使用了獨立的ROOT.xml
文件時,webapps
下ROOT
應用就不再是默認應用。 -
配置默認主頁
首先要明確的是,配置默認主頁是針對應用所說的,是應用的默認主頁。
在應用的 web.xml 中配置:
<welcome-file-list>
<welcome-file>默認主頁</welcome-file>
</welcome-file-list>
例如:
<welcome-file-list>
<!-- 有多個默認頁時,先找到的就顯示,不再往下找 -->
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
Java Web 應用
Java Web 工程概述
JavaWeb
應用是一個全新的應用種類,這類應用程式指供瀏覽器訪問的程式,通常也簡稱為 Web 應用。
一個 Web 應用由多個靜態 Web 資源和動態 Web 資源組成,例如有 html、css、js 文件,jsp 文件、java 程式、支援的 jar 包、工程配置文件、圖片、音影片等等。
Web 應用開發好後,若想供外界訪問,需要把 Web 應用的所在目錄,交給 Web 伺服器管理(Tomcat 就是 Web 伺服器之一),這個過程稱之為虛似目錄的映射。
Java Web 應用目錄結構
myapp -------- 應用名稱
demo.html
css/demo.css
js/demo.js
WEB-INF -------- 如果有 web.xml 或者 .class 文件時,該目錄必須存在,且嚴格區分大小寫。
-------- 該目錄下的資源,客戶端是無法直接訪問的。
-------- 目錄中內容如下:
classes 目錄 -------- web 應用的 class 文件(載入順序:我們的 class,lib 目錄中的 jar 包,tomcat 的 lib 目錄中的 jar 包。其優先順序依次降低)
lib 目錄 -------- web 應用所需的 jar 包(tomcat 的 lib 目錄下 jar 為所有應用共享)
web.xml -------- web 應用的主配置文件
IDEA 創建 Java Web 應用工程
Java Web 應用部署
IDEA 部署
war 包發布
步驟一:使用命令jar -cvf war [需要打包的目錄路徑]
打包 war 包。
步驟二:把打好的 war 包拷貝到 tomcat 的 webapps 目錄中。
步驟三:Tomcat 在啟動時,會自動解壓 war 包。