springMVC web请求处理流程

来源:互联网 发布:贪心算法 动态规划 编辑:程序博客网 时间:2024/05/22 01:47

springMVC web请求处理流程

1、spring mvc将所有的请求都提交给DispatherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。

2、DispatherServlet查询一个或多个HandlerMapping,找到处理请求的Controller。

3、DispatherServlet将请求提交到目标Controller。

4、Controller进行业务逻辑处理后,会返回一个ModelAndview

5、Dispathcher查询一个或多个ViewResolver视图解析器,找到ModeAndView对象指定的视图对象。

6、视图对象负责宣染返回给客户端。

 

springMVC 的重要组件-------

DispatherServlet:应用了“Front Controller”模式,是所有Spring MVC请求的中枢;继承了HttpServlet,是一个Servlet,由WebApplicationContext加载;如果不做其他配置,会加载默认组件。

 

HandlerMapping:将web请求映射到正确的处理器(handler)上,通常是一个Controller;不需用自定义处理器映射,因为已经内置了很多处理器映射策略;在处理器映射中通过配置拦截器(包括处理器执行前、执行后、或者执行前后运行的拦截器);将使其功能更强大。

 

controller接口:    负责处理请求;内部参数继承HttpServlet,它内含 handleRequest(HttpServletRequest,HttpServletResponse);返回一个ModelAndView对象;所有实现都是线程安全的;基本不用自己实现接口,因为已经提供了很多实用的实现类。

 

ModelAndView对象:封装了用来渲染页面的model和view;Model用java.util.Map实现的;添加对象,可以不需要用名字,如addObject(Object)--用默认名添加;View用String或View对象表示;类似Structs的Action。

 

Interceptors:          在请求前后添加其他功能;包括拦截器方法---preHandle and postHandle;包括回调方法  --afterCompletetion;可以通过HandlerMapping和一系列Controller关联上。

 

viewResolver:     从一个逻辑视图名映射到一个视图对象;可以排序,所以能链在一起;FreeMarkViewResolver--针对FreeMarker templates设计的。

 

视图View:            支持的几种视图模板技术:JSP、JSP+JSTL、Velocity、FreeMarker、Tiles、Tiles+JSTL等。

 

原创粉丝点击