IDEA Maven 三層架構 二、運行 springMVC

運行 SpringMVC

首先要理解 SpringMVC 應用程序的入口是配置文件 web.xml,其路徑爲「src/main/webapp/WEB-INF/web.xml」,經過它再去關聯 SpringMVC 的配置文件 springmvc-config.xml。
所涉及文件以下圖:javascript

Markdown

此處列舉了 web.xml 最精簡的配置:

<?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>

此處列舉了最精簡的 springmvc-config.xml:

<?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>

配置 Tomcat 服務器

基本的建立參考:【me】IDEA 配置 Tomcat 精要.note,或者(連接分享)html

針對「Server」選項卡的配置須要肯定幾個值:java

  • web pom.xml 中 finalName 的值,好比叫「MonkeyPackage」
  • 端口號,好比叫「8501」

如圖所示:web

Markdown

Markdown

針對「Deployment」選項卡的配置:spring

一方面注意選擇帶 exploded 的 war 包選項,另外一方面要填寫 Application context,其值等於 web pom.xml 的 finalName。spring-mvc

Markdown

熱部署:在開發階段,務必確保這裏選擇的是 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

Markdown

客戶端的請求要想獲得服務端的響應,就必須與映射名相對應,既如此,不如干脆把 jsp 頁面的命名也和映射名統一塊兒來,勉得額外去思考其餘的名字。

運行頁面

Markdown

須要注意,JSP 頁面的加載並非直接請求而來,在 MVC 框架裏是先經過控制器的解析再轉發呈現的。

相關文章
相關標籤/搜索