Maven项目集成Spring MVC框架

一、Spring MVC简述

Spring MVC属于Spring Framework的后续产品,已经融合在Spring Web Flow里面。Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,从而在使用Spring进行Web开发时,可以选择使用Spring的Spring MVC架构或集成其他MVC开发框架。

二、在Web项目中集成Spring MVC框架

1. 在pom.xml文件中添加集成Spring MVC所需要的Maven依赖包和相关的属性值,具体代码如下:

<!--    Spring MVC start    -->
<dependency>
   <groupId>jstl</groupId>
   <artifactId>jstl</artifactId>
   <version>${jstl.version}</version>
</dependency>
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
   <version>${javax.servlet.version}</version>
</dependency>
<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-webmvc</artifactId>
   <version>${spring.version}</version>
</dependency>
<!--    Spring MVC end    -->

2. 在web.xml配置文件中添加DispatcherServlet配置,具体代码如下:

<!--  配置DispatcherServlet-->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--    配置SpringMVC需要加载的配置文件spring-mvc.xml    -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.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>

注:
(1)DispatcherServlet类:DispatcherServlet是前置控制器,主要用于拦截匹配的请求,拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置Spring MVC的第一步。
(2)<init-param>:整个项目的局部变量,相当于设定了一定固定值,只能在当前的Servlet中被使用。容器启动时会加载配置文件spring-mvc.xml。
(3)<load-on-startup>:表示启动容器时初始化该Servlet。
     1)当值为0或者大于0时,表示容器在应用启动时加载并初始化这个Servlet。
     2)如果值小于0或未指定时,则表示容器在该Servlet被选择时才加载。
     3)正值越小,Servlet的优先级越高,应用启动时就越先加载。
     4)值相同时,容器就会自己选择顺序来加载。
(4)<url-pattern>:URL匹配规则,表示哪些请求交给Spring MVC处理,“/”表示拦截所有的请求。

URL匹配规则种类:精准匹配(/test/ay.html)、扩展名匹配(*.jsp)、路径匹配(/ay/*)、默认匹配(/)、匹配顺序。
 
 注意:路径匹配和扩展名匹配无法同时设置,如果设置,启动tomcat服务器会报错。如:/k/*.jsp, he*.jsp,/*.jsp等。 

3. 在src/main/resource目录下创建配置文件spring-mvc.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:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.2.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
    <!--  扫描controller(后端控制器),并且扫描其中的注解  -->
    <context:component-scan base-package="zqq.trys.controller"/>
    <!--  设置配置方案  -->
    <mvc:annotation-driven/>
    <!--  配置JSP 显示ViewResolver(视图解析器)  -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

注:
   (1)<context:component-scan>:扫描base-package包或者子包下所有的controller类,并把匹配的controller类注册成Bean。
   (2)<mvc:annotation-driven/>:该注解会自动注册RequestMappingHandlerMapping和RequestMappingHandlerAdapter两个Bean,是Spring MVC为@Controller分发请求所必须的,并提供了数据绑定支持、@DateTimeFormat支持、@Valid支持、读写XML的支持(JAXB)和读写JSON的支持(Jackson)等功能。
   (3)InternalResourceViewResolver:最常用的视图解析器,当控制层返回“hello”时,InternalResourceViewResolver解析器会自动添加前缀和后缀,最终路径结果为:/views/hello.jsp.

4. 在src/main/java目录下创建包zqq.trys.controller,并创建控制层类MVCTestController,具体代码如下:

@Controller
@RequestMapping("/test")
public class MVCTestController {
    @GetMapping("/hello")
    public String hello() {
        return "hello";
    }
}

注:
    (1)@Controller:标明MVCTestController是一个控制类,使用@Controller标记的类就是一个Spring MVC Controller对象。
    (2)@RequestMapping:是一个用来处理请求地址映射的注解,可用于类或者方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
    @RequestMapping注解有value、method等属性,value属性可以默认不写。“/test”就是value属性的值。value属性的值就是请求的实际地址。
    (3)@GetMapping:@GetMapping是一个组合注解,是@RequestMapping(method=RequestMethod.GET)的缩写。该注解将HTTP Get请求映射到特定的处理方法上。
    @PostMapping注解RequestMapping(method=RequestMethod.POST)的缩写。
    @PutMapping注解是RequestMapping(method=RequestMethod.PUT)的缩写。
    @DeleteMapping注解是RequestMapping(method=RequestMethod.DELETE)的缩写。
    @PatchMapping注解是@RequestMapping(method=RequestMethod.PATCH)的缩写。

5. 在src/main/webapp目录下创建views文件夹,在views文件夹下创建hello.jsp文件,具体代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>hello</title>
</head>
<body>
Hello World!
</body>
</html>

最后,Web项目集成Spring MVC就结束了。我们把Web项目部署到Tomcat服务器上,成功启动Tomcat服务器后,在浏览器输入访问路径:http://localhost:8088/test/hello。

注意:8088是本机tomcat的端口,有些小伙伴的端口是8080,记得修改呦~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zqq_2016

有用的话,来打赏博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值