首先要理解 SpringMVC 應用程序的入口是配置文件 web.xml,其路徑爲「src/main/webapp/WEB-INF/web.xml」,經過它再去關聯 SpringMVC 的配置文件 springmvc-config.xml。
所涉及文件以下圖:javascript
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation=" http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd " id="WebApp_ID" version="3.1"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> classpath*:/config/springmvc-config.xml, classpath*:/config/datasource.cfg.xml, classpath*:/config/activiti.cfg.xml, classpath*:/config/mybatis.cfg.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
<?xml version="1.0" encoding="UTF-8"?> <!-- 在 xsi:schemaLocation 配置中 --> <!-- 有些 XML 屬性會要求.xsd 文件帶上版本號。 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mybatis="http://mybatis.org/schema/mybatis-spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd "> <!-- 編譯時掃描必要的包 --> <!-- 控制器 --> <context:component-scan base-package="com.ruanxi.controller"/> <!-- 業務邏輯層,自動裝配(業務邏輯實現) --> <!--<context:component-scan base-package="ruanxi.queen.service"/>--> <!-- 自定義配置類(XML配置) --> <!--<context:component-scan base-package="ruanxi.queen.config"/>--> <!-- 處理指定目錄下的靜態資源,指定哪些資源不要走控制器。需注意:若不定義 mvc:resources,則也不須要 mvc:annotation-driven --> <mvc:annotation-driven/> <mvc:resources mapping="/resources/**" location="/resources/"/> <mvc:resources mapping="/*.html" location="/"/> <!-- 視圖解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/View/"/> <property name="suffix" value=".jsp"/> </bean> </beans>
基本的建立參考:【me】IDEA 配置 Tomcat 精要.note,或者(連接分享)html
針對「Server」選項卡的配置須要肯定幾個值:java
如圖所示:web
針對「Deployment」選項卡的配置:spring
一方面注意選擇帶 exploded 的 war 包選項,另外一方面要填寫 Application context,其值等於 web pom.xml 的 finalName。spring-mvc
熱部署:在開發階段,務必確保這裏選擇的是 exploded 格式,這樣在「Server」欄的「On frame deactivation」處纔有選項「Update classes and resources」,從而開啓熱部署,它主要表如今當 JSP 頁面有變動時能及時經過刷新反映到頁面上,不然就要從新編譯一次,這就太浪費時間了。tomcat
在 web 組件裏,於 src/main/java 中建立 java package,包名爲:com.ruanxi.controller,需提醒的是這個包名須要在 springmvc-config.xml 的 component-scan 中註冊的。服務器
建立一個控制器,好比名稱爲:BaseController。mybatis
@Controller @RequestMapping(value = "/Base") public class BaseController { @RequestMapping(value = "/Index", method = RequestMethod.GET) public String Index() { return "Base/Index"; } }
在 web 組件裏,於 src/main/webapp/WEB-INF/View 中建立 JSP 頁面,按照必定的約定:以控制器的映射名做爲文件夾名稱,以方法的映射名做爲 JSP 文件名稱。mvc
客戶端的請求要想獲得服務端的響應,就必須與映射名相對應,既如此,不如干脆把 jsp 頁面的命名也和映射名統一塊兒來,勉得額外去思考其餘的名字。
須要注意,JSP 頁面的加載並非直接請求而來,在 MVC 框架裏是先經過控制器的解析再轉發呈現的。