博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SringMVC笔记

Posted on 2019-06-03 09:49  徐自勉  阅读(200)  评论(0编辑  收藏  举报

SpringMvc主要是三个Servlet:HttpServletBean,FramwworkServlet,DispatcherServlet,它们是依次继承的关系,其处理过程大致功能如下:

1.HttpServletBean:没有参与实际请求的处理。

2.FramwworkServlet:将不同的请求合并到processRequest方法统一处理,processRequest方法中做了三件事。

  a.调用了doService模板方法具体处理请求

  b.将当前请求的LocalContext和ServletRequestAttributes在处理请求前设置到了LocalContextHolder和RequestContextHolder,并在请求处理完成后回复。

  c.请求处理完成发布了ServletRequstHandleEvent消息。

3.DispatcherServlet:doService方法给request设置了一些属性并将请求交给doDispatch方法具体处理。

 

SpringMvc九大组件:

1.HandlerMappping:它的作用是根据request找到相应的处理器Handler和Interceptors,该接口里面只有一个方法:

   HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;

 

2.HandlerAdapter:Handler适配器。HandlerApdater处理器适配器,作用是根据请求的url找到处理器的调用方法.

   因为SpringMvc中的Handler可以是任何形式,只要能处理请求。但是Servlet需要的处理方法的结构确是固定的,都是以request和response为参数的方法,所以就需要HandlerApdater来适配。