【SpringMVC】:快速入门

1、什么是 SpringMVC

  1. MVC 是一种设计模式,即model-view-controller。而 SpringMVC 是一种基于 Java 实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,用于替代servlet(处理响应请求,获取表单参数,表单验证等)等,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。

  2. SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。

2、为什么要使用 SpringMVC

SpringMVC的优点:

  1. 进行更简洁的Web层的开发
  2. 天生与Spring框架集成(如IOC容器、AOP等)
  3. 提供强大的约定大于配置的契约式编程支持
  4. 非常灵活的数据验证、格式化和数据绑定机制
  5. 支持Restful风格
  6. 清晰的角色划分:控制器(controller)、验证器(validator)、 命令对象(command object)、表单对象(formobject)、模型对象(model object)、 Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、视图解析器(view resolver)等。每一个角色都可以由一个专门的对象来实现。

我们在web层的servlet中做了很多操作,例如接受请求、获取请求中的参数、实例化实体类和调用 service 层方法等等。我们可以将这些操作分为共有行为和特有行为,而 SpringMVC就是将共有行为抽取出来,这种被抽取的共有行为一般称为前端控制器,具体的抽取过程由 SpringMVC 实现

3、SpringMVC的开发步骤

我们可以简单的将 SpringMVC 开发分为四个步骤:

  1. 导入 SpringMVC 相关依赖:除了要导入 SpringMVC 的包,还要导入jsp、servlet和content三个包

       <!-- 在 pom.xml 文件中-->
       <!--Servlet坐标-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
    
        <!--Jsp坐标-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
        </dependency>
    
        <!--SpringMVC坐标-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>
    
        <!--Spring坐标-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>
    
  2. 配置 SpringMVC 核心控制器 DispathcerServlet在之前我们提到过前端控制器,DispathcerServlet 就是 SpringMVC 的前端控制器,配置核心控制器的方式有很多种,下面我们会介绍一种比较简单的。

    <!-- 配置spring 和web 的集成环境 -->
    <!-- ContextLoaderListener监听器由 spring 提供  -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--全局参数,用于告诉监听器 Spring 配置文件的地址-->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    
    
    <!-- 配置 DispatcherServlet -->
    <servlet>
        <servlet-name>app</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--使用 DispatcherServlet  需要用到的参数-->
        <!--告诉 DispatcherServlet SpringMVC配置文件的地址 -->
        <init-param>
       		<!-- contextConfigLocation 由springMVC提供,是固定值 -->
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring_mvc.xml</param-value>
        </init-param>
         <!--将 DispatcherServlet初始化时间提前到服务器启动时 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    这种配置方式是使用带有应用程序上下文层次结构的方式完成对 SpringMVC 核心控制器 DispathcerServlet 的配置。这种方式的基础是在Spring与web环境集成之上进行的。

  3. 创建 Controller 类并进行注解配置:Controller 类就是用于出来请求的后端控制器,在 SpringMVC 中 Controller 类是我们需要编写的核心。

  4. 配置 SpringMVC的配置文件:为了避免配置混淆,一般将与 Spring 有关配置项放在一个配置文件中,与 SpringMVC 有关配置项放在一个配置文件中。因为 Controller 类使用了注解,所以要配置组件扫描,并且扫描的范围是存放 Controller 的包。

    <?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 http://www.springframework.org/schema/content/spring-context.xsd">
    
        <!-- 组价扫描 -->
        <context:component-scan base-package="存放 Controller 包的全限定名"/>
    </beans>
    

这篇博客只是简单的对 SpringMVC 做一个简单的了解,在了解过程中我们主要注意两个点,第一个是 Controller 类和 SpringMVC的配置文件。只是在开发中重点需要编写的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值