今天是第一次接触spring mvc 首先 我们先从spring mvc的生命周期来了解它。
推荐课程:java教程。
首先,浏览器会发送请求,我们的项目通过spring中的一个叫做dispatcherservlet名字的一个servlet来接收请求.
这个servlet接收请求后 会验证是否是第一次加载这个servlet。如果是第一次加载这个servlet 则此时dispatcherservlet会做一些初始化操作。
dispatcherservlet会初始化handlermapping(注:通过它来处理客户端请求到各个controller处理器的映射)
dispatcherservlet会初始化handleradapter(注:handlermapping会根据它来调用controller里需要被执行的方法)
dispatcherservlet会初始化handlerexceptionresolver(注:spring mvc处理流程中,如果有异常抛出,会交给它来进行异常处理)
dispatcherservlet会初始化viewresolver (注:handleradapter会把controller中调用返回值最终包装成
modelandview,viewresolver会检查其中的view,如果view是一个字符串,它就负责处理这个字符串并返回一个真正的view,如果view是一个真正的view则不会交给它处理)
上述这些都初始化完毕后 然后dispathcerservlet会开始查询一个或者多个handlermaprring 来将请求映射到一个控制器对象
如果此时没有找到一个控制器对象 则会抛出异常
如果找到了一个控制器对象 那么这个请求会经过一个拦截器链的prehandle处理 通过handleradapter来匹配到控制器对象的具体方法
然后这个方法中会根据我们的业务逻辑来处理请求 完成业务逻辑的处理后 控制器会得到一个modelandview对象(注:这个类中的vie
这个属性是 object 类型的,它可以是一个视图名也可以是一个实际的view)得到这个modelandview后 spring会判断modelandview的viewname是否是string类型
如果是string类型 则直接调用modelandview的getview方法 然后找到对应的页面 然后将信息返回给dispatcherservlet
如果不是string类型 然后会根据viewname到viewresolver中去找到这个名称 然后确定其对应的页面 然后将页面返回给dispatcherserlvet
最后dispatcherserlvet会将得到页面返回给浏览器。
以上就是spring mvc生命周期是什么的详细内容。