之前给大家介绍了一下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架构师栏目来进行了解哦。
推荐阅读: