通过上一篇 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,其实这个也是一样。
先说这么多,希望大家可以自己去翻阅官方文档。
各位,还有一件事,我的官网要准备从新制作,有没有什么好的提议,用什么框架,有什么功能,欢迎各位小伙伴提供~~~(直接评论在评论区即可,我到时候会整理起来)