当前位置: 首页 > java>阅读正文

SpringMVC环境搭建

2021.12.21 朱丰华 177 次 留下评论 2265字

SpringMVC是一个基于Spring的WebMVC框架

SpringMVC的底层基于Servlet,并通过配合xml或注解完成路径分发。

1.导入依赖:

创建一个Maven项目,并导入以下坐标:

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.13</version>
        </dependency>

只需要导入上述一个坐标即可。

2.设置servlet-mapping

通常使用web.xml配置servlet-mapping

SpringMVC使用org.springframework.web.servlet.DispatcherServlet类完成路径拦截,也就是配置此类的servlet-mapping

    <!--
        前端控制器:所有的请求都会经过此控制器,然后通过此控制器分发到各个分控制器
      总控本质上还是一个Servlet,因为SpringMVC底层就是使用Servlet编写的
    -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 创建前端控制器的时候读取springmvc配置文件(spring-mvc.xml)启动ioc容器 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <!-- Tomcat启动就创建此对象 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- 配置拦截路径url,所有servlet无后缀都会被前端控制器拦截处理 -->
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

注意上述的文件,SpringMVC默认是未开启注解的,我们配置此servlet的init-param完成servlet的初始化配置,它也是一个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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

<!--配置controller注解的根package-->
    <context:component-scan base-package="com.rbusoft" />
</beans>

该配置xml文件格式是固定的,可以复制上述内容或使用IDE生成(SpringMVC-config),唯一不同的是 context:…

此标签用于扫描controller注解生效的根package,该包下的所有controller注解均会生效,如果不配置则注解不生效。

3.测试controller

创建一个MyServlet类,注意不要再继承httpServlet,仅需要加注解即可

package com.rbusoft;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class MyServlet {


    @ResponseBody
    @GetMapping("/test")
    public String test(){
        return "Hello";
    }
}

使用@Controller注解标识这是一个Controller类,接下来使用@ResponseBody注解标识此方法直接返回给前端而不经过视图解析器。

使用@GetMapping表示仅支持GET请求,servlet-mapping路径为 /test,返回值是String会原样返回,如果是对象则会自动被转换为Json数据格式。

启动容器,访问/test路径,即可得到Hello字符串。

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注