spring 拦截器
1.mvc.xml
<!-- 自定义拦截链配置 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/supplier/*"/>
<mvc:mapping path="/goods/*"/>
<mvc:mapping path="/contact/*"/>
<bean class="com.young4j.controller.UserInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
<mvc:interceptors>
<!-- 局部拦截器 -->
<mvc:interceptor>
<mvc:exclude-mapping path="/user_login" />
<mvc:exclude-mapping path="/user_logout" />
<mvc:mapping path="/**" />
<bean class="com.young4j.interceptor.MyInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
登录拦截器
public class LoginInterceptor implements HandlerInterceptor {
//日志
protected Logger log = Logger.getLogger(getClass());
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object handle) throws Exception {
//创建session
HttpSession session =request.getSession();
//无需登录,允许访问的地址
String[] allowUrls =new String[]{"/toLogin","/login"};
//获取请求地址
String url =request.getRequestURL().toString();
//获得session中的用户
UserToken user =(UserToken) session.getAttribute("userToken");
for (String strUrl : allowUrls) {
if(url.contains(strUrl))
{
return true;
}
}
if(user ==null)
{
throw new UnLoginException("您尚未登录!");
}
//重定向
//response.sendRedirect(request.getContextPath()+"/toLogin");
return true;
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
}
}
设置session
HttpSession session=event.getSession;
session.setMaxInactiveInterval(30*60);//以秒为单位

浙公网安备 33010602011771号