人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Tomcat?與?maven?的安裝與使用教程

發(fā)布日期:2022-07-20 19:56 | 文章來源:源碼中國

Tomcat

談到 “湯姆貓”,大家可能更多想到的是大名鼎鼎的貓和老鼠

事實上,Java 世界中的 “湯姆貓” 完全不是一回事,但是同樣大名鼎鼎

Tomcat 是一個 HTTP 服務(wù)器

  • HTTP 協(xié)議就是 HTTP 客戶端和 HTTP 服務(wù)器之間的交互數(shù)據(jù)的格式
  • 同時也通過 ajax 和 Java Socket 分別構(gòu)造了 HTTP 客戶端
  • HTTP 服務(wù)器我們也同樣可以通過 Java Socket 來實現(xiàn),而 Tomcat 就是基于 Java 實現(xiàn)的一個開源免費,也是被廣泛使用的 HTTP 服務(wù)器

HTTP 協(xié)議我們也可以認為是基于 TCP
HTTP 服務(wù)器,就是在 TCP 服務(wù)器的基礎(chǔ)上,加上了一些額外的功能:
能夠解析請求中的 HTTP 報文,把請求轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù)(對象),也能很方便的構(gòu)造 HTTP 響應(yīng)
HTTP 服務(wù)器提供了一組 API,方便程序猿直接調(diào)用,來操作 HTTP 協(xié)議,從而簡化程序猿的開發(fā)工程

HTTP 服務(wù)器,是屬于很大的類別
這個分類下面,其中包含著很多很多具體的實現(xiàn),Tomcat 只是其中的一種 (Java 圈子里,最知名的一種) 還有 Nginx

Tomcat HTTP 服務(wù)器,按照 HTTP 協(xié)議的格式來解析請求,,調(diào)用用戶指定的相關(guān)代碼,并且按照 HTTP 響應(yīng)的格式來構(gòu)造返回數(shù)據(jù)

1、下載

Tomcat 官網(wǎng):Apache Tomcat

Apache 是一個組織,就是開發(fā)維護 Tomcat 的那個組織,Apache 是開源社區(qū)中一個非常有影響力的組織

org 也是一個常見的頂級域名,org 后綴的都表示是一個非營利組織的域名,咱們平時看到的都是 .com… .cn

Tomcat 的版本,會和 JDK 以及 Servlet 的版本都是密切綁定在一起的,我們使用 Tomcat 8 的版本

解壓縮:

2、重要目錄

bin:啟停腳本

  • .bat 后綴的文件,是 windows 的批處理文件。.sh 后綴的文件,是linux 的 shell 腳本的文件
  • 都是屬于一雙擊就能運行的程序
  • 要想啟動 tomcat 就可以直接雙擊這個 startup.bat
  • 既然這里包含了startup.sh,是否意味著當前咱們下載的這個壓縮包,在 linux 上也能直接運行呢??

答案是肯定的!!
Tomcat 其實是基于 Java 實現(xiàn)的,Java跨平臺

conf:Tomcat 的配置文件

  • 是通過 xml 的格式來組織的

比如想修改下 tomcat 的端口號,tomcat 默認綁定的是 8080 端口

logs :日志

  • 這個目錄中記錄了很多的日志
  • 日志其實就是表示了 Tomcat 運行中的一些具體過程細節(jié),日志其實就是通過類似于 printIn 這樣的代碼打印出來的結(jié)果

webapps:

  • 這個目錄中放的是咱們部署的 servlet 程序
  • 每個 servlet 程序,都是一個 war后綴的文件 (也是一種壓縮包格式),tomcat 會自動把這個 war 解壓縮,得到一個目錄
  • 每個 war 其實就對應(yīng)了一個 webapp (相當于是一個網(wǎng)站)
  • 一個Tomcat 上,允許你同時部署多個 webapp (多個網(wǎng)站)

正因為,一個 Tomcat 上面可以同時部署多個 Servlet 程序,所以,也可以把 Tomcat 稱為 "Servlet 的容器”,或者簡稱為 “容器”
網(wǎng)上稱:Tomcat是一個容器 container… (經(jīng)常會見到的)

容器1:Java 集合類 => C++就稱為容器 => 間接的導(dǎo)致了有些 Java 程序猿也管集合類叫做容器

容器2:Tomcat 是 Servlet 的 容器,一個 Tomcat 上面可以承載多個webapp

容器3:Spring 可以管理很多很多個 Bean 對象,Spring 也可以稱為Bean 的容器

容器4:Docker 也是涉及到容器的概念,Docker 可以認為是輕量級的虛擬機 (軟件模擬出來的一個計算機),一個 docker 程序里,可以有多個 “輕量虛擬機”,每個輕量虛擬機里面又可以包含很多程序,就把這個輕量虛擬機稱為容器,進一步的也把 docker 也稱為容器了……

…….

所以未來看到容器這個詞的時候,一定要擦亮眼睛,仔細的結(jié)合上下文,來分析分析,當前這個"容器" 到底是啥,不要把不同的容器混為一談!

3、使用 Tomcat

3.1、啟動 Tomcat

運行 startup.bat

看到這句話,說明你的 tomcat 啟動成功

中間的亂碼,是由于統(tǒng)一編碼方式
Tomcat 內(nèi)部使用的編碼方式,是 utf8 (utf8 就是咱們當下最主流的編碼方式)
但是,咱們使用的 windows 是 "簡體中文版” 默認的字符集是 GBK,cmd 這個程序,也是跟隨了系統(tǒng)的字符集
數(shù)據(jù)是按照 utf8 來構(gòu)造的,但是 cmd 在顯示的時候按照了 GBK 的方式來解析,勢必就會出現(xiàn)亂碼!!!

把 cmd 字符編碼改成 utf8 并不容易,cmd 自身沒有提供設(shè)置字符集的功能,需要修改電腦的注冊表

Windows 系統(tǒng)的總的配置中心(總指揮部),謹慎修改!??!

Tomcat 還有其他的方式:

  • 結(jié)合 IDEA來使用
  • 在 Linux 上使用

閃退原因:

(1) 原因1 環(huán)境變量的問題

Tomcat 要想能運行,得能夠找到 JDK !!!
如何才能找到 JDK? 你的 JDK 到底安裝在系統(tǒng)的哪個位置上了

靠咱們之前最開始的時候配置的 “環(huán)境變量”

就是在描述當前咱們把JDK給裝到哪里去了~~,得讓Tomcat 找到JDK的位置,才能去調(diào)用嘛

如何解決這個問題? 需要能看到報錯提示!! 閃退了如何看到報錯提示???
方案就是把雙擊運行的腳本直接拖到 cmd 中來運行

如果這里的這一組環(huán)境變量,某個有問題,就會告訴你,是誰有問題

不一定是配一個就能好!!! 再重復(fù)上述步驟,看接下來報啥錯

類似于上述環(huán)境變量,其實 tomca 自身就在嘗試配置,一般來說,tomcat 就自動配好了,但是不排除有些情況下 tomcat 自動配置不生效,這個時候就可以手動配置了

(2) 原因2 端口號被占用了

Tomcat 是一個 HTTP 服務(wù)器,啟動的時候要綁定端口,一般是綁定兩個端口號:8080,8005
如果這個端口已經(jīng)被其他程序占用了,此時你啟動肯定是失效的!!(閃退)
最典型的情況:你已經(jīng)啟動了一個 tomcat,你再嘗試啟動第二個,第二個 tomcat 妥妥的失敗

第二個情況是很可能電腦上有別的程序占用了 8080 / 8005
比如 web 開發(fā),配置 windows 自帶的 IIS 服務(wù)器 (這個服務(wù)器默認端口也是 8080 ),如果 IIS 在運行中,tomcat 大概率啟動不了的,找到是哪個程序占用了 8080 / 8005,cmd 輸入 ,關(guān)閉對應(yīng)的程序或者給 tomcat 換個端口

3.2、使用瀏覽器訪問 Tomcat

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KfT9PUki-1655171538703)(C:\Users\Gwen\Desktop\4e54eaf098194c2dad75cc911f2aab4d.png)]

一般你裝上了 tomcat 就會帶有這個歡迎頁面,127.0.0.1:8080 ,看到這個頁面就說明tomcat 已經(jīng)成功啟動了
光看看歡迎頁面,沒什么意思,需要自己在 \webapps\ROOT 部署一些頁面到 tomcat 上去

通過 Tomcat 訪問:

是可以讓別人訪問你的 html 的,就是做網(wǎng)站的初衷

通過本地文件訪問:

這個方式僅限于,使用自己的主機來訪問,別人的主機想通過這種方式訪問你的 html 是做不到

那么此時能否讓別人訪問我的頁面?不能,這是因為 NAT => IPv4,內(nèi)網(wǎng)ip 和 外網(wǎng)ip 結(jié)合

此時我的 ip是 192.168.178.1,以

  • 10.*
  • 172.16.* - 172.31*
  • 192.168.*

開頭的都是內(nèi)網(wǎng)ip,內(nèi)網(wǎng)IP 只能在局域網(wǎng)內(nèi)部使用,不能被其他局域網(wǎng)直接訪問
除非你連上我的路由器,在同一個局域網(wǎng)里你才能訪問我的主機

因此,要想讓 tomcat 真正做到讓頁面被外面的人訪問,就需要能夠搞一個外網(wǎng)IP,買一個云服務(wù)器,就有了一個外網(wǎng)IP !!!

當前 chrome 會把所有的不是 HTTPS 的都標記成 “不安全”,
咱們的 tomcat 也是當然支持 HTTPS (需要額外配置,尤其是你得申請證書

3.3、通過 webapps 目錄部署頁面

雖然咱們部署了頁面到 tomcat 上,但是這里還有個問題,當前如果頁面簡單還好,直接放到 ROOT 就行了

如果當前頁面比較復(fù)雜,(若干個 HTML,還依賴了一些 css,圖片,js…) 如果全都堆在這個 ROOT 目錄里,就非常不優(yōu)雅了

因此更好的做法,是在 webapps 里單獨創(chuàng)建一個目錄,把你的頁面部署到這個目錄中

將博客系統(tǒng)的代碼全部復(fù)制進來

出現(xiàn) 404,一般就是你訪問的資源不存在

  • 請求的路徑不對
  • 路徑雖然對,但是資源沒被服務(wù)器加載起來 [此處的原因,重啟下服務(wù)器才能加載資源]

通過這個 http://127.0.0.1:8080/blog102/blog_list.html,就會看到我們的博客頁面

壓縮這個 blog102,通過服務(wù)器,就可以讓別人訪問自己的頁面

以上內(nèi)容,都是基于 tomcat 來部署 “靜態(tài)頁面”

頁面內(nèi)容,是固定不變的
后面還需要學(xué)習基于 Tomcat 來生成動態(tài)頁面 (根據(jù)用戶輸入的不同,會得到不同的結(jié)果)
像搜狗主頁這種頁面就是靜態(tài)頁面
像搜狗的搜索結(jié)果頁,這種頁面就是動態(tài)頁面,用戶輸入不同的詞,得到的結(jié)果是不同的

web 開發(fā)主要的工作,其實還是在動態(tài)頁面這邊

接下來重點學(xué)習的,就是動態(tài)頁面的構(gòu)造
學(xué)習 Tomcat 給程序猿提供的這組用來操作 HTTP 的 API => Servlet

這里的 API 和 HTTP 協(xié)議緊密相關(guān)

正式學(xué)習 Servlet 之前,需要先學(xué)點前置知識 (HTTP 和 Tomcat 也算是 Servlet 的前置知識)

Maven

1、什么是 Maven ?

maven 是一個 Java 世界中,非常知名的 “工程管理工具” / “構(gòu)建工具”

核心功能:

1.管理依賴

  • 就是指進行一個 A 操作 之前,要先進行一個 B 操作。例如你要結(jié)婚,先要有女朋友
  • 再比如,editor.md,就依賴了 jquery,得先讓頁面加載 jquery,再加載 editor.md

2.構(gòu)建 / 編譯(也是在調(diào)用 jdk )

3.打包

  • 把 java 代碼給構(gòu)造成 jar 或者 war
  • jar 就是一個特殊的壓縮包,類似于 rar,里面就是把各種 .class 文件放到一起了

Java 中常見的程序發(fā)布方式

maven 存在的意義就是能夠直接把這些操作串起來,一氣呵成

咱們寫代碼,也是有很多的依賴的 (當前階段,依賴的東西不多)

  • 經(jīng)常會依賴標準庫
  • 經(jīng)常依賴一些第三方庫,引入的一些其他 jar 包~~

比如前面寫 JDBC 代碼的時候,當時就下載了一個 mysql 的驅(qū)動包~~ 寫代碼的時候,也可能是有關(guān)系很復(fù)雜的依賴~~
A-> B -> C ->D

如果你是手動管理這個依賴,這個過程就會相當?shù)疤?!! 不光你得研究清楚,每個庫都依賴哪些其他庫
而且還得研究清楚,這些依賴之間的版本是怎么關(guān)聯(lián)的

為了解決上述的依賴問題,很多編程語言都引入了自己的包管理工具 (自動解決依賴)

Java:Maven Gradle
Python:pip
JS:npm
各種語言都有…
但是除了 C++ … 目前為止,C++ 官方還沒有提供這樣的一個包管理工具,第三方的包管理工具是有,但是問題都很多… 沒有一個像Maven 這種這么成熟的工具~~
咱們當前用的 maven,隔壁 C++ 的小孩們都饞哭了~~

如何下載安裝 maven ?
網(wǎng)上有很多下載安裝 maven 的教程,大家千萬不要去參考!!!
咱們的做法其實就是啥也不干就行了 ( IDEA 內(nèi)置了現(xiàn)成的 maven )
“不打等于上分”

2、使用 Maven

2.1、創(chuàng)建項目

搭配 IDEA 的使用方式:選擇 maven 的方式來創(chuàng)建項目

這幾個東西的用途就是,如果你寫了一個程序,你要發(fā)布到 maven 中央倉庫上,這三個參數(shù)就是你這個程序在中央倉庫的身份標識

下載 mysql 的驅(qū)動包,就是從 中央倉庫 搞的呀~~
Java 圈子里有很多的大佬實現(xiàn)了很多的第三方庫~~ 這么多第三方庫,組織形式就是把他們統(tǒng)一放到一個中央倉庫這里,方便用戶去查找

這個是創(chuàng)建好的項目的目錄結(jié)構(gòu)~~
src/main/java 這個目錄用來放咱們的 java 代碼~~

src/main/resources 這個目錄用來放一些依賴的資源

src/test/java 這個目錄用來放單元測試的代碼~~ (暫時不涉及)

pom.xml 這個是maven 項目的核心配置文件,一個 maven 項目的司令部~~
——文件是使用 xml 這種格式來組織~~

創(chuàng)建好項目后,如何使用?

右標簽菜單,如果沒有,在 View-Tool Windows-Maven
這里羅列的這些內(nèi)容,其實都是可以通過 maven 來進行操作的

咱們用的最多的打包
打包不僅僅是完成打包,會執(zhí)行上面的所有操作~~
這里的打包結(jié)果一般是一個 jar 或者是一個 war

2.2、maven 管理依賴

使用 maven 幫我們下載并安裝第三方庫~~

以 mysql 驅(qū)動包為例

  • 中央倉庫上,找到 mysql 驅(qū)動包 Maven Repository MySQL Connector/J » 5.1.47 版本
  • 把這里的 maven 標簽頁下的這個 xml 配置給復(fù)制下來~~

把這個內(nèi)容粘貼到 pom.xml

dependencies 標簽中,可以放多個 dependency 標簽,一個項目可以引入多個依賴

初始情況下的 pom.xml 可能沒有這個標簽,就需要手動創(chuàng)建一下

一般來說,maven 就會自動從中央倉庫那里來下載依賴了~~
—般會在右下角這里顯示一個下載的狀態(tài)~~

第一次使用的時候,可能會下載比較久,一旦下載好了之后,后續(xù)就能直接用了
(第一次使用的時候,mysql 和 版本啥的這幾個字是紅色的)

如果 idea 沒有自動觸發(fā)下載,手動點 maven 右上角的刷新按鈕

由于中央倉庫,服務(wù)器在國外~~ 下載速度可能會比較慢!!! 默認的源在國外,是不太穩(wěn)定的,如果你實在不行,也可以手動的把 maven 倉庫給配置成使用國內(nèi)的源 (使用國內(nèi)的中央倉庫),能用默認的源,就用默認的,默認的源大部分情況下是好的

出現(xiàn)了這條: Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6,把所有的文件刪除掉,再次執(zhí)行更新就能夠解決這個問題,這次終于成功了!

如果看到了下圖這個庫,說明就是引入成功了!!!

如果沒有這個庫,嘗試點擊右上角的那個刷新按鈕,你要注意右下角的下載的進度條~~

無論是 maven 還是其他的庫,都是通過同樣的方式來引入的,只要把對應(yīng)的 xml 片段(坐標) 拷貝到你的 pom.xml 中即可~~

到此這篇關(guān)于Tomcat與maven的安裝與使用的文章就介紹到這了,更多相關(guān)Tomcat與maven安裝內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

美國服務(wù)器租用

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部