项目技术架构是Spring+SpringMVC+Mybatis
一,SpringMVC的运行流程图
1,客户端(浏览器)发送请求,直接请求到DispatcherServlet。(请求DispatcherServlet)
2,DispatcherServlet根据请求信息调用处理器映射器HandlerMapping,解析请求对应的Handler。(找到控制器类@Controller)
3,解析到对应的Handler后,开始由处理器适配器HandlerAdapter处理。(找到@RequestMapping标记的处理方法)
4,HandlerAdapter会根据Handler来调用真正的处理器来处理请求,并处理相应的业务逻辑。(处理方法中的业务逻辑)
5,处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。(返回处理结果)
6,ViewResolver会根据逻辑View查找实际View。(逻辑视图解析为真正的视图)
7,DispatcherServlet把返回的Model传给实际View。(DispatcherServlet视图渲染)
8,通过View返回给请求者(浏览器)
二,项目的具体流程与配置
1 首先配置web.xml。
在web.xml中配置
(1)在web.xml配置监听器ContextLoaderListener(listener-class)
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。监听器的配置
(2)部署applicationContext的xml文件:contextConfigLocation(context-param下的param-name)。这个是指定需要监听配置文件的路径。在启动Web 容器时,自动装配Spring applicationContext.xml 的配置信息。(先执行spring的监听器,因为它实现了ServletContextListener 这个接口,在web.xml 配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener 中关联了ContextLoader 这个类,所以整个加载配置过程由ContextLoader 来完成spring 在 web 下的入口在配置文件 web.xml 的监听器中)
(3)Spring 框架解决字符串编码问题:过滤器 CharacterEncodingFilter(filter-name)
(4)DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller(我们写的Action)来处理。
DispatcherServlet(servlet-name、servlet-class、init-param、param-name(contextConfigLocation)、param-value)
在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean。
这个servlet是前端发出请求的拦截,主要用DispatcherServlet,通过这个配置找到controller的注解。
(5)Shiros是我们开发中常用的用来实现权限控制的一种工具包,它主要有认证、授权、加密、会话管理、与Web集成、缓存等功能。Shiro 权限配置一般使用的有两种,一种是采用注解的方式,在我们的 Controller 方法上,或者Action
方法上写入一些权限判断注解。这也是我们现在要讲到的配置方式加载系统基础权限控制,采用对Url
进行控制
(6)sessionFilter,session过滤器
(7)错误页面的处理
参考博客原文链接:
https://blog.csdn.net/qq_37896194/article/details/82931194
https://blog.csdn.net/u010796790/article/details/52098258