天天看點

IDEA項目配置SpringMVC環境IDEA項目配置SpringMVC環境

IDEA項目配置SpringMVC環境

  1. 用 Maven 搭建環境。
    IDEA項目配置SpringMVC環境IDEA項目配置SpringMVC環境
    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.0.11.RELEASE</version>
        </dependency>
               
  2. 在 web.xml 中配置 DispatcherServlet。(既然是 Servlet,那當然在 web.xml 中配置)
    • 内容可以自定義
    • org.springframework.web.servlet.DispatcherServlet。我們需要用 DispatcherServlet 這個類對象來讀取 Spring MVC 的配置檔案。
    • 用來幫助讀取 SpringMVC 自己的配置檔案
    • classpath:

      指的就是 main/resources 根目錄,尋找 SpringMVC 的 xml 檔案
    • 與 servlet 标簽相對應。servlet-mapping 中的 servlet-name 标簽内容 必須與 servlet 标簽中的 servlet-name 标簽内容一緻,否則無法建立聯系。
    • 攔截所有請求,直接寫 / 即可
    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
    
      <servlet>
        <servlet-name>dispatcherServlet</servlet-name> <!-- servlet-name 可以自定義 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 需要用 DispatcherServlet 對象來讀取 SpringMVC 自己的配置檔案 -->
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern> <!-- 攔截所有請求,直接寫 / 即可 -->
      </servlet-mapping>
    </web-app>
               
  3. 在 main/resources 路徑下建立 一個 SpringMVC 的 xml 檔案,檔案名可以任意,這裡取 springmvc.xml 。

    最終 web.xml 配置好 DispatcherServlet :

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
    
      <servlet>
        <servlet-name>dispatcherServlet</servlet-name> <!-- servlet-name 可以自定義 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 需要用 DispatcherServlet 對象來讀取 SpringMVC 自己的配置檔案 -->
        <!-- init-param 用來幫助讀取 SpringMVC 自己的配置檔案 -->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value> <!-- classpath 指的就是 main/resources 根目錄,尋找 SpringMVC 的 xml 檔案 -->
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern> <!-- 攔截所有請求,直接寫 / 即可 -->
      </servlet-mapping>
    </web-app>
               
    springmvc.xml 中的配置:
    <?xml version="1.0" encoding="UTF-8" ?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:p="http://www.springframework.org/schema/p"
           xsi:schemaLocation="
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
    
        <!-- 自動掃描:在 main/java 檔案中寫的所有類,都需要先掃描進 IoC 中進行管理 -->
        <context:component-scan base-package="com.thesunandsnow"></context:component-scan>
    
        <!-- 配置視圖解析器:将邏輯視圖解析為實體視圖 -->
        <!-- 比如說一個方法傳回 "index" 這個字元串,現在想将這個字元串與 index.jsp 配置起來 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/"></property> <!-- / 表示 webapp 檔案夾的根目錄,配置 index 的字首,變為 "/index" -->
            <property name="suffix" value=".jsp"></property> <!-- .jsp 表示檔案的字尾,配置 /index 的字尾,變為 "/index.jsp" -->
        </bean>
    </beans>
               
  4. 建立 Handler。

    在 controller 層,建立一個類 來表示 Handler。

    • @Controller

      與 @Component 類似,也是将類交給 IoC 管理,但是多了一個控制器的功能。
    • @RequestMapping("/fileName")

      括号中填寫 視圖層的檔案名(不用加字尾)。将用戶端請求與業務方法關聯起來:浏覽器位址中輸入 fileName 就可以直接映射到 這個注解對應的方法,然後執行此方法,方法傳回值為視圖的名稱。再依靠springmvc.xml 的視圖解析器,就可以找到 webapp 檔案下的相應視圖,如:/index.jsp
    package com.thesunandsnow.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    //@Controller 與 @Component 類似,也是将類交給 IoC 管理,但是多了一個控制器的功能
    @Controller
    public class HelloHandler {
    //    将用戶端請求與業務方法關聯起來:浏覽器位址中輸入index就可以直接映射到 index(),然後此方法傳回值為視圖的名稱
    //    再依靠springmvc.xml的視圖解析器,就可以找到 webapp 檔案下的相應視圖,如:/index.jsp
        @RequestMapping("/index")
        public String index () {
            System.out.println("執行了index()");
            return "index";
        }
    }
               
  5. 配置項目,使項目能夠運作 Tomcat。
    IDEA項目配置SpringMVC環境IDEA項目配置SpringMVC環境
    IDEA項目配置SpringMVC環境IDEA項目配置SpringMVC環境
    IDEA項目配置SpringMVC環境IDEA項目配置SpringMVC環境

配置好 Tomcat 伺服器後,啟動它。在浏覽器位址欄中直接輸入localhost:8080/index

IDEA項目配置SpringMVC環境IDEA項目配置SpringMVC環境
IDEA項目配置SpringMVC環境IDEA項目配置SpringMVC環境