springmvc的原理总结

dispatchServlet根据用户请求到handleMappering
在HandlerExecutionChain执行链中,返回具体的handle处理
之后到达适配器handleadapter 处理业务,返回modelAndview到达dispatchServlet
再通过dispatchServlet到达视图解析器viewResolve 然后再返回具体view 之后通过dispatchServlet
到达渲染到达view视图 然后返回dispatchServlet 响应给用户

springmvc拦截器是什么:
HandlerExecutionChain是一个执行链,
当请求到达DispatchServlet时,DispatchServlet根据请求路径到HandlerMapping
查询具体的Handler,从HandlerMapping返回给DispatcherServlet,
其中包含了一个具体的Handler对象和Interceptors(拦截器集合)。
如何自定义拦截器:
springmvc的拦截器接口(HandlerInterceptor)定义了三个方法:
1.preHandle调用Handler之前执行,
称为前置方法
返回值:true表示放行,后续业务逻辑继续执行
false表示被拦截,后续业务逻辑不再执行,
但之前返回true的拦截器的完成方法会倒叙执行
2.postHandle调用Handler之后执行,称为后置方法
3.afterCompletion视图渲染完成之后执行

springmvc的三种映射器:
1、BeanNameUrlHandlerMapping 根据对象的名字来进行处理器映射,此时该对象要继承AbstractController 实现handlerRequestInternal方法;对请求的处理主要在该方法中完成

       <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

注意:使用 对象名映射 时,对象配置时的name属性必须为 “/xxx.action” 的形式,即 对象名 即为访问的 URL名

2、SimpleUrlHandlerMapping

SimpleUrlHandlerMapping的配置

复制代码

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/a.action">indexController</prop>
                    <prop key="/b.action">indexController</prop>
                    <prop key="/c.action">indexController</prop>
                </props>
            </property>
        </bean>

复制代码

3、ControllerClassNameHandlerMapping 控制器类名映射

控制器类名处理器映射对象配置


<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值