通过spring的拦截器实现Filter的功能

package com.highcom.literature.util.interceptor;

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

import com.highcom.literature.LTBContextNotExistException;
import com.highcom.literature.LTBackContext;
import javax.servlet.http.*;

/**
 * Title: SignonInterceptor.java
 * 
 * Description:
 *
 * Copyright: Copyright (c) 2005
 *
 * Company: HighCom
 *
 * @author Xinbo Li
 *
 * @version 1.0
 *
 * 创建时间:2005-6-29 11:10:16
 */
public class SignonInterceptor extends HandlerInterceptorAdapter {

    /**
     * 构造函数
     */
    public SignonInterceptor() {
     
    }
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws
Exception {
       
        try {
            LTBackContext ctx = LTBackContext.getLTBackContext(request);
          }
          catch (LTBContextNotExistException ex) {
            String url = request.getServletPath();
            String query = request.getQueryString();
            ModelAndView modelAndView = new ModelAndView("/sys_manage/need_login");
            if (query != null) {
              modelAndView.addObject("signonForwardAction", url + "?" + query);
            }
            else {
              modelAndView.addObject("signonForwardAction", url);
            }
            throw new ModelAndViewDefiningException(modelAndView);
          }
          return true;
    }
}

对应的xml配置


 <bean id="sysHandlerMapping"
  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="interceptors">
      <list>
        <ref local="signonInterceptor"/>
      </list>
    </property>
  <property name="urlMap">
   <map>
     <entry key="/index_sys.do">
     <ref local="sysWorkAction" />
    </entry>
 </map>
  </property>
 </bean>

   <bean id="signonInterceptor"
  class="com.highcom.literature.util.interceptor.SignonInterceptor">
  <description>登陆拦截器</description>
 </bean>

boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;
    这个方法在自己的应用方法执行之前,返回true的时候继续执行操作,如果false,说明没有通过,那么自己的方法也就不会执行。

    void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception;
    这个方法在自己的应用方法执行之后,在DispatcherServlet类导向到view之前执行。可以往view中添加额外的model对象。

    void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception;
    一个Callback方法,请求过程(request processing)完成之后执行。可以用来清理资源。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值