dispatcherservlet工作流程详解

之前给大家介绍了一下dispatcherservlet作用以及功能,那么接着要给大家介绍的就是dispatcherservlet的工作流程方面的内容,一起来看看吧。

1、向服务器发送HTTP请求,请求被前端控制器DispatcherServlet捕获;

2、 DispatcherServlet依据-servlet.xml当中的配置对请求的URL进行解析,得到请求资源标识符(URI);

之后,依据这个URI,调用HandlerMapping,获得这个Handler配置的所有相关的对象(包括Handler对象和Handler对象对应的拦截器),之后,以HandlerExecutionChain对象的形式返回;

3、 DispatcherServlet根据获得的Handler,选择一个适合的HandlerAdapter(假如,成功获得HandlerAdapter之后,这个时候就将开始执行拦截器的preHandler(...)方法);

4、提取Request当中的模型数据,填充Handler入参,开始执行Handler(Controller);

在填充Handler的入参过程中,依据你的配置,Spring将帮你做一些额外的工作:

HttpMessageConveter:将请求消息(例:Json、xml等数据转换成一个对象,将对象转换为指定的响应信息;

数据转换:对请求消息进行数据转换;

例:String转换成Integer、Double等等;

数据根式化:对请求消息进行数据格式化;

假如把字符串转换成格式化数字或者是格式化日期等;

数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult又或者是Error中;

5、Handler(Controller)执行完成之后,向DispatcherServlet返回一个ModelAndView 对象;

6、依据返回的ModelAndView,选择一个合适的ViewResolver(一定要是已经注册到Spring容器当中的ViewResolver)返回给DispatcherServlet;

7、 ViewResolver结合Model和View,来渲染视图;

8、视图负责将渲染结果返回给客户端;

对于dispatcherservlet你还有什么想要了解的吗?可以继续通过奇Q工具网的java架构师栏目来进行了解哦。

推荐阅读:

dispatcherservlet是什么?示例详解

dispatcherservlet特点是什么?有什么特点?