国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

springMVC源碼分析--HandlerMapping(一)

2019-11-06 06:08:09
字體:
來源:轉載
供稿:網友

HandlerMapping的工作就是為每個請求找到合適的請求找到一個處理器handler,其實現機制簡單來說就是維持了一個url到Controller關系的Map結構,其提供的實際功能也是根據request請求來獲取具體執行的包含Controller信息的HandlerAdapter。

HandlerMapping接口及實現類如下:

HandlerMapping%20接口:接口中主要定義了一個getHandler方法,返回一個HandlerExecutionChain對象sprotected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {      HandlerExecutionChain mappedHandler = null;       ........      mappedHandler = getHandler(processedRequest);      ........              }  getHandler方法的操作就是選擇HandlerMapping,調用getHandler(request)方法獲得HandlerExecutionChain[java] view%20plain copy print?protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception {          for (HandlerMapping hm : this.handlerMappings) {              if (logger.isTraceEnabled()) {                  logger.trace(                          "Testing handler map [" + hm + "] in DispatcherServlet with name '" + getServletName() + "'");              }              HandlerExecutionChain handler = hm.getHandler(request);              if (handler != null) {                  return handler;              }          }          return null;      }  接口HandlerMapping定義的方法很簡單就是一個getHandler方法,采用/**  *handlerMapping的工作就是為了請求找到合適的處理器handler  *最常用的兩個handlerMapping:BeanNameURLHandlerMapping:查找spring容器中和請求的url同名的bena  *SimpleUrlHandlerMapping:配置請求url和handler的映射關系  */  public interface HandlerMapping {              String PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE = HandlerMapping.class.getName() + ".pathWithinHandlerMapping";        String BEST_MATCHING_PATTERN_ATTRIBUTE = HandlerMapping.class.getName() + ".bestMatchingPattern";        String INTROSPECT_TYPE_LEVEL_MAPPING = HandlerMapping.class.getName() + ".introspectTypeLevelMapping";        String URI_TEMPLATE_VARIABLES_ATTRIBUTE = HandlerMapping.class.getName() + ".uriTemplateVariables";        String MATRIX_VARIABLES_ATTRIBUTE = HandlerMapping.class.getName() + ".matrixVariables";        String PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE = HandlerMapping.class.getName() + ".producibleMediaTypes";        //獲得HandlerExecutionChain      HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;    }  總結:我們簡單的介紹了一下HandlerMapping及其實現類,簡單來說HandlerMapping的實現機制就是根據request來獲得HandlerExecutionChain,其實就是獲取真正要執行的Controller或者某個具體的方法。HandlerMapping接口提供的唯一的方法就是HandlerExecutionChain getHandler(HttpServletRequest request)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青河县| 张掖市| 长葛市| 云浮市| 台东县| 元谋县| 射阳县| 综艺| 兴隆县| 从江县| 巴中市| 喜德县| 潍坊市| 武冈市| 诸暨市| 澜沧| 海林市| 磐石市| 山西省| 黄平县| 梅河口市| 萝北县| 巧家县| 张北县| 固始县| 赫章县| 陆良县| 百色市| 秦皇岛市| 军事| 深水埗区| 汽车| 张掖市| 义马市| 冀州市| 贵阳市| 井研县| 贵德县| 吴旗县| 贡觉县| 定西市|