Spring & Spring MVC 7. Spring MVC 核心原理

通过上一篇 HelloWorld,我们也感受过了这个 Spring MVC 的强大,这一篇主要来说说他的一些核心

一、DispatcherServlet

这个 Spring MVC 是一个以用户请求为驱动,围绕着 Servlet 进行设计,将请求发送给控制器,然后通过模型对象,分派给每一个视图。

而这个里面其中一个核心就是 DispatcherServlet。来看一下官网是如何解释的

这个 Spring MVC 和其他许多的 Web 框架一样,围绕着前端控制器模式设计的,其中核心的就是 DispathcerServlet,这个东西为请求处理提供了一个共享的算法。

也就是说,我们可以统一进行配置请求,然后由 DispatcherServlet 进行分发请求。

然后再来看我们的项目

我们这里设置的是拦截所有的请求,然后将拦截到的请求交由 DispatcherServlet 进行处理,当然哈,这里可以进行修改,好比我们可以拦截请求以 /app 开头的请求,我们来修改一下。

然后我们直接从新启动服务器,我们现在再来访问 http://localhost:8080/springmvc_test/hello

可以看到不行了,我们在 hello 前面加个 /app

可以看到哈,这个同样是没有问题的。

可以说我们以后使用 Spring MVC,这个 DispatcherServlet 是一个重点,希望各位能够看看官方文档。

二、springmvc.xml

这个文件是配置的我们的 Spring MVC 的整体环境,有了这个配置,我们就可以配置 bean 了。

因为 Spring 的核心就是一个一个的 Bean,所以这个 Spring MVC 也不例外。

然后我们来看官网是怎么说的

官网是为了让整个 Spring 扫描到所有的 @Controller(控制器),所以就弄了这么一个配置文件,当然啊,我们也可以单独弄一个 WebConfig,就像它给的这个 Java 图一样。

但是我们是属于初学者,就先使用配置文件好了,注解啥的我们后面去说。

然后它下面还有一个这个,在这个 beans 中加了很多的描述,然后就是下面的一个标签。

<context:component-scan base-package="org.example.web"/>

这句话就是说,扫描 org.example.web 下面所有有 @Controller 或者 @RestController 的类。

除去能配置扫描器之外,还可以配置视图解析器

我们可以通过这个自己定义视图解析的规则,视图解析器的核心就是 InternalResourceViewResolver。

然后每次返回回来的页面前缀就是根目录下,后缀为 .jsp 的页面。这里的配置可以完全动态,自己去写~~~

三、控制器 & 映射器

控制器就是 @Controller,也就是我们上面扫描包要扫的东西。这个注解可以告诉 SpringMVC,这个是一个控制器,里面有分发请求的方法。

还有一个和 @Controller 类似的注解,叫 @RestController,这个我们后面也会接触,它呢是一个无页面转发的控制器,什么意思呢,就是后期我们大部分都是使用 Ajax 做前后端交互的,没有什么页面啊啥的跳转了,所以需要用到这个控制器。

映射器就是 @GetMapping(),同样哈,这个印申请不止这一种,还有很多。

可以看到哈,有很多,我们常用的就三个,@RequestMapping,@GetMapping,@PostMapping

这些都是 @RequestMapping 的拓展,看到这里有没有想到 Servlet 的东西,里面是不是也有 doGet、doPost,其实这个也是一样。

先说这么多,希望大家可以自己去翻阅官方文档。

各位,还有一件事,我的官网要准备从新制作,有没有什么好的提议,用什么框架,有什么功能,欢迎各位小伙伴提供~~~(直接评论在评论区即可,我到时候会整理起来)

猜你喜欢

转载自blog.csdn.net/weixin_45908370/article/details/114896181
今日推荐