Spring MVC框架

Spring MVC框架是一个基于Java的Web框架,它遵循MVC(Model-View-Controller)设计模式,旨在将应用程序的不同部分(如数据、业务逻辑和用户界面)分离开来,以提高代码的可读性、可维护性和可扩展性。

目录

配置项

一、Spring MVC与MVC设计模式

二、Spring MVC的特点

三、Spring MVC的核心组件

四、Spring MVC的执行流程

五、Spring MVC的优势


配置项

Spring MVC需要引入的Maven依赖项:

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.2.2.RELEASE</version>
    </dependency>

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

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.2.2.RELEASE</version>
    </dependency>

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

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.2.2.RELEASE</version>
    </dependency>

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

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>

web.xml配置:

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.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>

spring-servlet.xml配置:

    <!-- 开启注解驱动 -->
    <mvc:annotation-driven />
    <!-- 注解扫描的包 -->
    <context:component-scan base-package="com.bdqn.controller" />

    <!-- 定义控制器,访问路径为/hello -->
    <!-- <bean name="/hello" class="com.bdqn.controller.HelloController" /> -->
    以上两者选择其一即可

    <!-- 完成试图的对应 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

一、Spring MVC与MVC设计模式

MVC设计模式:

  • 模型(Model):负责应用程序的数据和业务逻辑,是数据的处理中心。
  • 视图(View):负责数据的展示,通常用于生成用户界面。
  • 控制器(Controller):负责接收用户的输入,并调用模型和视图去完成用户的需求。

Spring MVC与MVC的关系:

  • Spring MVC是Spring框架的一部分,它实现了MVC设计模式,为开发者提供了一种构建Web应用程序的架构。
  • 通过将应用程序的不同部分分离开来,Spring MVC降低了组件之间的耦合度,提高了开发效率和维护性。

二、Spring MVC的特点

  1. 轻量级:Spring MVC框架体积小,易于学习和使用。
  2. 高效:基于请求响应的MVC框架,能够高效地处理Web请求。
  3. 与Spring兼容性好:无缝集成Spring框架的其他部分,如Spring IoC和AOP。
  4. 约定优于配置:Spring MVC通过一系列约定来减少开发者需要进行的配置工作。
  5. 功能强大:支持RESTful风格的URL请求、数据验证、格式化、本地化、国际化等功能。
  6. 灵活性和可扩展性:Spring MVC采用了松散耦合的组件结构,易于扩展和定制。

三、Spring MVC的核心组件

  1. DispatcherServlet:前端控制器,负责接收所有请求并分发到相应的处理器。
  2. HandlerMapping:处理器映射器,负责根据请求的URL找到对应的处理器(Controller)。
  3. HandlerAdapter:处理器适配器,负责将处理器(Controller)的调用过程进行适配,以符合DispatcherServlet的要求。
  4. Controller:处理器,负责执行用户的请求,并返回ModelAndView对象。
  5. ModelAndView:包含了模型数据和视图信息的对象,由处理器返回给DispatcherServlet。
  6. ViewResolver:视图解析器,负责将ModelAndView中的视图信息解析成真正的视图对象。
  7. View:视图对象,负责将模型数据渲染成用户可以看到的界面。

四、Spring MVC的执行流程

  1. 用户发起HTTP请求,请求被DispatcherServlet接收。
  2. DispatcherServlet根据请求的URL查找HandlerMapping,以获得对应的处理器(Controller)。
  3. DispatcherServlet将请求提交给处理器适配器(HandlerAdapter),由处理器适配器调用处理器(Controller)执行相应的业务逻辑。
  4. 处理器(Controller)执行完成后,返回一个ModelAndView对象给处理器适配器(HandlerAdapter)。
  5. 处理器适配器(HandlerAdapter)将ModelAndView对象返回给DispatcherServlet。
  6. DispatcherServlet根据ModelAndView中的视图信息,请求ViewResolver进行视图解析。
  7. ViewResolver将逻辑视图名解析成真正的视图对象,并返回给DispatcherServlet。
  8. DispatcherServlet将模型数据填充到视图对象中,并渲染成用户可以看到的界面。
  9. DispatcherServlet将渲染后的界面返回给客户端浏览器进行显示。

五、Spring MVC的优势

  1. 清晰的角色划分:MVC模式使得应用程序的各个部分职责明确,易于理解和维护。

  2. 扩展性强:Spring MVC采用了松散耦合的组件结构,可以方便地添加新的组件或替换现有组件。

  3. 支持多种视图技术:Spring MVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,开发者可以根据需要选择合适的视图技术。

  4. 易于集成:Spring MVC无缝集成Spring框架的其他部分,如Spring IoC和AOP,使得开发者可以方便地利用Spring的强大功能。

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值