Tomcat 與 maven 的安裝與使用教程
目錄
- Tomcat
- 1、下載
- 2、重要目錄
- 3、使用 Tomcat
- 3.1、啟動 Tomcat
- 3.2、使用瀏覽器訪問 Tomcat
- 3.3、通過 webapps 目錄部署頁面
- Maven
- 1、什么是 Maven ?
- 2、使用 Maven
- 2.1、創建項目
- 2.2、maven 管理依賴
Tomcat
談到 “湯姆貓”,大家可能更多想到的是大名鼎鼎的貓和老鼠
事實上,Java 世界中的 “湯姆貓” 完全不是一回事,但是同樣大名鼎鼎
Tomcat 是一個 HTTP 服務器
- HTTP 協議就是 HTTP 客戶端和 HTTP 服務器之間的交互數據的格式
- 同時也通過 ajax 和 Java Socket 分別構造了 HTTP 客戶端
- HTTP 服務器我們也同樣可以通過 Java Socket 來實現,而 Tomcat 就是基于 Java 實現的一個開源免費,也是被廣泛使用的 HTTP 服務器
HTTP 協議我們也可以認為是基于 TCP
HTTP 服務器,就是在 TCP 服務器的基礎上,加上了一些額外的功能:
能夠解析請求中的 HTTP 報文,把請求轉換成結構化數據(對象),也能很方便的構造 HTTP 響應
HTTP 服務器提供了一組 API,方便程序猿直接調用,來操作 HTTP 協議,從而簡化程序猿的開發工程
HTTP 服務器,是屬于很大的類別
這個分類下面,其中包含著很多很多具體的實現,Tomcat 只是其中的一種 (Java 圈子里,最知名的一種) 還有 Nginx
Tomcat HTTP 服務器,按照 HTTP 協議的格式來解析請求,,調用用戶指定的相關代碼,并且按照 HTTP 響應的格式來構造返回數據
1、下載
Tomcat 官網:Apache Tomcat
Apache 是一個組織,就是開發維護 Tomcat 的那個組織,Apache 是開源社區中一個非常有影響力的組織
org 也是一個常見的頂級域名,org 后綴的都表示是一個非營利組織的域名,咱們平時看到的都是 .com… .cn
Tomcat 的版本,會和 JDK 以及 Servlet 的版本都是密切綁定在一起的,我們使用 Tomcat 8 的版本
解壓縮:
2、重要目錄
bin:啟停腳本
.bat
后綴的文件,是 windows 的批處理文件。.sh
后綴的文件,是linux 的 shell 腳本的文件- 都是屬于一雙擊就能運行的程序
- 要想啟動 tomcat 就可以直接雙擊這個
startup.bat
- 既然這里包含了startup.sh,是否意味著當前咱們下載的這個壓縮包,在 linux 上也能直接運行呢??
答案是肯定的!!
Tomcat 其實是基于 Java 實現的,Java跨平臺
conf:Tomcat 的配置文件
- 是通過
xml
的格式來組織的
比如想修改下 tomcat 的端口號,tomcat 默認綁定的是 8080 端口
logs :日志
- 這個目錄中記錄了很多的日志
- 日志其實就是表示了 Tomcat 運行中的一些具體過程細節,日志其實就是通過類似于 printIn 這樣的代碼打印出來的結果
webapps:
- 這個目錄中放的是咱們部署的 servlet 程序
- 每個 servlet 程序,都是一個
war
后綴的文件 (也是一種壓縮包格式),tomcat 會自動把這個war
解壓縮,得到一個目錄 - 每個 war 其實就對應了一個 webapp (相當于是一個網站)
- 一個Tomcat 上,允許你同時部署多個 webapp (多個網站)
正因為,一個 Tomcat 上面可以同時部署多個 Servlet 程序,所以,也可以把 Tomcat 稱為 "Servlet 的容器”,或者簡稱為 “容器”
網上稱:Tomcat是一個容器 container… (經常會見到的)
容器1:Java 集合類 => C++就稱為容器 => 間接的導致了有些 Java 程序猿也管集合類叫做容器
容器2:Tomcat 是 Servlet 的 容器,一個 Tomcat 上面可以承載多個webapp
容器3:Spring 可以管理很多很多個 Bean 對象,Spring 也可以稱為Bean 的容器
容器4:Docker 也是涉及到容器的概念,Docker 可以認為是輕量級的虛擬機 (軟件模擬出來的一個計算機),一個 docker 程序里,可以有多個 “輕量虛擬機”,每個輕量虛擬機里面又可以包含很多程序,就把這個輕量虛擬機稱為容器,進一步的也把 docker 也稱為容器了……
…….
所以未來看到容器這個詞的時候,一定要擦亮眼睛,仔細的結合上下文,來分析分析,當前這個"容器" 到底是啥,不要把不同的容器混為一談!
3、使用 Tomcat
3.1、啟動 Tomcat
運行 startup.bat
看到這句話,說明你的 tomcat 啟動成功
中間的亂碼,是由于統一編碼方式
Tomcat 內部使用的編碼方式,是 utf8 (utf8 就是咱們當下最主流的編碼方式)
但是,咱們使用的 windows 是 "簡體中文版” 默認的字符集是 GBK,cmd 這個程序,也是跟隨了系統的字符集
數據是按照 utf8 來構造的,但是 cmd 在顯示的時候按照了 GBK 的方式來解析,勢必就會出現亂碼!!!
把 cmd 字符編碼改成 utf8 并不容易,cmd 自身沒有提供設置字符集的功能,需要修改電腦的注冊表
Windows 系統的總的配置中心(總指揮部),謹慎修改!!!
Tomcat 還有其他的方式:
- 結合 IDEA來使用
- 在 Linux 上使用
閃退原因:
(1) 原因1 環境變量的問題
Tomcat 要想能運行,得能夠找到 JDK !!!
如何才能找到 JDK? 你的 JDK 到底安裝在系統的哪個位置上了
靠咱們之前最開始的時候配置的 “環境變量”
就是在描述當前咱們把JDK給裝到哪里去了~~,得讓Tomcat 找到JDK的位置,才能去調用嘛
如何解決這個問題? 需要能看到報錯提示!! 閃退了如何看到報錯提示???
方案就是把雙擊運行的腳本直接拖到 cmd 中來運行
如果這里的這一組環境變量,某個有問題,就會告訴你,是誰有問題
不一定是配一個就能好!!! 再重復上述步驟,看接下來報啥錯
類似于上述環境變量,其實 tomca 自身就在嘗試配置,一般來說,tomcat 就自動配好了,但是不排除有些情況下 tomcat 自動配置不生效,這個時候就可以手動配置了
(2) 原因2 端口號被占用了
Tomcat 是一個 HTTP 服務器,啟動的時候要綁定端口,一般是綁定兩個端口號:8080,8005
如果這個端口已經被其他程序占用了,此時你啟動肯定是失效的!!(閃退)
最典型的情況:你已經啟動了一個 tomcat,你再嘗試啟動第二個,第二個 tomcat 妥妥的失敗
第二個情況是很可能電腦上有別的程序占用了 8080 / 8005
比如 web 開發,配置 windows 自帶的 IIS 服務器 (這個服務器默認端口也是 8080 ),如果 IIS 在運行中,tomcat 大概率啟動不了的,找到是哪個程序占用了 8080 / 8005,cmd 輸入 ,關閉對應的程序或者給 tomcat 換個端口
3.2、使用瀏覽器訪問 Tomcat
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-KfT9PUki-1655171538703)(C:\Users\Gwen\Desktop\4e54eaf098194c2dad75cc911f2aab4d.png)]
一般你裝上了 tomcat 就會帶有這個歡迎頁面,127.0.0.1:8080
,看到這個頁面就說明tomcat 已經成功啟動了
光看看歡迎頁面,沒什么意思,需要自己在 \webapps\ROOT
部署一些頁面到 tomcat 上去
通過 Tomcat 訪問:
是可以讓別人訪問你的 html 的,就是做網站的初衷
通過本地文件訪問:
這個方式僅限于,使用自己的主機來訪問,別人的主機想通過這種方式訪問你的 html 是做不到
那么此時能否讓別人訪問我的頁面?不能,這是因為 NAT => IPv4,內網ip 和 外網ip 結合
此時我的 ip是 192.168.178.1,以
- 10.*
- 172.16.* - 172.31*
- 192.168.*
開頭的都是內網ip,內網IP 只能在局域網內部使用,不能被其他局域網直接訪問
除非你連上我的路由器,在同一個局域網里你才能訪問我的主機
因此,要想讓 tomcat 真正做到讓頁面被外面的人訪問,就需要能夠搞一個外網IP,買一個云服務器,就有了一個外網IP !!!
當前 chrome 會把所有的不是 HTTPS 的都標記成 “不安全”,
咱們的 tomcat 也是當然支持 HTTPS (需要額外配置,尤其是你得申請證書
3.3、通過 webapps 目錄部署頁面
雖然咱們部署了頁面到 tomcat 上,但是這里還有個問題,當前如果頁面簡單還好,直接放到 ROOT 就行了
如果當前頁面比較復雜,(若干個 HTML,還依賴了一些 css,圖片,js…) 如果全都堆在這個 ROOT 目錄里,就非常不優雅了
因此更好的做法,是在 webapps 里單獨創建一個目錄,把你的頁面部署到這個目錄中
將博客系統的代碼全部復制進來
出現 404,一般就是你訪問的資源不存在
- 請求的路徑不對
- 路徑雖然對,但是資源沒被服務器加載起來 [此處的原因,重啟下服務器才能加載資源]
通過這個 http://127.0.0.1:8080/blog102/blog_list.html,就會看到我們的博客頁面
壓縮這個 blog102,通過服務器,就可以讓別人訪問自己的頁面
以上內容,都是基于 tomcat 來部署 “靜態頁面”
頁面內容,是固定不變的
后面還需要學習基于 Tomcat 來生成動態頁面 (根據用戶輸入的不同,會得到不同的結果)
像搜狗主頁這種頁面就是靜態頁面
像搜狗的搜索結果頁,這種頁面就是動態頁面,用戶輸入不同的詞,得到的結果是不同的
web 開發主要的工作,其實還是在動態頁面這邊
接下來重點學習的,就是動態頁面的構造
學習 Tomcat 給程序猿提供的這組用來操作 HTTP 的 API => Servlet
這里的 API 和 HTTP 協議緊密相關
正式學習 Servlet 之前,需要先學點前置知識 (HTTP 和 Tomcat 也算是 Servlet 的前置知識)
Maven
1、什么是 Maven ?
maven 是一個 Java 世界中,非常知名的 “工程管理工具” / “構建工具”
核心功能:
1.管理依賴
- 就是指進行一個 A 操作 之前,要先進行一個 B 操作。例如你要結婚,先要有女朋友
- 再比如,editor.md,就依賴了 jquery,得先讓頁面加載 jquery,再加載 editor.md
2.構建 / 編譯(也是在調用 jdk )
3.打包
- 把 java 代碼給構造成
jar
或者war
jar
就是一個特殊的壓縮包,類似于 rar,里面就是把各種.class
文件放到一起了
Java 中常見的程序發布方式
maven 存在的意義就是能夠直接把這些操作串起來,一氣呵成
咱們寫代碼,也是有很多的依賴的 (當前階段,依賴的東西不多)
- 經常會依賴標準庫
- 經常依賴一些第三方庫,引入的一些其他 jar 包~~
比如前面寫 JDBC 代碼的時候,當時就下載了一個 mysql 的驅動包~~ 寫代碼的時候,也可能是有關系很復雜的依賴~~
A-> B -> C ->D
如果你是手動管理這個依賴,這個過程就會相當蛋疼!!! 不光你得研究清楚,每個庫都依賴哪些其他庫
而且還得研究清楚,這些依賴之間的版本是怎么關聯的
為了解決上述的依賴問題,很多編程語言都引入了自己的包管理工具 (自動解決依賴)
Java:Maven Gradle
Python:pip
JS:npm
各種語言都有…
但是除了 C++ … 目前為止,C++ 官方還沒有提供這樣的一個包管理工具,第三方的包管理工具是有,但是問題都很多… 沒有一個像Maven 這種這么成熟的工具~~
咱們當前用的 maven,隔壁 C++ 的小孩們都饞哭了~~
如何下載安裝 maven ?
網上有很多下載安裝 maven 的教程,大家千萬不要去參考!!!
咱們的做法其實就是啥也不干就行了 ( IDEA 內置了現成的 maven )
“不打等于上分”
2、使用 Maven
2.1、創建項目
搭配 IDEA 的使用方式:選擇 maven 的方式來創建項目
這幾個東西的用途就是,如果你寫了一個程序,你要發布到 maven 中央倉庫上,這三個參數就是你這個程序在中央倉庫的身份標識
下載 mysql 的驅動包,就是從 中央倉庫 搞的呀~~
Java 圈子里有很多的大佬實現了很多的第三方庫~~ 這么多第三方庫,組織形式就是把他們統一放到一個中央倉庫這里,方便用戶去查找
這個是創建好的項目的目錄結構~~src/main/java
這個目錄用來放咱們的 java 代碼~~
src/main/resources
這個目錄用來放一些依賴的資源
src/test/java
這個目錄用來放單元測試的代碼~~ (暫時不涉及)
pom.xml
這個是maven 項目的核心配置文件,一個 maven 項目的司令部~~
——文件是使用 xml 這種格式來組織~~
創建好項目后,如何使用?
右標簽菜單,如果沒有,在 View-Tool Windows-Maven
這里羅列的這些內容,其實都是可以通過 maven 來進行操作的
咱們用的最多的打包
打包不僅僅是完成打包,會執行上面的所有操作~~
這里的打包結果一般是一個 jar
或者是一個 war
2.2、maven 管理依賴
使用 maven 幫我們下載并安裝第三方庫~~
以 mysql 驅動包為例
- 去中央倉庫上,找到 mysql 驅動包 Maven Repository MySQL Connector/J » 5.1.47 版本
- 把這里的 maven 標簽頁下的這個 xml 配置給復制下來~~
把這個內容粘貼到 pom.xml
在 dependencies
標簽中,可以放多個 dependency 標簽,一個項目可以引入多個依賴
初始情況下的 pom.xml
可能沒有這個標簽,就需要手動創建一下
一般來說,maven 就會自動從中央倉庫那里來下載依賴了~~
—般會在右下角這里顯示一個下載的狀態~~
第一次使用的時候,可能會下載比較久,一旦下載好了之后,后續就能直接用了
(第一次使用的時候,mysql 和 版本啥的這幾個字是紅色的)
如果 idea 沒有自動觸發下載,手動點 maven 右上角的刷新按鈕
由于中央倉庫,服務器在國外~~ 下載速度可能會比較慢!!! 默認的源在國外,是不太穩定的,如果你實在不行,也可以手動的把 maven 倉庫給配置成使用國內的源 (使用國內的中央倉庫),能用默認的源,就用默認的,默認的源大部分情況下是好的
出現了這條: Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6,把所有的文件刪除掉,再次執行更新就能夠解決這個問題,這次終于成功了!
如果看到了下圖這個庫,說明就是引入成功了!!!
如果沒有這個庫,嘗試點擊右上角的那個刷新按鈕,你要注意右下角的下載的進度條~~
無論是 maven 還是其他的庫,都是通過同樣的方式來引入的,只要把對應的 xml 片段(坐標) 拷貝到你的 pom.xml 中即可~~
到此這篇關于Tomcat 與 maven 的安裝與使用的文章就介紹到這了,更多相關Tomcat 與 maven安裝內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
