我是靠谱客的博主 沉静翅膀,最近开发中收集的这篇文章主要介绍springmvc原理之DispatcherServlet,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

DispatcherServlet是springmvc最核心的类,整个处理过程的顶层都在这里.

DispatcherServlet继承自HttpServlet,它也是Http协议的实现.

DispatcherServlet里面执行处理的入口方法是doService,不过doService并没有直接处理,而是交给了doDispatch去处理,在处理前,doService做了一部分事情.先判断请求是不是include请求(要清楚forward和include的区别),如果是include请求,会对request的Attribute做一些快照备份,等doDispatch处理完请求,回复备份.除了做备份之外,还对request进行了一些设置:设置了webapplicontext,themsource,localresolver,themesolver.这四个属性用在handler和view中.除此之外doService还设置了flashmap,lashmapManager.

看一些源码如下:

那么flashMap是做什么的呢?它主要是作为redirect转发时参数的传递.就是我们在handler上面写的参数类型,名称,spring帮我们把参数放到了这个flashMap中,然后放到model中(其实转发输入的属性是存在inputflashMap中,outputflashMap用于转发输出的属性,他们通过ManagerflashMap来管理).这就是doService大概做的事情,下面介绍doDispatch做的事情

doDispatch主要做了四件事情:1.根据request找到handler; 2.根据handler找到handlerAdapter; 3.用handlerAdapter处理handler; 4.调用processDisachResult方法处理上面处理后的结果(包括找到view并渲染输出给客户端):那么handler,handlerAdapter,handlermapping都是什么呢?这是<看透springmvc源码与分析>一书中的介绍:

就是我们一次请求,先是通过handlermapping找到handler,但是handler并没有执行,他通过handlerAdapter来执行他.并且返回modelandview,然后DispatcherServlet把这个modelandview,返回给解析器:

你们看springmvc中的M-model,v-view ,c-controller.其实有两个都是和DispatcherServlet直接有联系的.

 

 

最后

以上就是沉静翅膀为你收集整理的springmvc原理之DispatcherServlet的全部内容,希望文章能够帮你解决springmvc原理之DispatcherServlet所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部