Spring mvc环境配置

maven依赖spring-webmvc

<repositories>
    <repository>
        <id>aliyun</id>
        <name>aliyun</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.9.RELEASE</version>
    </dependency>
</dependencies>

web.xml配置DispatchServlet(springmav最重要的一个类。作用:对所有请求进行拦截)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <!--DispatcherServlet是springmvc最核心的对象,用于拦截http请求,并根据请求的url调用与之对应的controller方法,来完成http请求的处理。
    相当于DispatcherServlet是公司前台,controller相当于公司对应的人-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--applicationContext.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <!--在web启动时自动创建spring ioc容器,并初始化dispatcherServlet-->
        <load-on-startup>0</load-on-startup>
    </servlet>
    <!--映射-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--/代表拦截所有请求-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

配置applicationContext的mvc标记

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.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.xsd">
    <!--component-scan:在spring ioc初始化过程中,自动创建并管理com.imooc.springmvc及其子包中拥有以下注解的对象:
    @Repository
    @Service
    @Component
    @Controller
    -->
 <context:component-scan base-package="top.xiongmingcai.restful"/>
    <!--启用spring mvc注解开发模式-->
<mvc:annotation-driven>
    <!--解决响应体中文乱码问题-->
    <mvc:message-converters>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <property name="supportedMediaTypes">
                <list>
                    <value>text/html;charset=utf-8</value>
                </list>
            </property>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>
    <!--将图片/js/css等静态资源排除在外,提高执行效率-->
    <mvc:default-servlet-handler/>

开发Controller控制器

@Controller
public class TestController {

    @GetMapping("/t") //localhost/t
    @ResponseBody  //直接向响应输出字符串数据,不跳转界面
    public String test() {
        return "SUCCESS";
    }
}

测试

进行tomcat配置

ps:如果点击debug后又对代码进行调整,可以右键-Reload changed classes

进行重新编译,热部署

可以把TestController看成原有servlet的替代品,在开发时编写标准方法,也不再引入请求响应对象,只需要在方法中增加对应的注解即可完成web请求处理和结果返回。

栗子

https://github.com/MingCaiXiong/spring-learn/commit/4d3cc03dcdf9db76714294678e4868a8da0fe6a2