DispatcherServlet的doDispatch()-获取controller:适配器

本文详细介绍了适配器模式在处理HTTP请求到控制器调用过程中的作用。首先,根据HttpServletRequest,遍历并匹配合适的Controller。接着,通过适配器选取特定Controller,并调用其相应方法,最终返回ModelAndView。适配器模式使得不同控制器方法的调用得以统一,提高了系统的灵活性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

适配器相关类图:

image.png

根据HttpServletRequest request获取对应的控制器(Controller),获取处理该Controller的适配器,通过适配器调用该Controller方法,返回ModelAndView

image.png

根据request遍历controller,获取和url匹配的controller:

image.png

image.png

image.png

不同的适配器调不同controller的方法:

image.png

通过参数强转调用具体controller的方法,返回ModelAndView

image.png

2025-04-01 10:40:39.023 INFO [io.undertow.servlet] - Initializing Spring DispatcherServlet 'dispatcherServlet' 2025-04-01 10:40:39.025 INFO [org.springframework.web.servlet.DispatcherServlet] - Initializing Servlet 'dispatcherServlet' 2025-04-01 10:40:39.026 TRACE [org.springframework.web.servlet.DispatcherServlet] - Detected org.springframework.web.multipart.commons.CommonsMultipartResolver@58ec8271 2025-04-01 10:40:39.026 TRACE [org.springframework.web.servlet.DispatcherServlet] - Detected org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver@398694a6 2025-04-01 10:40:39.026 TRACE [org.springframework.web.servlet.DispatcherServlet] - Detected org.springframework.web.servlet.theme.FixedThemeResolver@3df04fa1 2025-04-01 10:40:39.028 TRACE [org.springframework.web.servlet.DispatcherServlet] - Detected DefaultRequestToViewNameTranslator 2025-04-01 10:40:39.029 TRACE [org.springframework.web.servlet.DispatcherServlet] - Detected SessionFlashMapManager 2025-04-01 10:40:39.030 DEBUG [org.springframework.web.servlet.DispatcherServlet] - enableLoggingRequestDetails='false': request parameters and headers will be masked to prevent unsafe logging of potentially sensitive data 2025-04-01 10:40:39.030 INFO [org.springframework.web.servlet.DispatcherServlet] - Completed initialization in 5 ms 2025-04-01 10:40:39.049 TRACE [org.springframework.web.servlet.DispatcherServlet] - GET "/big-screen/get-time-period-traffic?deviceType=3", parameters={masked}, headers={masked} in DispatcherServlet 'dispatcherServlet' 2025-04-01 10:40:39.050 TRACE [o.s.w.s.m.m.a.RequestMappingHandlerMapping] - Mapped to com.syzn.dv.biz.bigscreen.northbound.controller.BigScreenController#getTimePeriodTraffic(BigScreenCommonReq) 2025-04-01 10:40:39.074 TRACE [org.springframework.web.method.HandlerMethod] - Arguments: [BigScreenCommonReq(direction=null, deviceType=3, startDate=null, endDate=null)] 2025-04-01 10:40:39.088 DEBUG [org.mybatis.spring.SqlSessionUtils] - Creating a new SqlSession 2025
最新发布
04-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值