JavaWeb-Tomcat服務器

文章目錄

  • Web服務器存在的意義
  • 關于Web服務器軟件
  • Tomcat服務器簡介
  • 安裝Tomcat服務器
  • Tomcat服務器源文件解析
  • 配置Tomcat的環境變量
  • 啟動Tomcat服務器
  • 一個最簡單的webapp(不涉及Java)

Web服務器存在的意義

我們之前介紹過Web服務器進行通信的原理, 但是我們當時忘記了一點, 服務器上的程序都是通過一種服務器軟件來進行管理的, 我們叫做服務器軟件, 我們請求資源也是請求服務器上不同軟件種的不同的資源, 示意圖如下

在這里插入圖片描述

關于Web服務器軟件

運行在服務器上的Web服務器軟件有好多款, 下面是常見的幾種

  • Tomcat(Web服務器)
  • Jetty(Web服務器)
  • JBOSS(應用服務器)
  • WebLogic(應用服務器)
  • WebSphere(應用服務器)

web服務器和應用服務器的區別
我們的JavaEE規范一共有13種, 我們的應用服務器實現了全部的JavaEE規劃, Web服務器僅僅實現了JavaEE規范中的servlet和jsp, 所以應用服務器其實是包含Web服務器的, 比如JBOSS服務器其實內置了Tomcat服務器

Tomcat服務器簡介

Tomcat服務器Apache開源組織開發的一款輕量級的Web服務器, 具有輕量級, 速度快, 免費開源等優點, 而且Tomcat服務器是由純Java語言開發的(所以運行需要安裝JRE, 所以安裝JDK是必要的), 而且還要設置JAVA_HOME環境變量, 后面配置要用
tomcat還有另外一個名字:catalina(catalina是美國的一個島嶼,風景秀麗,據說作者是在這個風景秀麗的小島上開發了一個輕量級的WEB服務器,體積小,運行速度快,因此tomcat又被稱為catalina)tomcat的是一只公貓(寓意表示Tomcat服務器是輕巧的,小巧的,果然,體積小,運行速度快,只實現了Servlet+JSP規范)

關于Apache開源組織的官方網址

Apache開源組織官網地址

我們可以找到有大量的開源項目

在這里插入圖片描述

安裝Tomcat服務器

我們打開Tomcat官網, 找到Tomcat服務器的安裝地址, 我們需要安裝的是

  • core zip(pgp,sha512): Tomcat服務器的本體
  • source code zip(pgp, sha512): Tomcat服務器的源代碼(源碼分析)
    在這里插入圖片描述

Tomcat服務器源文件解析

我們下載壓縮包解壓之后就自動安裝了Tomcat服務器, 我們簡單介紹一下目錄
在這里插入圖片描述


bin目錄

Tomcat命令文件存在的地方, 比如啟動Tomcat, 關閉Tomcat

我們關注一個文件startup.bat
bat文件其實就是在window操作系統下的命令的集合文件, 也就是Windows批處理文件, 里面都是dos命令, 而在Linus系統下, .bat是.sh, 因為Linux使用命令的方式, 不是dos命令, 而是shell命令

在這里插入圖片描述
在這里插入圖片描述

上圖代表window的啟動命令的集合, 而下圖代表linux的啟動命令的集合

我們打開這個文件查看相關內容
在這里插入圖片描述
大致可以了解, window啟動startup.bat的方式, 其實是進一步運行了catalina.bat來完成的

在這里插入圖片描述
我們現在打開這個文件查看, 搜索mainclass, 因為Tomcat服務器是Java語言寫的, 所以必然存在一個程序的入口, 也就是main函數

在這里插入圖片描述
我們在最開始的時候就說, 我們下載了Tomcat的源代碼, 現在我們根據上面提供的類的路徑找到這個Java源文件
在這里插入圖片描述
進一步就可以找到Tomcat服務器啟動的入口, 也就是main函數


conf目錄

配置文件所在的目錄

在這里插入圖片描述
這個目錄下全是Tomcat服務器的配置文件, 比如我們查看其中一個server.xml, 里面就可以配置端口號相關的信息(默認的端口號是8080)
在這里插入圖片描述


lib目錄

這個是我們Tomcat服務器程序的核心文件, 里面都是以jar包形式存在的.class字節碼文件

在這里插入圖片描述
但是我們上面畫出來的servlet-api.jar這個不是我們Tomcat服務器的實現, 這是我們JavaEE的規劃接口, 真正的Tomcat服務器程序都是基于這個規范來寫的(類似JDBC)


剩下的幾個文件不是那么重要簡單過一下

  • logs: Tomcat服務器的日志目錄,Tomcat服務器啟動等信息都會在這個目錄下生成日志文件,
  • temp:Tomcat股務器的臨時目錄,存儲臨時文件。
  • webapps:這個目錄當中就是用來存放大量的webapp(webapplication:web應用)
  • work:這個目錄是用來存放JSP文件翻譯之后的java文件以及編譯之后的class文件

關于webapps這個目錄, 我們之前就說, 一個Tomcat服務器管理多個web應用程序, 所以這里面其實存儲的都是我們的web應用程序

在這里插入圖片描述
可以看到webapps目錄下有很多的自帶的web應用程序

配置Tomcat的環境變量

在配置Tomcat的環境變量之前, 一定要配置JAVA_HOME, 因為startup.bat調用的catalina.bat中需要JAVA_HOME, 沒有配置JAVA_HOME的話, 我們的tomcat服務器的環境變量就會配置失效

  • 配置CATALINA_HOME也就是安裝Tomcat服務器的地址

在這里插入圖片描述

  • Path中配置bin目錄的路徑

在這里插入圖片描述

啟動Tomcat服務器

  • 使用startup.bat命令啟動Tomcat服務器

在這里插入圖片描述
在這里插入圖片描述
雖然都是亂碼, 但是服務器已經啟動成功了

我們通過瀏覽器來驗證
在搜索框搜索http://127.0.0.1:8080
在這里插入圖片描述
如果展示上面的頁面, 就說明啟動成功了
這里為什么會展示這樣一個頁面呢, 因為我們有webapps默認的…

  • 使用shutdown.bat命令關閉Tomcat

這里我們想說一句, shutdown是window關機的命令, 所以我們不推薦使用這種方式, 我們建議把shutdown.bat文件改名, 比如我們就改為了stop.bat

在這里插入圖片描述

一個最簡單的webapp(不涉及Java)

上面我們說了, 所有的webapp都存在于webapps這個文件夾中, 所以我們想寫一個web應用, 必須在這個文件夾中寫(不要多想)

創建一個項目oa, 然后創建一個login.html
在這里插入圖片描述
我們在瀏覽器中請求獲取這個資源

http://127.0.0.1:8080/oa/login.html

在這里插入圖片描述
結果如上圖所示, 這代表我們的Tomcat服務器返回給了用戶一個資源文件…

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70334.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70334.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【愚公系列】《Python網絡爬蟲從入門到精通》008-正則表達式基礎

標題詳情作者簡介愚公搬代碼頭銜華為云特約編輯,華為云云享專家,華為開發者專家,華為產品云測專家,CSDN博客專家,CSDN商業化專家,阿里云專家博主,阿里云簽約作者,騰訊云優秀博主,騰訊云內容共創官,掘金優秀博主,亞馬遜技領云博主,51CTO博客專家等。近期榮譽2022年度…

視覺分析之邊緣檢測算法

9.1 Roberts算子 Roberts算子又稱為交叉微分算法,是基于交叉差分的梯度算法,通過局部差分計算檢測邊緣線條。 常用來處理具有陡峭的低噪聲圖像,當圖像邊緣接近于正45度或負45度時,該算法處理效果更理想。 其缺點是對邊緣的定位…

DuodooBMS源碼解讀之 sale_change模塊

銷售變更模塊用戶使用手冊 一、模塊概述 本擴展模塊主要包含兩個主要的 Python 文件:sale_change/report/sale_change_report.py 和 sale_change/wizard/sale_change_download.py,提供了銷售變更報表查看和銷售變更單下載的功能。以下是詳細的使用說明…

OpenCV形態學操作

1.1. 形態學操作介紹 初識: 形態學操作是一種基于圖像形狀的處理方法,主要用于分析和處理圖像中的幾何結構。其核心是通過結構元素(卷積核)對圖像進行掃描和操作,從而改變圖像的形狀和特征。例如: 腐蝕&…

力扣算法-1

力扣算法 1 兩數之和 給定一個整數數組nums和一個整數目標值target,請你在數組中找出和為目標值target的那兩個整數,返回他們的數組下標。 (1)暴力枚舉 (枚舉數組每一個數x,再尋找數組中是否存在 targe…

pyside6學習專欄(三):自定義QLabel標簽擴展類QLabelEx

標簽是界面設計中最常用的控件,本文演示了如何基于PySide6的QLabex控件類擴展定義QLabelEX類,以實現更少的編碼完成各種圖像、彩色文本、動畫的加載和顯示,豐富界面顯示 本示例演示了QLabel和其擴展類QLabelEx分別顯示文本、圖像、動畫的使用…

從0到1:固件分析

固件分析 0x01 固件提取 1、從廠商官網下載 例如D-link的固件: https://support.dlink.com/resource/products/ 2、代理或鏡像設備更新時的流量 發起中間人攻擊MITM #啟用IP轉發功能 echo 1 > /proc/sys/net/ipv4/ip_forward#配置iptables,將目…

使用 Spring Boot 和 Canal 實現 MySQL 數據庫同步

文章目錄 前言一、背景二、Canal 簡介三、主庫數據庫配置1.主庫配置2.創建 Canal 用戶并授予權限 四.配置 Canal Server1.Canal Server 配置文件2.啟動 Canal Server 五.開發 Spring Boot 客戶端1. 引入依賴2. 配置 Canal 客戶端3. 實現數據同步邏輯 六.啟動并測試七.注意事項八…

Linux系統配置阿里云yum源,安裝docker

配置阿里云yum源 需要保證能夠訪問阿里云網站 可以先ping一下看看(阿里云可能禁ping,只要能夠解析為正常的ip地址即可) ping mirrors.aliyun.com腳本 #!/bin/bash mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos…

后端開發:開啟技術世界的新大門

在互聯網的廣闊天地中,后端開發宛如一座大廈的基石,雖不直接與用戶 “面對面” 交流,卻默默地支撐著整個互聯網產品的穩定運行。它是服務器端編程的核心領域,負責處理數據、執行業務邏輯以及與數據庫和其他后端服務進行交互。在當…

銀河麒麟系統安裝mysql5.7【親測可行】

一、安裝環境 cpu:I5-10代; 主板:華碩; OS:銀河麒麟V10(SP1)未激活 架構:Linux 5.10.0-9-generic x86_64 GNU/Linux mysql版本:mysql-5.7.34-linux-glibc2.12-x86_64.ta…

從零開始學習PX4源碼9(部署px4源碼到gitee)

目錄 文章目錄 目錄摘要1.gitee上創建倉庫1.1 gitee上創建倉庫PX4代碼倉庫1.2 gitee上創建子倉庫2.固件在gitee部署過程2.1下載固件到本地2.2切換本地分支2.3修改.gitmodules內容2.4同步子模塊倉庫地址2.5同步子模塊倉庫地址更新(下載)子模塊3.一級子模塊和二級子模塊的映射關…

【回溯算法2】

力扣17.電話號碼的字母組合 鏈接: link 思路 這道題容易想到用嵌套的for循環實現,但是如果輸入的數字變多,嵌套的for循環也會變長,所以暴力破解的方法不合適。 可以定義一個map將數字和字母對應,這樣就可以獲得數字字母的映射了…

科普:“Docker Desktop”和“Docker”以及“WSL”

“Docker Desktop”和“Docker”這兩個概念既有緊密聯系,又存在一定區別: 一、聯系 核心功能同源:Docker Desktop 本質上是基于 Docker 核心技術構建的。Docker 是一個用于開發、部署和運行應用程序的開源平臺,它利用容器化技術…

Flutter 網絡請求與數據處理:從基礎到單例封裝

Flutter 網絡請求與數據處理:從基礎到單例封裝 在 Flutter 開發中,網絡請求是一個非常常見的需求,比如獲取 API 數據、上傳文件、處理分頁加載等。為了高效地處理網絡請求和數據管理,我們需要選擇合適的工具并進行合理的封裝。 …

虛擬表格實現全解析

在數據展示越來越復雜的今天,大量數據的渲染就像是“滿漢全席”——如果把所有菜肴一次性擺上桌,既浪費資源也讓人眼花繚亂。幸運的是,我們有兩種選擇: 自己動手:通過二次封裝 Element Plus 的表格組件,實…

QT 讀寫鎖

一、概述 1、讀寫鎖是一種線程同步機制,用于解決多線程環境下的讀寫競爭問題。 2、讀寫鎖允許多個線程同時獲取讀鎖(共享訪問),但只允許一個線程獲取寫鎖(獨占訪問)。 3、這種機制可以提高并發性能&…

2025 vue3面試題匯總,通俗易懂

一、基礎概念與核心特性 1. Vue3 相比 Vue2 的改進(通俗版) 問題:Vue3 比 Vue2 好在哪? 答案: 更快: Proxy 代理:Vue2 的響應式像“逐個監聽保險箱”(每個屬性單獨監聽&#xff0…

第5章:在LangChain中如何使用AI Services

這篇文章詳細介紹了 LangChain4j 中的 AI Services 概念,展示了如何通過高層次的抽象來簡化與大語言模型(LLM)的交互。AI Services 的核心思想是隱藏底層復雜性,讓開發者專注于業務邏輯,同時支持聊天記憶、工具調用和 …

二叉樹(數據結構)

二叉樹 二叉樹也是用過遞歸定義的結構 先序遍歷又稱前序遍歷 ?? ?? 按照先序遍歷的方法去手算處理這個二叉樹 ?? 先A B C 再 A B D E C(也就是把B換成BDE再放進去) 再 A B D E C F 看這個插入的方法要掌握像二叉樹這樣向一個…