外部流程围绕着dispatchServlet,那么dispatchServlet内部到底做了什么?
①前端通过 ip+端口/lin 访问tomcat服务器上的controller 此时"/lin"就会被dispatchServlet拦截
②dispatServlet会根据"/lin"去找处理器映射器,处理器映射器则会返回"/lin"指向的controller类以及拦截器执行链给dispatch
拦截器执行链即多个拦截器,这些拦截器之间还存在执行的先后顺序
③dispatch收到具体的controller后,就会去找处理器适配器,让处理器适配器执行controller里的方法 执行完毕后将modelAndView返回给dispatchServlet
④dispatchServlet拿到modelAndView后,就找到视图解析器,视图解析器会给modelAndView的ViewName追加前缀和后缀 然后把路径返回给dispatchServlet
⑤dispatchServlet拿到视图解析器拼接的路径后就根据ModelAndView进行jsp渲染,再将渲染好的jsp拿回到dispatchServlet,最后将jsp返回给浏览器,由浏览器进行展示
全流程一览:
名字 |
说明 |
dispathServlet 中央处理器 |
与前端页面交互(接收请求和参数),处理分发请求 |
处理器映射器 |
返回controller和拦截器执行链 |
处理器适配器 |
执行controller里的方法 |
视图解析器 |
给字符串凭借前缀和后缀,形成真实路径 |
原文:https://www.cnblogs.com/BRSblackshoot/p/15212316.html