IDEA项目配置SpringMVC环境

  1. 用 Maven 搭建环境。
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.0.11.RELEASE</version>
    </dependency>
  1. 在 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>
  1. 在 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>
  1. 创建 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";
    }
}
  1. 配置项目,使项目能够运行 Tomcat。

springMVC项目在idea上如何启动 idea配置springmvc项目_mvc

springMVC项目在idea上如何启动 idea配置springmvc项目_xml_02

配置好 Tomcat 服务器后,启动它。在浏览器地址栏中直接输入localhost:8080/index

springMVC项目在idea上如何启动 idea配置springmvc项目_java_03

springMVC项目在idea上如何启动 idea配置springmvc项目_java_04