美文网首页
Spring MVC

Spring MVC

作者: 响响月月 | 来源:发表于2019-04-19 17:21 被阅读0次

Spring容器是Spring MVC的父容器;
Spring应用的IOC容器通过tomcat的Servlet或Listener监听启动加载;
Spring MVC的容器由DispatcherServlet作为入口。

过程原理

  1. DispatcherServlet(前端控制器) 把请求分发到HandlerMapping (default: BeanNameUrlHandlerMapping)
  2. HandlerMapping匹配url请求的Handler Controller / Interceptor(拦截器) (根据xml / 注解)
  3. 返回给DispatcherServlet
  4. DispatcherServlet处理适配器执行Handler
  5. 处理器适配器执行完成后,Controller返回ModelAndView
  6. DispatcherServlet请求视图解析器, 解析后向DispatcherServlet返回View
  7. DispatcherServlet进行视图渲染,向用户响应结果

分工职责

  • 前置控制器DispatcherServlet
    作用:接收请求 返回结果
  • 映射处理器 HandlerMapping
    作用:根据请求映射为HandlerExecutionChain对象,查找对应的Handler
  • 处理器适配 HandlerAdapter
    作用:调用处理器相对应的处理方法,返回ViewAndModel
  • 视图解析器 ViewResolver
  • 视图的渲染 View

SpringMVC的优点?

  1. 方便解耦,简化开发,职责鲜明,分工明确
  2. AOP的很好支持,方便面向切面编程
  3. 对主流的框架提供了很好的集成支持
  4. Spring属于低侵入,代码污染极低

SpringMVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?

是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能,解决方案是在控制器里面不能写字段

SpringMVC怎样设定重定向和转发 ?

在返回值的前面加”forword”,就可以实现让结果转发;
在返回值的前面加上”redirect”,就可以让返回值重定向。

相关文章

网友评论

      本文标题:Spring MVC

      本文链接:https://www.haomeiwen.com/subject/bqbqgqtx.html