spring mvc中配置拦截器

ApplicationContext-mvc.xml中

<!-- 访问拦截  -->  
	<!-- /**/**代表拦截所有,LoginHandlerInterceptor定义拦截到的页面 -->
  	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**/**"/>
			<bean class="com.ecai.interceptor.LoginHandlerInterceptor"/>
		</mvc:interceptor>
	</mvc:interceptors>

 LoginHandlerInterceptor.java中

package com.ecai.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.ecai.entity.system.User;
import com.ecai.util.Const;
import com.ecai.util.Jurisdiction;
/**
 * 
* 类名称:登录过滤,权限验证
* 类描述: 
* 作者单位: 
* 联系方式:
* 创建时间:2015年11月2日
* @version 1.6
 */
public class LoginHandlerInterceptor extends HandlerInterceptorAdapter{

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		// TODO Auto-generated method stub
		String path = request.getServletPath();
		if(path.matches(Const.NO_INTERCEPTOR_PATH)){
			return true;
		}else{
			User user = (User)Jurisdiction.getSession().getAttribute(Const.SESSION_USER);
			if(user!=null){
				path = path.substring(1, path.length());
				boolean b = Jurisdiction.hasJurisdiction(path); //访问权限校验
				if(!b){
					response.sendRedirect(request.getContextPath() + Const.LOGIN);
				}
				return b;
			}else{
				//登陆过滤
				response.sendRedirect(request.getContextPath() + Const.LOGIN);
				return false;		
			}
		}
	}
	
}

 

posted @ 2017-10-12 17:05  牛郑焜  Views(326)  Comments(0Edit  收藏  举报