springmvc框架 dispacherServelet容器组件调用

      服务器启动时,tomcat创建并自动装配所有生成对象:spring容器放在服务器应用全局中,springmvc容器被放在dispacherServlet容器中。注解解析器在dispacherServlet创建时赋予它识别相关注解并作出相应操作的能力。

       浏览器发送请求req,首先经过 过滤器,过滤器通常用来实现请求和响应的编码格式,或者拦截业务;

        请求req到达dispacherServelet,内部拦截器preHandle()方法调用,返回值为true时放行;

        请求req由到达Controller层相应url的单元方法中,执行相关业务逻辑;到达和执行两步由自动生成的RequestMappingHandlerMapping和RequestMappingHandlerAdapter两个对象分别处理。

        其中的Mapping负责查找对应方法。Adapter负责调用方法体,首先通过反射得到的方法类对象来映射参数。如果添加了@ResponsBody会在方法调用完成时设置相应的响应格式Json/Xml。如果是请求转发或重定向则会创建并设置ModelAndView对象,最后返回给dispacherServelet

        这时dispacherServelet调用拦截器postHandle(),执行方法体。

        postHandle()执行完成后dispacherServelet拿出ModelAndView对象,调用视图解析器渲染出对应路径页面。

        这时dispacherServelet调用拦截器afterCompletion(),执行方法体。

        最后以http响应的格式发送给浏览器。

        

注解解析器

<mvc:annotation-driven/>

         使用springmvc框架时,激活dispacherServelet能识别controller层添加的各种注解的能力,并且做出相应的方法调用或者处理。

        要实现处理调用的能力,依赖于三个类对象:

        RequestMappingHandlerMapping

            处理@RequestMapping的请求映射

        RequestMappingHandlerAdapter

            调用@RequestMapping相应方法,结果返回给dispacherServelet

        ExceptionHandlerExceptionResolver

            对控制器层异常的处理

   在启用注解解析器时,这三个类对象被自动创建。     

        在spring-mvc.xsd文件的说明中

过滤器

拦截器:

        多个拦截器拦截同一目标的执行顺序:

                preHandle()从配置文件自上而下执行。

                postHandle()自下而上执行。

视图解析器:

        页面技术除了基于java的jsp,还有很多种。可以通过不同视图解析器渲染不同类型页面。

异常处理:

       通过注解 @ExceptionHandler():

                Controller本类 局部:

        

               Controller全体类 全局

        springmvc局部配置:

        项目全局配置:

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值