springMVC框架二之拦截器

这里写图片描述
主要是这里配置拦截器信息,第一个UnicodeIntercept拦截器是对所有的.do请求进行拦截。第二个LoginIntercept拦截器是对login.do请求进行拦截。我们来看看他们分别是怎么实现拦截的
package com.xingyao.action.intercept;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class UnicodeIntercept extends HandlerInterceptorAdapter {

/**
 * 在请求之前被调用
 *     编码过滤器
 */
public boolean preHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler) throws Exception {

    request.setCharacterEncoding("utf8");
    response.setCharacterEncoding("utf8");
    return super.preHandle(request, response, handler);
}

/**
 * 在请求执行后被调用
 */
public void postHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler,
        ModelAndView modelAndView) throws Exception {
    // TODO Auto-generated method stub
    super.postHandle(request, response, handler, modelAndView);
}

/**
 * 最后执行,一般用于释放资源
 */
public void afterCompletion(HttpServletRequest request,
        HttpServletResponse response, Object handler, Exception ex)
        throws Exception {
    // TODO Auto-generated method stub
    super.afterCompletion(request, response, handler, ex);
}

}
这样就能完成拦截器的配置,我们再来走一遍springmvc对.do请求的流程

执行步骤
1、一个.do请求到来,就交给DispatchServlet进行处理
2、这时候系统会创建:视图定位器(viewResolver)和请求转发器(simpleUrlHandlerMapping)
3、系统到请求转发器的mappings里面查找对应请求的key,从而找到找到系统处理,这里是loginControl
4、在执行loginControl前后会执行对应的拦截器(拦截器执行的顺序采用栈的形式执行)
5、然后到这个servlet里面执行handleRequest方法,返回一个ModelAndView对象,里面可以封装返回视图信息、返回结果数据
6、然后再查找配置信息。从而在返回视图信息加上视图定位器的信息,转发到界面页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值