Tomcat01 1.WEB開發介紹 WEB,在英文中WEB表示網/網路資源,它用於表示WEB伺服器(主機)供瀏覽器訪問的資源 WEB伺服器(主機)上供外界訪問的Web資源為: 靜態web資源(如html頁面):指web頁面中供人們瀏覽的數據始終是不變的 動態web資源,比如Servlet、PHP等 ...
Tomcat01
1.WEB開發介紹
- WEB,在英文中WEB表示網/網路資源,它用於表示WEB伺服器(主機)供瀏覽器訪問的資源
- WEB伺服器(主機)上供外界訪問的Web資源為:
- 靜態web資源(如html頁面):指web頁面中供人們瀏覽的數據始終是不變的
- 動態web資源,比如Servlet、PHP等
- 靜態web資源開發技術:HTML,CSS,JS等
- 常用動態web資源開發技術:Servlet,SpringBoot,SpringMVC,PHP,ASP.NET等
BS開發和CS開發:
1.1BS開發
B:browser(瀏覽器)
S:Server(服務端)
對BS的解讀:
-
相容性:
因為瀏覽器的種類很多,編寫的程式可能在一個瀏覽器上面是正常的,在另一個瀏覽器上面就會出現問題
-
安全性:
通常情況下,BS的安全性不如CS好控制
-
易用性:BS好於CS,瀏覽器電腦有
-
擴展性:BS相對統一,只需要寫Server端
1.2CS開發
C:Client(客戶端)
S:Server(服務端)
2.JavaWeb服務軟體
2.1JavaWeb伺服器軟體介紹
學習JavaWeb開發,需要先安裝JavaWeb伺服器軟體(我們把安裝了JavaWeb服務軟體的主機稱為Web伺服器/JavaWeb伺服器),在web伺服器中開發相應的web資源
思考:學習JavaWeb開發,為什麼必須要先安裝WEB服務軟體?
答:需要安裝,理解Tomcat本質就是一個java程式,只是這個程式可以處理來自瀏覽器的HTTP請求,和 Javase基礎的網路服務是一樣的
使用netstat -anb指令打開運行埠,可以看到tomcat的監聽埠的監控程式是java.exe,這說明Tomcat本質就是一個java程式,它並沒有脫離底層的jdk。在啟動java程式的時候啟動了jre的運行環境,所以它在後臺顯示的監控程式是java.exe,並不是想象中的Tomcat.exe.
2.2手寫簡單的Web服務程式
Java基礎-IO/網路編程
hello.html:
Helloooooo! I am a web server!
MyTomcat.java:
package tomcat_demo;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author 李
* @version 1.0
* 這是我們自己寫的一個web服務,可以返回hello.html給瀏覽器
*/
public class MyTomcat {
public static void main(String[] args) throws IOException {
//1.在9999埠監聽
ServerSocket serverSocket = new ServerSocket(9999);
//如果serverSocket沒有關閉,就等待連接,不停地等待
while (!serverSocket.isClosed()) {
System.out.println("======我的Web服務在9999埠監聽======");
//2.等待瀏覽器/客戶端來連接,得到socket
// 該socket用於通信
Socket socket = serverSocket.accept();
//3.通過socket得到輸出流
OutputStream outputStream = socket.getOutputStream();
// 返回給瀏覽器/客戶端
//4.讀取hello.html文件返回即可==>如何讀取文件內容
// 得到文件字元輸入流,和文件關聯
BufferedReader bufferedReader =
new BufferedReader(new FileReader("src/tomcat_demo/hello.html"));
String buf = "";
//迴圈讀取hello.html
while ((buf = bufferedReader.readLine()) != null) {
outputStream.write(buf.getBytes());//如果想展示中文字元,可以使用字元流
}
//4.關閉流
bufferedReader.close();
outputStream.close();
socket.close();
}
serverSocket.close();
}
}
http://localhost:9999/
表示瀏覽器向localhost(127.0.0.1即本機)的9999埠發出請求
上述的整個過程是:伺服器MyTomcat在localhost主機的9999埠監聽,瀏覽器向localhost的9999埠發送請求,伺服器監聽到請求後將hello.html文件的內容讀取到記憶體中,然後通過socket將數據打入數據通道中,瀏覽器就拿到了數據,並將其展示在頁面上
2.3常用的JavaWeb服務軟體
-
Tomcat:由Apache組織提供的一種Web伺服器,提供對jsp和Servlet的支持。它是一種輕量級的javaWeb容器(伺服器),也是當前應用最廣的JavaWeb伺服器(免費)
-
Jboss:是一個遵從JavaEE規範的應用伺服器,同時也是免費的
-
GlassFish:由Oracle公司開發的一款JavaWeb伺服器,是一款商業伺服器,達到產品級質量(應用很少)
-
Resin:是CAUCHO公司的產品,是一個非常流行的伺服器,對Servlet和jsp提供了良好的支持,性能也比較優良(收費)
-
WebLogic:是Oracle公司的產品,支持JavaEE 規範,而且不斷地完善以適應新的開發需求,適合大型項目(收費,用得不多,適合大公司)
下麵主要理解Tomcat伺服器
3.Tomcat
Tomcat官方文檔:https://tomcat.apache.org/download-80.cgi
3.1Tomcat下載和安裝
-
Tomcat官方站點:https://tomcat.apache.org
-
獲取Tomcat安裝程式包
- tar.gz是Linux操作系統下的安裝版本
- zip是Windows系統下的壓縮版本
-
使用zip包安裝Tomcat:找到需要用的Tomcat版本對應的zip壓縮包,解壓到需要安裝的目錄即可
-
在官網https://tomcat.apache.org/whichversion.html,可以看到Tomcat仍然是支持JSP和EL的
3.2Tomcat啟動
-
雙擊bin目錄下的startup.bat文件
-
輸入http://localhost:8080/,顯示如下界面代表安裝成功,預設在8080埠
-
註意不要關閉黑視窗,關閉了,tomcat服務就停止了
在開發中查看哪些埠在監聽,可以使用命令:netstat -an
3.3Tomcat啟動故障排除
-
雙擊startup.bat文件,如果出現一個小黑視窗然後就沒了,原因是沒有配置好JAVA_HOME環境變數
Tomcat本質是一個Java程式,所以要jdk,會去根據Java_HOME使用指定的jdk
-
JAVA_HOME必須全大寫
-
JAVA_HOME中間必須是下劃線
-
JAVA_HOME配置的路徑只需要配置到jdk的安裝目錄即可,不需要帶上bin目錄
-
-
埠8080被占用了[查看埠:netstat -anb]
- 如果其他服務程式占用了8080埠,可以關閉該服務,或者修改Tomcat服務的預設埠8080
3.4Tomcat目錄結構
-
conf目錄中的server.xml文件用於配置tomcat的基本設置(啟動埠,關閉埠,主機名)
-
conf目錄中的web.xml文件用於指定tomcat運行時配置(比如Servlet等)
-
webapps目錄是存放web應用的,也就是網站
3.5catalina啟動Tomcat
在cmd中切換到Tomcat的bin目錄,輸入catalina run
,回車,即可啟動tomcat服務
3.6關閉Tomcat
-
點擊tomcat伺服器視窗,直接點擊關閉按鈕
-
進入Tomcat的bin目錄下的shutdown.bat雙擊,就可以停止Tomcat伺服器(推薦)
在預設情況下,tomcat伺服器在8080埠等待瀏覽器發送請求;此外還有一個監聽埠8009,8009埠可以接收關閉指令shutdown。8009埠監聽到關閉指令之後就會按照正常流程去關閉tomcat伺服器。這種關閉方式可以正常地被寫入日誌中。
3.7Tomcat服務中部署web應用
-
什麼是web應用
- WEB應用是多個web資源的集合。簡單地說,可以把web應用理解為硬碟上的一個目錄,這個目錄用於管理多個web資源
- Web應用通常也稱之為web應用程式,或web工程,通俗地說就是網站
-
WEB應用組成
一個web應用由多個web資源或其他文件組成,包括html文件,css文件,js文件,動態web頁面,java程式,支持jar包,配置文件等。
開發人員在開發web應用時,要按照規定目錄結構存放這些文件。否則,在把web應用交給web伺服器管理時,不僅可能會使web應用無法訪問,還會導致web伺服器啟動報錯。
-
JavaWeb程式/應用/工程目錄結構
-
部署方式1:將web工程的目錄拷貝到Tomcat的webapps目錄下
- news Web工程(目前都是靜態html,圖片)(news為工程名)
- 將該news目錄拷貝到Tomcat的webapps目錄下
- 瀏覽器輸入:
http://ip[功能變數名稱]:port/news/子目錄.../文件名
-
部署方式2:通過配置文件來部署(用得不多)
-
在Tomcat下的conf目錄/Catalina/locathost/下,配置文件,比如hsp.xml
(即,tomcat通過配置,可以把一個web應用映射到指定的目錄,可以解決磁碟空間分配的問題)
-
訪問web工程:
http://ip[功能變數名稱]:port/hsp/index.html
,就表示訪問D:\album目錄下的index.html
-
-
ROOT工程的訪問
- 在瀏覽器地址欄中輸入的訪問地址如下:
http://ip[功能變數名稱]:port
,沒有Web工程/應用名時,預設訪問的就是ROOT工程 - 在瀏覽器地址欄中輸入的訪問地址如下:
http://ip[功能變數名稱]:port/工程名
,沒有資源名,預設訪問的就是index.jsp頁面
- 在瀏覽器地址欄中輸入的訪問地址如下:
localhost:8080/test/test.html
其中locathost:8080是你要訪問的伺服器,test是要訪問的網站(web應用),test.html是該網站的資源