springMVC的HandlerInterceptor拦截器

springMVC的拦截器,主要作用是对用户的请求进行处理,主要用来做权限验证,或者是来判断用户是否登陆,日志记录,或者限制时间点访问。

使用时请求url若与拦截的路径匹配时,对HttpServletRequest和HttpServletResponse做处理,处理完之后再经过controller拦截进行业务逻辑处理。

一、具体在SpringMVC-servlet.xml的配置如下。

<mvc:interceptors>		
     <mvc:interceptor>
	<mvc:mapping path="/**"/>
	<bean id="sessionInterceptor" class="toutiao.interceptor.SessionInterceptor" />
     </mvc:interceptor>
     <mvc:interceptor>
	<mvc:mapping path="/**"/>
	    <bean class="toutiao.interceptor.AdminInterceptor">
	       <property name="mappingURL" value=".*/admin/.*"/>
	   </bean>
     </mvc:interceptor>
		
</mvc:interceptors>

 二、java类必须实现HandlerInterceptor接口。

package org.springframework.web.servlet;

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

import org.springframework.web.method.HandlerMethod;
public interface HandlerInterceptor {
	boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
	    throws Exception;
	void postHandle(
			HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
			throws Exception;
	void afterCompletion(
			HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception;

}

正常执行顺序:preHandle-》controller—》postHandle—》afterHandle—》view视图

方法介绍:preHandle()预处理 

这样实现的优点,可以对HttpServletRequest做预处理,实现某种功能。

猜你喜欢

转载自435727748.iteye.com/blog/2225167