【前言】
在项目中负责高校云平台的后台部分,增删改查不能让没登录的人随便弄。所以加了个拦截器,加的方式可能有点low,保存一下,做个纪念。【正文】
拦截器类:
**
* Created by 宋荣凯 on 2017/8/16.
*/
//拦截器类用于拦截未登陆用户的除登陆和注册的其他请求
public class AuthorizationInceptor implements HandlerInterceptor{
private static final String[] IGNORE_URI ={"/login"};
@Override
public void afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception exception)throws Exception
{
System.out.println("123");
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mv)throws Exception
{
System.out.println("456");
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler)throws Exception
{
boolean flag=false;
String servletPath=request.getServletPath();
for (String s:IGNORE_URI)
{
if (servletPath.contains(s))
{
flag=true;
break;
}
}
if (!flag)
{
String user=(String) request.getSession().getAttribute("userId");
if (user==null)
{
request.setAttribute("message","请先登录再访问网站");
request.getRequestDispatcher("/user/login").forward(request,response);
}else
{
flag=true;
}
}
return flag;
}
}
在spring-mvc 配置文件中添加: <mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*"/>
<mvc:exclude-mapping path="/**/fonts/*"/>
<mvc:exclude-mapping path="/**/*.css"/>
<mvc:exclude-mapping path="/**/*.js"/>
<mvc:exclude-mapping path="/**/*.png"/>
<mvc:exclude-mapping path="/**/*.gif"/>
<mvc:exclude-mapping path="/**/*.jpg"/>
<mvc:exclude-mapping path="/**/*.jpeg"/>
<mvc:exclude-mapping path="/**/registuser"/>
<bean class="com.dmsdbj.itoo.itooCloud.controller.AuthorizationInceptor" />
</mvc:interceptor>
</mvc:interceptors>
如此就完成了拦截了