整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Tomcat服務器目錄和部署方式

          最近有小伙伴反映在最近面試過程中,有面試官提到關于Tomcat服務器中目錄的作用及其部署項目的方式,有的小伙伴天天在使用Tomcat服務器,但是可能沒有注意這些細微的知識點,所以今天我就寫一份資料供大家學習,多多交流。

          一、Tomcat服務器每個目錄作用

          1. Tomcat解壓縮目錄如下


          1. 每個目錄的作用如下

          二、Tomcat部署項目三種方式

          第一種

          1. 將項目放在webapps目錄下,直接將 web 項目文件(一般是復制生成的war包)復制到tomcat的webapps目錄中,如下


          1. 通過 運行tomcat后,打開網頁輸入網址 http://127.0.0.1:8080/testweb/index.html

          第二種

          1. 配置Tomcat的conf目錄下的server.xml文件,
          2. 在Server.xml中添加標簽體如下:
          <Context docBase="…" path="…" />
          docBase:項目存放的路徑
          path:虛擬目錄,自己任意設置
          <Context docBase="d:\work\testweb\web" path="/testweb" reloadable="true"/>

          3.

            1. 訪問地址: http://127.0.0.1:8080/testweb/index.html

          第三種

          1. 在本地tomcat的conf目錄中,新建Catalina/localhost目錄(這里要注意文件名的大小寫),然后在該目錄下新建一個xml文件,名字不可以隨意取,要和path后 的名字一致,我這里就應該是testweb.xml文件,它的具體內容為
          <Context docBase="C:\work\testweb\web/>
          1. 配置完畢之后,這里訪問注意 http://127.0.0.1:8080/xml文件名【我們這里是testweb】/index.html

          Vue 作為數據驅動的前端框架,目前比較流行,因此我們公司最新的項目開發(fā)都選擇 “SpringBoot 后臺 + Vue 前端” 這個技術組合。如果一開始就選擇這個技術組合,完全沒問題。

          但是,如果前端技術最初是傳統(tǒng)的 html ,加上 Vue 后,舊的 web.xml 配置的歡迎頁面為 ../index.html ,導致訪問首頁報錯,本文來分析下這個問題。

          SpringBoot + 傳統(tǒng) webapp

          一個基于 SpringBoot 的 web 應用,工程最初選擇的前端技術是 html 和 jsp 所以有 webapp 目錄,且指定了 web.xml 文件:


          webapps 目錄下有默認首頁 index.html

          SpringBoot+ Vue 新組合

          前端使用 Vue ,配置 vue.config.js 中 build 目錄為

          module.exports = {
            outputDir: './src/main/resources/static',
            publicPath: './',
            devServer: {
              port: 8080, // 端口
            },
          };

          maven 打包時,執(zhí)行前端打包命令,完成前后臺內容統(tǒng)一打包:

          <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>exec-maven-plugin</artifactId>
                  <executions>
                    <execution>
                      <id>exec-npm-install</id>
                      <phase>prepare-package</phase>
                      <goals>
                        <goal>exec</goal>
                      </goals>
                      <configuration>
                        <executable>npm</executable>
                        <arguments>
                          <argument>install</argument>
                        </arguments>
                        <workingDirectory>./</workingDirectory>
                      </configuration>
                    </execution>
                    <execution>
                      <id>exec-npm-run-build</id>
                      <phase>prepare-package</phase>
                      <goals>
                        <goal>exec</goal>
                      </goals>
                      <configuration>
                        <executable>npm</executable>
                        <arguments>
                          <argument>run</argument>
                          <argument>build</argument>
                        </arguments>
                        <workingDirectory>./</workingDirectory>
                      </configuration>
                    </execution>
                  </executions>

          新舊疊加產生的打包問題

          使用了 webapp 目錄,同時又有 vue 時,打包生成的 xxx.war 包部署到 Tomcat 后,直接訪問應用,由于 web.xml 中指定了路徑 ../index.html,后臺報錯:


          catalina.out 異常:

          22-Nov-2020 07:36:52.993 嚴重 [http-nio-8080-exec-5] 
          org.apache.coyote.http11.Http11Processor.service 錯誤的處理請求
          	java.lang.IllegalArgumentException: 
          	資源路徑[/../index.html]已規(guī)范化為無效的[null]

          首頁靜態(tài)文件檢索路徑如何

          第一種,static/index.html

          刪掉 webapps 目錄下的 index.html 和 web.xml 這兩個文件后,重啟應用,能正常訪問到 static 目錄下的 index.html 頁面:

          第二種,如果保留 webapp 下的 index.html 和 web.xml 文件后,SpringBoot 默認的 web.xml 配置文件失效。此時,修改自定義的 web.xml 修正路徑為 index.html 去掉相對路徑后,再次訪問,能正常:

          第三種, 編輯 web.xml 配置文件路徑為 ./index.html 效果和 index.html 一樣。這就會走 SpringBoot 默認的靜態(tài)文件查找邏輯。

          啟示錄

          第一點,自定義的 web.xml 會覆蓋掉 SpringBoot 的默認配置。

          第二點,web.xml 中指定了相對路徑 ./index.htmlindex.html ,相對查找順序是先 /static ,再是 / ,所以都能成功查到首頁。

          第三點,web.xml 中只指定一個 welcome-file 文件 ../index.html 文件,訪問報錯,但是如果再隨便加一行配置,就能走默認查找到 static 的文件


          通過各種配置測試,發(fā)現沒有辦法通過自定義的 web.xml 修改 SpringBoot 的應用的首頁,這點也挺讓筆者捉摸不透的!

          、JSP簡介

          JSP:Java Server Pages。在傳統(tǒng)的HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(tag),就構成了JSP網頁。

          二、學習重點:

          • JSP語法(腳本、指令、動作)
          • JSP的內置對象
          • 創(chuàng)建動態(tài)的內容
          • 用戶會話跟蹤

          三、使用tomcat軟件在本地搭建服務器:

          TomcatApache組織的Jakarta項目中的一個重要子項目,是Sun公司推薦的運行Servlet和JSP的容器(引擎),其源代碼完全公開。有了這個服務器,就相當于在本地的計算機有了一個網站,然后我們可以通過瀏覽器來訪問這個網站。

          下載Tomcat


          下載之后,將壓縮包解壓:

          Tomcat文件

          注意目錄名不能有中文和空格。目錄介紹如下:

          • bin:二進制執(zhí)行文件。里面最常用的文件是startup.bat
          • conf:配置目錄。里面最核心的文件是server.xml。可以在里面改端口號等。默認端口號是8080,也就是說,此端口號不能被其他應用程序占用。
          • lib:庫文件。tomcat運行時需要的jar包所在的目錄
          • logs:日志
          • temp:臨時產生的文件,即緩存
          • webapps:web的應用程序。web應用放置到此目錄下瀏覽器可以直接訪問
          • work:編譯以后的class文件。

          軟件運行之前要保證Java環(huán)境變量已經配置:

          jdk環(huán)境變量

          上圖中,變量名為JAVA_HOME,變量值為:JDK安裝的絕對路徑。

          注:Catalina_Home環(huán)境變量:指定tomcat在啟動時啟動哪個tomcat,一般不推薦配置。

          回到tomcat的bin目錄中, 雙擊startup.bat:

          啟動Tomcat文件

          之后彈出如下界面:

          啟動成功

          這個時候,本地的服務器就已經搭建起來了。如果想關閉服務器,可以直接關閉上面的窗口,或者在里面輸入Ctrl+C禁止服務。

          首先查看自己電腦的ip地址,我的計算機的ip地址為:192.168.1.112。

          在瀏覽器中輸入http://192.168.1.112:8080/(或者輸入http://localhost:8080/也是可以的)。如果彈出如下界面,進入本地服務器的首頁,表示tomcat安裝成功并且啟動起來了:

          Toncat啟動表示成功

          三、將Tomcat和eclipse相關聯:

          1.打開eclipse for Java EE ,選擇菜單欄Windows-->preferences,彈出如下界面:


          主站蜘蛛池模板: 亚洲av日韩综合一区二区三区| 日韩精品一区二区午夜成人版| 人妻无码久久一区二区三区免费| 精品日韩在线视频一区二区三区| chinese国产一区二区| 亚洲A∨精品一区二区三区| 精品一区二区三区在线观看| 精品国产日韩亚洲一区| 激情综合一区二区三区| 天堂资源中文最新版在线一区 | 伊人色综合视频一区二区三区| 日本在线视频一区二区| 一区二区免费国产在线观看| 精品乱人伦一区二区三区| 中文字幕一区二区三匹| 免费人人潮人人爽一区二区| 亚洲成av人片一区二区三区 | 国产成人精品一区二三区 | 久久国产精品一区二区| 日本精品无码一区二区三区久久久 | 久久青草精品一区二区三区| 亚洲一区在线视频观看| 一区二区视频免费观看| 99精品一区二区三区| 日韩精品一区二区三区中文字幕 | 国产中文字幕一区| 亚洲色无码一区二区三区| 国产精品久久久久久一区二区三区 | 亚洲国产激情一区二区三区| 文中字幕一区二区三区视频播放| 福利一区二区视频| 在线精品国产一区二区| 国产AV国片精品一区二区| 午夜影院一区二区| 亚洲av午夜福利精品一区| 痴汉中文字幕视频一区| 老熟妇高潮一区二区三区| 一区二区视频在线观看| 好爽毛片一区二区三区四| 国产一区二区在线观看视频| 亚洲男女一区二区三区|