1. 程式人生 > >基於Spring MVC和Tomcat伺服器的JavaWeb專案----入門篇

基於Spring MVC和Tomcat伺服器的JavaWeb專案----入門篇

1 軟體工具準備

(1) JDK: jdk-8u92-windows-i586.exe (jdk1.8.0_92)
(2) Eclipse:eclipse-jee-luna-SR2-win32.zip
(3) Tomcat: apache-tomcat-7.0.70-windows-x86.zip
(4) Spring-framework: spring-framework-4.3.2.RELEASE-dist.zip
(5)依賴jar包:
1) Spring4.3.2下的jar包
2) commons-logging-1.2.jar;jstl-1.1.2.jar;standard-1.1.2.jar三個依賴jar包

2 專案開發過程

2.1 在Eclipse中建立一個web專案

這裡寫圖片描述
這裡寫圖片描述

一直點選“Next”按鈕,直到出現下圖:
這裡寫圖片描述

將上述紅色框中選中,就會在WebContent下直接生成一個web.xml的配置檔案,否則就需要我們手動新建一個web.xml檔案。最後點選“Finish”按鈕

說明:
至此建立了一個動態的web工程,取名為springMVCDemo;
上圖紫色框中是我本機配置的Tomcat伺服器(可根據自己配置的來選擇)

至此,我們看到新建好的動態web工程專案框架如下所示:
這裡寫圖片描述

2.2 新增依賴jar包

(1)解壓縮spring-framework-4.3.2.RELEASE-dist.zip,將\ libs目錄下的所有jar包拷貝到專案的\WEB-INF\lib下

(2) commons-logging-1.2.jar;jstl-1.1.2.jar;standard-1.1.2.jar三個依賴jar包也拷貝到專案的\WEB-INF\lib下

2.3 配置WEB-INF目錄下的web.xml檔案

在web.xml檔案中,我們主要配置的是前端控制器DispatcherServlet,配置如下:

這裡寫圖片描述

注意:
(1) 紫色框為預設生成的,我們只需要配置紅色框中的內容

(2) 在紅色框中,我們聲明瞭一個Servlet(即DispatcherServlet前端控制器)來接收所有型別的使用者請求

(3) 1:表示啟動容器時初始化該Servlet;

(4) < url-pattern >.do:表示哪些請求交給Spring Web MVC處理,“

.do”是用來定義預設Servlet對映的。也可以如“*.html”表示攔截所有以html為副檔名的請求。

至此,使用者請求已交給Spring Web MVC框架來處理,因此我們需要配置Spring的配置檔案,預設的DispatcherServlet會載入WEB-INF/ Servlet_Name-servlet.xml配置檔案。對應本例即為WEB-INF/springMVCDemo-servlet.xml。

2.4 配置WEB-INF目錄下的springMVCDemo-servlet.xml檔案

在這裡,我們看到專案的WEB-INF目錄下沒有springMVCDemo.xml檔案,這個是需要我們自己建立的。

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

說明:

上圖中的藍色框是預設生成的,即在專案springMVCDemo的WebContent目錄下的WEB-INF目錄下新建了一個名為springMVCDemo-servlet.xml檔案。

注意:
這裡的springMVCDemo-servlet.xml前面部分(springMVCDemo)一定要與web.xml檔案中標籤對springMVCDemo一致。

新建完springMVCDemo-servlet.xml檔案後,我們對其配置如下:
這裡寫圖片描述

說明:

(1) InternalResourceViewResolver:用於支援Servlet、JSP檢視解析

(2) prefix和suffix:查詢檢視頁面的字首和字尾(字首[邏輯檢視名]字尾),比如傳過來的邏輯檢視名為hello,則該jsp檢視頁面應該存放在“/WEB-INF/jsp/hello.jsp”

(3) 檢視解析器用於把在控制器中handler的結構解析為實際的物理檢視,這個要配合controller類來解析,詳見下面。

2.5 在src目錄下新建一個Controller

首先,在src目錄下新建一個package,取名為springMVCDemo.web.controller

這裡寫圖片描述
這裡寫圖片描述

接著,在springMVCDemo.web.controller下新建一個HelloWorldController類,如下:
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

說明:

上述紫色框中是預設生成的,紅色框中是我們新建的java類的名稱
HelloWorldController.java中的實現方法如下:
這裡寫圖片描述

注意:
當我們寫下如上程式碼時,我們發現有提示錯誤如下:
(1)The import org.springframework cannot be resolved
這是我遇到的一個最大的問題,為什麼我已經匯入了spring-framework的jar包,可是為什麼還會報錯呢???
通過不斷的找度娘,終於找到了問題的答案。那就是spring-framework的jar包時一開始就匯入了,而HelloWorldController是後來建立的,兩者沒有建立關聯,解決方法是,重啟一下Eclipse軟體。
(2)The method handleRequest(HttpServletRequest, HttpServletResponse) of type HelloWordController must override or implement a supertype method
解決方法:讓HelloWorldCOntroller繼承自Controller

最終HelloWorldController.java的實現如下:
這裡寫圖片描述

2.6 回到springMVCDemo-servlet.xml檔案

當我們實現了Controller配置之後,我們需要將其新增到springMVCDemo-servlet.xml檔案中,實現如下:
這裡寫圖片描述

2.7 在WebContent目錄下新建一個index.jsp檔案

這裡寫圖片描述
這裡寫圖片描述

index.jsp實現如下:
這裡寫圖片描述

2.8 部署到Tomcat伺服器並執行

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

此時,我們看到專案下方的Servers中伺服器Tomcat v7.0已經變味了啟動狀態(Started, Synchronized),同時我們的專案springMVCDemo也已經部署到了Tomcat伺服器中(紅色標記處),並且是[Synchronized]狀態了。
這裡寫圖片描述

同時Eclipse的顯示框瀏覽器中,顯示出了我們想要看到的歡迎字樣,如下:
這裡寫圖片描述