springmvc登陆拦截器设计

每一个系统的拦截器设计存在着大同小异每个拦截器都是根据自己系统的需求来设计的根据我的系统设计出对应的拦截器,其中出现了五种用户其中包括管理员因此拦截他们未登录是与其他设计不同的

下面展示的代码是基于springmvc的登陆拦截器代码

//根据系统设计加入不拦截的URI
	private static final String [] IGNORE_URI = {"index","/admin/tologin","/admin/login"};
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) 
			throws Exception {
		Object user = request.getSession().getAttribute("user");
		boolean falg = false;
		String servletPath = request.getServletPath();
		for (String s : IGNORE_URI) {
			
			if(servletPath.contains(s)){
				falg = true;
				break;
			}
			
		}
		if(falg){
			return true;
		}else {
			if(user == null){
				//request.getContextPath()得到调用该方法的项目名称
				response.sendRedirect(request.getContextPath()+"/index/tologin");
				System.out.println("未登录"+request.getContextPath());
				return false;
			}
			return true;
		}
		
		
		
	}

同时在springmvc配置文件中配置

<!-- 拦截器 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**"/>
		
			<bean class="com.crabverfication.utils.LoginInterceptor">
				
			</bean>
		</mvc:interceptor>
	</mvc:interceptors>
这样除了指定的不拦截的路径 其他的所有路径都会被拦截
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值