springmvc九大组件之HandlerMapping
来源:互联网 发布:巨人网络传真 编辑:程序博客网 时间:2024/05/16 08:26
HandlerMapping的主要作用就是通过用户的请求找到对该请求相应的处理器。打开HandlerMapping的源代码我们可以看见,HandlerMapping只有一个方法:HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception。HandlerExecutionChain 中封装了Handler和interceptors。通常springmvc会维护一个Map,key值就是对应的请求,而value就是HandlerExecutionChain。springMVC内部的SimpleUrlHandlerMapping也确实是这样来实现的。在内部维护了一个Map。private final Map<String, Object> urlMap = new LinkedHashMap<String, Object>(),由于Handler可以是任意类型或者方法,因此value使用了Object。
SimpleUrlHandlerMapping的主要方法有以下几个:
public void setMappings(Properties mappings);将mappings加入urlMap。
public void setUrlMap(Map<String, ?> urlMap);设置UrlMap。
public Map<String, ?> getUrlMap();获取urlMap
public void initApplicationContext();用来初始化工作,在初始化时调用了registerHandlers方法。
protected void registerHandlers(Map<String, Object> urlMap);被initApplicationContext调用,在方法中主要对urlMap进行了一个循环遍历。代码如下:
for (Map.Entry<String, Object> entry : urlMap.entrySet()) {
String url = entry.getKey();
Object handler = entry.getValue();
// Prepend with slash if not already present.
if (!url.startsWith("/")) {
url = "/" + url;
}
// Remove whitespace from handler bean name.
if (handler instanceof String) {
handler = ((String) handler).trim();
}
registerHandler(url, handler);
}
首先取出每一个url和对应的handler,然后调用了registerHandler方法。在registerHandler方法中,对url和handler进行了注册。
- springmvc九大组件之HandlerMapping
- SpringMVC之HandlerMapping和HandlerAdapter
- SpringMVC之 HandlerAdapter和handlerMapping
- SpringMVC--HandlerMapping
- SpringMVC------handlerMapping
- SpringMVC-HandlerMapping
- SpringMVC源码分析 之 HandlerMapping和HandlerAdapter
- 第三章 SpringMVC之HandlerMapping解析
- 第三章 SpringMVC之HandlerMapping解析
- 《看透springMVC源码》笔记之HandlerMapping
- SpringMVC源代码学习(四)九大组件上
- SpringMVC源代码学习(五)九大组件下
- SpringMVC源代码学习(四)九大组件
- SpringMVC的九大组件完成的任务粗解。
- springMVC(二)HandlerMapping
- SpringMVC handlerMapping和handlerAdapter
- springmvc handlerMapping和handleradapt
- SpringMVC中HandlerMapping源码
- 【软考之旅】第二章 程序设计语言基础知识
- https的免费部署方案(阿里云主机)
- c# 关闭socket的标准方法
- struts2
- Java多线程-ThreadLocal
- springmvc九大组件之HandlerMapping
- 使用SQLyog登录local时报 1045的错误
- 自媒体淘客软文是这样写的
- Hibernate入门
- CentOS7安装通用二进制格式MariaDB 10.2.8
- linux下安装PHP pcntl 扩展
- LeetCode 206. Reverse Linked List (Easy)
- junit测试assert各种断言用法
- office 2010 的永久密钥