SpringMVC第十一阶段:SpringMVC 拦截器执行源码解析

news/2024/11/23 9:27:38/

SpringMVC 拦截器执行源码解析:

1、执行doDispatcher做请求分发处理

1.1、调用getHandler()获取请求处理器,处理器中包含请求的方法和拦截器信息

	getHandlerInternal()	    根据请求地址获取对应的目标方法getHandlerExecutionChain()  获取请求地址对应的所有拦截器信息

在这里插入图片描述
在这里插入图片描述

1.2、调用getHandlerAdapter() 方法获取 适配处理器

适配器可以用来执行目标方法.

1.3、mappedHandler.applyPreHandle(processedRequest, response) 执行所有拦截器 preHandle()方法

在这里插入图片描述

以下代码就是执行所有拦截器的代码.
在这里插入图片描述

1.4、调用ha.handle(); 调用Controller目标方法,并将结果封装成为ModelAndView返回

1.5、mappedHandler.applyPostHandle() 执行拦截器PostHandler()后置方法

在这里插入图片描述

执行所有拦截器后置方法的代码 :

在这里插入图片描述

1.6、processDispatchResult(); 处理结果,渲染页面

在这里插入图片描述

1.7、mappedHandler.triggerAfterCompletion(); 执行拦截器 渲染完成方法

在这里插入图片描述

2、视图源码解析:

视图就是用户最终看到的结果( 最终的页面的数据 )

2.1、View 视图

	获取视图的类型

String getContentType();

	渲染视图页面 

void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception;

2.2、AbstractView 抽象类实现

	具体实现页面的渲染

protected abstract void renderMergedOutputModel(
Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception;

2.3、把隐含模型中的数据,同步到Reqeust域中

protected void exposeModelAsRequestAttributes(Map<String, Object> model, HttpServletRequest request)

2.4、ViewResolver 视图解析器

	根据给定的视图名得到相应的视图View对象

View resolveViewName(String viewName, Locale locale) throws Exception;


http://www.ppmy.cn/news/209048.html

相关文章

shell编程-02-变量作用域

作用域 局部变量&#xff1a;变量只能在函数内部使用 全局变量&#xff1a;变量可以在当前 Shell 进程中使用 环境变量&#xff1a;变量还可以在子进程中使用 局部变量 函数中定义的变量默认是全局变量&#xff0c;在定义时加上local命令&#xff0c;此时该变量就成了局部变…

VScode远程连接虚拟机(ubuntu系统)

文章目录 1. Windows端安装VScode2. 安装远程登录插件3. 配置Remote-SSH插件关于关闭后如何打开该配置文件 4. 测试ubuntu与windows可否ping通5. 在Ubuntu中安装 SSH1.检查是否安装ssh-server2.安装openssh-server3.查看ssh服务是否启动4.Ubuntu中配置openssh-server开机自动启…

从美图手机跨界颐和园,看智能手机如何玩IP定制才能C位出道?

6月27日美图手机在北京颐和园发布美图T9标准版&#xff0c;并首次与颐和园合作推出美图T9颐和园限量版&#xff0c;其“机身图案灵感源自中国传统色彩——黛绿与碧绿&#xff0c;缀以朱砂&#xff0c;山为黛&#xff0c;水为碧&#xff0c;朱砂为红&#xff0c;宛如一幅山水墨&…

莱卡TG0020-M8读卡器单片机开发

1.1 概述 本模块属 RFID 超小型 IC(Mifare1/TypeA/14443A)卡读卡模块&#xff0c;可单独使用&#xff0c;也可二次开发。可选接口有&#xff08;miniUSB 接口&#xff0c;RS232 串口&#xff0c;TTL串口&#xff09;&#xff0c;用户无须了解任何 RC523 等射频芯片的复杂控制命…

Dell服务器iDrac口默认账号密码和IP

账号&#xff1a;root 密码&#xff1a;calvin IP&#xff1a;192.168.0.120

华为云终端被他人设置密码,如何解除?可以恢复出厂设置,消除密码!

当我们需要对控制中心进行操作时&#xff0c;会弹出“密码验证”对话框&#xff0c;见下图&#xff1a; 面对这样的情况&#xff0c;肯定是有人莫名设置了密码&#xff0c;我们可以恢复出厂设置&#xff0c;消除密码&#xff01;具体以下步骤&#xff1a; 1、云终端注销&#…

Dell 服务器如何在BIOS 下清除iDRAC 日志

1.开机自检&#xff0c;根据屏幕右上角提示&#xff0c;按F2 进入system setup 2.出现以下界面&#xff0c; 选择 "iDRAC Settings" 3. 选择System Event Log 4. 如图选择YES 5. 保存设置&#xff0c;选择Finish&#xff0c; 退出重启后&#xff0c;日志清除完毕

华为设备:清除配置详解

清除所有配置 即初始化设备&#xff0c;所有的配置都不想要了。可以在用户视图下输入&#xff1a; reset saved-configuration 输入&#xff1a;Y&#xff0c;确认清除输入&#xff1a;reboot&#xff1b;重启系统 第1次提示输入&#xff1a;N 不保存配置&#xff1b;第2次提…