­

day09-Tomcat01

Tomcat01

1.WEB開發介紹

  1. WEB,在英文中WEB表示網/網路資源,它用於表示WEB伺服器(主機)供瀏覽器訪問的資源
  2. WEB伺服器(主機)上供外界訪問的Web資源為:
    • 靜態web資源(如html頁面):指web頁面中供人們瀏覽的數據始終是不變的
    • 動態web資源,比如Servlet、PHP等
  3. 靜態web資源開發技術:HTML,CSS,JS等
  4. 常用動態web資源開發技術:Servlet,SpringBoot,SpringMVC,PHP,ASP.NET等

BS開發和CS開發:

image-20221104181430528

1.1BS開發

B:browser(瀏覽器)

S:Server(服務端)

對BS的解讀:

  1. 兼容性:

    因為瀏覽器的種類很多,編寫的程式可能在一個瀏覽器上面是正常的,在另一個瀏覽器上面就會出現問題

  2. 安全性:

    通常情況下,BS的安全性不如CS好控制

  3. 易用性:BS好於CS,瀏覽器電腦有

  4. 擴展性:BS相對統一,只需要寫Server端

image-20221104181549144

1.2CS開發

C:Client(客戶端)

S:Server(服務端)

image-20221104181529925

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.

image-20221104215537611

2.2手寫簡單的Web服務程式

Java基礎-IO/網路編程

image-20221104183644768
image-20221104200401666

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();
    }
}

//localhost:9999/表示瀏覽器向localhost(127.0.0.1即本機)的9999埠發出請求

image-20221104200306142

上述的整個過程是:伺服器MyTomcat在localhost主機的9999埠監聽,瀏覽器向localhost的9999埠發送請求,伺服器監聽到請求後將hello.html文件的內容讀取到記憶體中,然後通過socket將數據打入數據通道中,瀏覽器就拿到了數據,並將其展示在頁面上

2.3常用的JavaWeb服務軟體

  1. Tomcat:由Apache組織提供的一種Web伺服器,提供對jsp和Servlet的支援。它是一種輕量級的javaWeb容器(伺服器),也是當前應用最廣的JavaWeb伺服器(免費)

  2. Jboss:是一個遵從JavaEE規範的應用伺服器,同時也是免費的

  3. GlassFish:由Oracle公司開發的一款JavaWeb伺服器,是一款商業伺服器,達到產品級品質(應用很少)

  4. Resin:是CAUCHO公司的產品,是一個非常流行的伺服器,對Servlet和jsp提供了良好的支援,性能也比較優良(收費)

  5. WebLogic:是Oracle公司的產品,支援JavaEE 規範,而且不斷地完善以適應新的開發需求,適合大型項目(收費,用得不多,適合大公司)

    下面主要理解Tomcat伺服器

3.Tomcat

image-20221104202155359

Tomcat官方文檔://tomcat.apache.org/download-80.cgi

3.1Tomcat下載和安裝

  1. Tomcat官方站點://tomcat.apache.org

  2. 獲取Tomcat安裝程式包

    • tar.gz是Linux作業系統下的安裝版本
    • zip是Windows系統下的壓縮版本
  3. 使用zip包安裝Tomcat:找到需要用的Tomcat版本對應的zip壓縮包,解壓到需要安裝的目錄即可

  4. 在官網//tomcat.apache.org/whichversion.html,可以看到Tomcat仍然是支援JSP和EL的

    image-20221104203343404

3.2Tomcat啟動

  1. 雙擊bin目錄下的startup.bat文件

    image-20221104203907419

  2. 輸入//localhost:8080/,顯示如下介面代表安裝成功,默認在8080埠

    image-20221104204111886

  3. 注意不要關閉黑窗口,關閉了,tomcat服務就停止了

在開發中查看哪些埠在監聽,可以使用命令:netstat -an

3.3Tomcat啟動故障排除

  1. 雙擊startup.bat文件,如果出現一個小黑窗口然後就沒了,原因是沒有配置好JAVA_HOME環境變數

    Tomcat本質是一個Java程式,所以要jdk,會去根據Java_HOME使用指定的jdk

    • JAVA_HOME必須全大寫

    • JAVA_HOME中間必須是下劃線

    • JAVA_HOME配置的路徑只需要配置到jdk的安裝目錄即可,不需要帶上bin目錄

      image-20221104205348129

  2. 埠8080被佔用了[查看埠:netstat -anb]

    • 如果其他服務程式佔用了8080埠,可以關閉該服務,或者修改Tomcat服務的默認埠8080

3.4Tomcat目錄結構

image-20221104211639616

  • conf目錄中的server.xml文件用於配置tomcat的基本設置(啟動埠,關閉埠,主機名)

  • conf目錄中的web.xml文件用於指定tomcat運行時配置(比如Servlet等)

    image-20221104213021778

  • webapps目錄是存放web應用的,也就是網站

3.5catalina啟動Tomcat

在cmd中切換到Tomcat的bin目錄,輸入catalina run,回車,即可啟動tomcat服務

image-20221104213602049

3.6關閉Tomcat

  1. 點擊tomcat伺服器窗口,直接點擊關閉按鈕

    image-20221104213827356

  2. 進入Tomcat的bin目錄下的shutdown.bat雙擊,就可以停止Tomcat伺服器(推薦

    image-20221104214937884

    在默認情況下,tomcat伺服器在8080埠等待瀏覽器發送請求;此外還有一個監聽埠8009,8009埠可以接收關閉指令shutdown。8009埠監聽到關閉指令之後就會按照正常流程去關閉tomcat伺服器。這種關閉方式可以正常地被寫入日誌中。

    image-20221104215145458

3.7Tomcat服務中部署web應用

  • 什麼是web應用

    1. WEB應用是多個web資源的集合。簡單地說,可以把web應用理解為硬碟上的一個目錄,這個目錄用於管理多個web資源
    2. Web應用通常也稱之為web應用程式,或web工程,通俗地說就是網站
  • WEB應用組成

    一個web應用由多個web資源或其他文件組成,包括html文件,css文件,js文件,動態web頁面,java程式,支援jar包,配置文件等。

    開發人員在開發web應用時,要按照規定目錄結構存放這些文件。否則,在把web應用交給web伺服器管理時,不僅可能會使web應用無法訪問,還會導致web伺服器啟動報錯。

  • JavaWeb程式/應用/工程目錄結構

    image-20221104222821650

  • 部署方式1:將web工程的目錄拷貝到Tomcat的webapps目錄下

    1. news Web工程(目前都是靜態html,圖片)(news為工程名)
    2. 將該news目錄拷貝到Tomcat的webapps目錄下
    3. 瀏覽器輸入://ip[域名]:port/news/子目錄.../文件名

image-20221104224034040 image-20221104224108722

  • 部署方式2:通過配置文件來部署(用得不多)

    1. 在Tomcat下的conf目錄/Catalina/locathost/下,配置文件,比如hsp.xml

      (即,tomcat通過配置,可以把一個web應用映射到指定的目錄,可以解決磁碟空間分配的問題)

      image-20221104224523305

    2. 訪問web工程://ip[域名]:port/hsp/index.html,就表示訪問D:\album目錄下的index.html

      image-20221104224538499

  • ROOT工程的訪問

    1. 在瀏覽器地址欄中輸入的訪問地址如下://ip[域名]:port,沒有Web工程/應用名時,默認訪問的就是ROOT工程
    2. 在瀏覽器地址欄中輸入的訪問地址如下://ip[域名]:port/工程名,沒有資源名,默認訪問的就是index.jsp頁面

localhost:8080/test/test.html

其中locathost:8080是你要訪問的伺服器,test是要訪問的網站(web應用),test.html是該網站的資源

Tags: