SpringMVC的拦截器配置

SpringMVC配置文件里面配置的拦截器,简单的项目里可以用来拦截所有URL请求,进行验证是否登录等操作,当然稍微大一点的项目就推荐使用成熟的权限管理框架(例如Shiro),来管理权限,拦截请求等。

1.使用方式很简单,在已有的springmcv配置文件里面,加上以下代码

<mvc:mapping path="/**" />    标签指定拦截所有请求

<mvc:exclude-mapping path=""/>     标签指定哪些URL除外(不拦截,一般是登录页面和一些静态图片URL)

<bean class="com.reserve.interceptor.UserInterceptor" />      标签指定拦截后执行的java代码拦截器,方法返回true拦截通过
<!--  配置拦截器拦截所有请求,判断有没登录,没有返回登录页面 -->
      <mvc:interceptors>
		  <mvc:interceptor>
			  <mvc:mapping path="/**" />
			  <mvc:exclude-mapping path="/image/*.png"/>
			  <mvc:exclude-mapping path="/view/loginPage"/>
			  <mvc:exclude-mapping path="/view/login"/>
			  <bean class="com.reserve.interceptor.UserInterceptor" />
		  </mvc:interceptor>
	  </mvc:interceptors>

2.然后就是写拦截器(实现HandlerInterceptor接口,重写方法),代码实现你拦截后想进行的验证等操作,我这里进行简单的验证是否登录

package com.reserve.interceptor;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.reserve.bean.User;

/**
 * 拦截所有请求,查看有没登录
 * @author liqiye
 *
 */
public class UserInterceptor implements HandlerInterceptor{
	
	
	@Override
	public void afterCompletion(HttpServletRequest arg0,
			HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {

	}

	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,
			Object arg2, ModelAndView arg3) throws Exception {

	}

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
			Object arg2) throws Exception {
		User user=(User)request.getSession().getAttribute("user");
		if(null==user){
            //如果没有登录session,则返回到登录页面
            response.sendRedirect(request.getContextPath()+"/view/loginPage?loginFlag=1");
            return false;
        }
		return true;
	}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC中,可以通过配置拦截器来实现对请求进行拦截和处理。下面是一个简单的Spring MVC拦截器配置示例: 1. 创建一个实现了HandlerInterceptor接口的拦截器类,例如MyInterceptor: ```java import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 在请求处理之前进行调用(Controller方法调用之前) // 返回true表示继续执行,返回false取消当前请求 return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { // 请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后) } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // 在整个请求结束之后被调用,也就是在DispatcherServlet渲染了对应的视图之后执行(主要用于进行资源清理工作) } } ``` 2. 在Spring MVC配置文件中配置拦截器: ```xml <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <!-- 拦截的URL模式 --> <bean class="com.example.MyInterceptor" /> <!-- 拦截器类 --> </mvc:interceptor> </mvc:interceptors> ``` 在上述示例中,拦截器类MyInterceptor会拦截所有URL模式("/**")的请求。你可以根据需要设置特定的URL模式来进行拦截。拦截器的执行顺序是按照配置顺序进行的。 注意:上述示例是基于XML配置的方式,如果你使用的是Java配置,可以通过实现WebMvcConfigurer接口来配置拦截器

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值