Udemy Course Spring Framework 50 -1st Web Application

ZONGRU Li
5 min readMar 27, 2019

--

Set First Web Application

先建一個新的WorkSpace並也建一個新的Maven專案

填入Maven專案必要資訊,並把Packaging改war以方便佈屬
pom報錯
右鍵按這個紐
就正常了 ˙ω˙

實際上它是協助產生WEB-INF資料挾及web.xml檔:

依此網內容 <-點進去

改寫pom為以下方便講解:

同理複製一個寫法的範例:

貼上
會自己長出package!!

實際code如下:

同理web.xml加一行<welcome-file>login.do</welcome-file>

執行Maven Update:

確認沒有錯誤
執行專案透過Maven Build
引用pom裡定義的tomcat7元件執行

最後會有報錯(8080port已佔用):

所以pom再小改port:

(多紅框這行)
伺服執行中

瀏覽器看上圖的url:http://localhost:8090/

Everything is perfect!

Q1:程式是怎麼run在tomcat上的?

透過以下定義在pom檔內的tomcat:tomcat7-maven-plugin

依定義就會下載tomcat並運行!

Q2:程式是如何編譯?

依pom檔內定義:maven-compiler-plugin

所有的編譯動作(ex包Jar War執行等)都是由這個plugin協助執行

其中定義的java code版本Source為1.7

而包出來的目標target版本也為1.7

Q3:如下圖,我們什麼時候生出javax.servlet.http.HttpServlet套件?

其實就是pom裡定義的javaee-web-api的dependency會自動下載相關套件

其中包含了javax.servlet.http.HttpServlet

同理我們註解:

會出錯!

Maven lib會整個不見!

Q4:web.xml做什麼用?

由web.xml定義,當進到localhost:8090的網址時,會進到welcome-file指定的網頁去,如上圖我們有做login.do的url pattern的網站Servlet

由於沒有定義其他網站,所以可以省略如下

註:後來發現,若後來改用Spring管控,Servlet沒有extends HttpServlet,也

就是沒有Override doGet方法,此網址http://localhost:8090/

將不會依web.xml的welcome-file協助導向jsp頁面去

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet