简介
spring的拦截器interceptor就是web的Filter
部署
<!-- 配置拦截器群 -->
<mvc:interceptors>
<!-- 配置拦截器 -->
<mvc:interceptor>
<!-- 配置拦截路径! /** 代表所有 --> <mvc:mapping path="/**"/> <!-- 配置排除操作 path=“排除路径” --> <mvc:exclude-mapping path="/user/login"/>
<!-- mvc内生成拦截器对象 --> <bean class="xyz.javaswing.Interceptor.PrivilegeInterceptor"/> </mvc:interceptor> </mvc:interceptors>
实现
拦截的使用实现Spring提供拦截器接口:handlerinterceptor
重写内部的方法。
boolean preHandle (HttpServletRequest request , HttpServletResponse response , Object handler)
参数
request:拦截的请求对象
response:拦截的响应对象
handler:未知
返回值:boolean
返回值意义:能否通行。true可以通行,false不可通行
作用:拦截在响应前做出过滤操作
void postHandle(HttpServletRequest request,HttpServletResponse response , Object Handler,ModelAndView modelAndView)
参数:
request:拦截到的请求对象
response:拦截到的响应对象
handler:未知
modelAndView:拦截到的视图对象
返回值:无
返回值意义:无
作用:拦截请求,在视图返回前做出操作。
void afterCompletion(HttpServletRequest request,HttpServletResponse response , Object Handler,Exception ex)
参数:
request:拦截到的请求对象
response:拦截到的响应对象
handler:未知
ex:异常对象,未知作用
返回值:void
返回值意义:无
作用:在视图返回后,作操作
使用
<!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <!-- 配置排除操作 --> <mvc:exclude-mapping path="/user/login"/> <bean class="xyz.javaswing.Interceptor.PrivilegeInterceptor"/> </mvc:interceptor> </mvc:interceptors>
public class PrivilegeInterceptor implements handlerinterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 判断用户是否登陆,session中有无user HttpSession session = request.getSession(); User user =(User) session.getAttribute("user"); if( user == null ){ response.sendRedirect(request.getcontextpath()+"/login.jsp"); return false; // 不放行 } // 有user,放行。让它访问啥就访问啥。 return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。