Spring MVC简介

应用场景

Spring MVC是一种基于Java的Web应用框架,其应用场景如下:

        1.构建Web应用程序

Spring MVC提供了一种基于MVC架构的Web应用程序开发方式,可以帮助开发人员快速构建Web应用程序,包括响应HTTP请求、处理表单数据、支持文件上传等。开发人员可以使用Spring MVC的组件和标准Java Servlet API进行开发。

        2.RESTful服务

Spring MVC还提供了一种基于HTTP协议的RESTful服务开发方式,通过注解的方式简化了URL路径映射、参数绑定和响应处理等步骤。开发人员可以使用Spring MVC的RESTful支持来构建RESTful服务,从而提供API接口。

        3.前后端分离应用

随着前后端分离应用的流行,Spring MVC也提供了一些技术来支持该应用场景。例如,Spring MVC可以通过JSON格式的数据来响应AJAX请求,从而支持前端JavaScript框架,例如AngularJS、React等。

        4.轻量级Web框架

Spring MVC是一种轻量级的Web框架,相对于其他Web框架,例如Struts和JSF,Spring MVC更加简单和易于使用。因此,对于一些小型或中型的Web应用程序,使用Spring MVC可以提高开发效率。

总之,Spring MVC在Web应用程序开发中应用广泛,无论是构建传统的Web应用程序、RESTful服务,还是前后端分离应用,都可以使用Spring MVC来实现。同时,Spring MVC还具有轻量级、易用等特点,适用于各种规模的Web应用程序开发。

注解简介

Spring MVC是一种基于注解的Web应用程序开发框架,它提供了大量的注解用于简化Web应用程序的开发,以下是一些常用的注解说明:

        1.@Controller

@Controller注解用于标识一个类是Spring MVC中的控制器。在类级别上使用该注解,Spring容器会自动将该类注册为控制器,用于处理HTTP请求。

        2.@RequestMapping

@RequestMapping注解用于将HTTP请求映射到控制器的处理方法上。该注解可以在类级别和方法级别上使用。在类级别上使用该注解,可以为整个控制器指定一个URL前缀;在方法级别上使用该注解,可以为该方法指定一个URL路径和HTTP请求方法。

        3.@RequestParam

@RequestParam注解用于从HTTP请求中获取请求参数的值。该注解可以指定参数的名称、是否必须、默认值等属性。

        4.@PathVariable

@PathVariable注解用于从URL路径中获取参数的值。该注解可以指定参数的名称、是否必须等属性。

        5.@ResponseBody

@ResponseBody注解用于将控制器方法的返回值直接写入HTTP响应体中。该注解可以将返回值转换为JSON、XML等格式的数据。

        6.@RequestBody

@RequestBody注解用于从HTTP请求中获取请求体的内容。该注解可以将请求体的内容转换为Java对象。

        7.@ModelAttribute

@ModelAttribute注解用于从HTTP请求中获取表单数据或模型属性。该注解可以将请求参数转换为Java对象,并将其作为模型属性传递给控制器方法。

        8.@Validated

@Validated注解用于在控制器方法中验证请求参数或模型属性的值。该注解可以与Spring Validator结合使用,进行参数验证。

这些注解可以大大简化Spring MVC的开发过程,使得开发人员可以更加专注于业务逻辑的实现。同时,Spring MVC还提供了其他注解,例如@SessionAttributes、@CookieValue等,可以满足不同的需求。

初始化过程

下面以一个简单的Spring MVC项目为例,介绍Spring MVC的初始化过程:

  1. 加载Spring MVC配置文件

在该项目中,Spring MVC的配置文件为springmvc-servlet.xml,用于配置DispatcherServlet、HandlerMapping、HandlerAdapter和ViewResolver等组件。配置文件内容如下:

<!-- 配置DispatcherServlet -->
<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>

<!-- 配置HandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

<!-- 配置HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

<!-- 配置ViewResolver -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

        2.初始化DispatcherServlet

在web.xml中配置DispatcherServlet,如下所示:

​

<!-- 配置DispatcherServlet -->
<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>

[点击并拖拽以移动]
​

在容器启动时,会自动调用DispatcherServlet的init()方法,完成初始化过程。

        3.初始化HandlerMapping

在配置文件中,使用<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>来配置HandlerMapping,该配置表示使用Bean的名称作为URL路径。

        4.初始化HandlerAdapter

在配置文件中,使用<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>来配置HandlerAdapter。

        5.初始化ViewResolver

在配置文件中,使用<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">来配置ViewResolver,该配置表示使用JSP作为View视图,并且JSP文件存放在/WEB-INF/views/目录下。

        6.处理请求

当有请求到达DispatcherServlet时,DispatcherServlet会根据HandlerMapping将请求映射到对应的Controller中,并将请求转发给对应的Controller。Controller处理请求后,返回ModelAndView对象。DispatcherServlet通过ViewResolver将ModelAndView对象解析为具体的View视图,并将视图渲染后返回给客户端。

        7.销毁过程

在容器关闭时,Servlet容器会调用Servlet的destroy()方法进行资源的释放和销毁。在Spring MVC中,DispatcherServlet的销毁过程包括销毁ViewResolver、HandlerAdapter、HandlerMapping和DispatcherServlet本身等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值