首页 > 其他分享 >2、Spring MVC是一个Servlet!

2、Spring MVC是一个Servlet!

时间:2022-12-18 22:00:53浏览次数:42  
标签:Web Java 请求 Spring MVC Servlet

昨天学习了Java Web服务器是如何处理请求的,可以知道服务器会将请求交给Servlet处理。

简单来说,Java Web服务器是一个接收HTTP请求的应用软件。

就好比在手机代办事项里创建一个个代办事项,我们也可以在Java Web服务器里面创建一个个Servlet,用来处理对应的请求。

在使用Spring MVC后,只需要使用@Controller@RequestMapping注解,就可以定义一个接口,用来接收前端请求。

例如,我们定义如下接口:

@RestController
public class TestController {
	@RequestMapping("/test")
	public String test() {
		return "Hello Spring MVC";
	}
}

启动项目后,请求/test地址,可以得到响应:

Hello Spring MVC

自从使用Spring MVC之后,我们再也不用创建Servlet了。

似乎Spring MVC超脱了Java Servlet规范。其实不然,Spring MVC本身就是一个Servlet,叫做DispatcherServlet

DispatcherServlet实现了Servlet接口,它也可以接收从Java Web服务器传递过来的requestresponse

为了便于日常开发使用,DispatcherServlet会通过反射的方式,直接将request中的请求参数解析成对应的Java对象,也可以直接将业务处理返回的Java对象解析成对应格式的数据进行响应。

当然,DispatcherServlet的能力不仅仅是转换数据格式,它的成员变量(通常称为核心组件)可以满足各种常见的业务场景:

  1. 文件上传
  2. 请求地址映射
  3. 参数解析
  4. 参数校验
  5. 异常统一处理
  6. ……

相对于原始的Servlet开发,一个请求对应着一个Servlet实现类。

使用Spring MVC后,一个Web项目通常只需要一个Dispatcher映射所有请求即可,它会管理整个项目的所有接口。

标签:Web,Java,请求,Spring,MVC,Servlet
From: https://www.cnblogs.com/Xianhuii/p/16991042.html

相关文章

  • MVC2
    一、MVC模型MVC模型是(model模型view视图controller控制器)是一种软件设计的框架模式,它采用model-view-controller的方法把业务逻辑,数据与视图显示分离,把众多的业务逻辑集......
  • SpringBoot 阅读源码之RandomValuePropertySource 是如何工作的
    最近在极客时间上面学习丁雪丰老师的《玩转Spring全家桶》,看到一个在application.properties里面生成随机数的例子,觉得很厉害,带着崇拜的心情去阅读了一下Spring的源码,总......
  • Springmvc构造RESTful详细讲解
    ​​Springmvc构造RESTful详细讲解​​Rest介绍 /blog/1HTTPGET=>得到id=1的blog/blog/1HTTPDELETE......
  • Spring Validation
    SpringValidation项目源码:https://github.com/chentianming11/spring-validation简单使用JavaAPI规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。......
  • spring security使用
    1、依赖org.springframework.bootspring-boot-starter-security2、认证与授权@ConfigurationpublicclassSecurityConfigextendsWebSecurityConfigurerAdapter{......
  • SpringCloud微服务框架复习笔记
    SpringCloud微服务框架复习笔记什么是微服务架构?微服务是一种软件开发技术,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每......
  • 【ASP.NET Core】MVC操作方法如何绑定Stream类型的参数
    咱们都知道,MVC在输入/输出中都需要模型绑定。因为HTTP请求发送的都是文本,为了使其能变成各种.NET类型,于是在填充参数值之前需ModelBinder的参与,以将文本转换为.NET类......
  • 核心面试题:MVCC、间隙锁、Undo Log链、表级锁、行级锁、页级锁、共享锁、排它锁、记录
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • Spring MVC拦截器HandlerInterceptor全解!
    SpringMVC拦截器(HandlerInterceptor)是一个十分重要且常用的功能,是我们学习和使用SpringMVC必须掌握的基础技能之一。HandlerInterceptor和Servlet规范中的Filter类似,都......
  • spring对于ioc容器创建和bean的解析
     根据树看了一下源码 头都大了类的继承图    C:\Users\linjunwei\.m2\repository\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8-sources.j......