Spring拦截器
1.配置一个拦截器
创建一个类,实现HandlerInterceptor接口,重写方法
@Override
public boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object o) throws Exception {
req.setCharacterEncoding("UTF-8");
String url = req.getServletPath();
System.out.println("URL:"+url);
if(!url.equals("")){
DevUserDto devUser = (DevUserDto) req.getSession().getAttribute("devUser");
if(devUser == null){
System.out.println("没有登陆,请登陆");
resp.sendRedirect(req.getContextPath() + "/page/dev/dev_login");
return false;
}
}
return true;
}
2.springmvc.xml配置文件
<!--拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<!--拦截所有的请求,在排除不拦截的-->
<mvc:mapping path="/**"/>
<!--前往登陆页面不拦截-->
<!--<mvc:exclude-mapping path="/dev/dev_login" />-->
<!--第一次登陆或者当没有登陆时,拦截器跳转不拦截-->
<mvc:exclude-mapping path="/page/dev/dev_login" />
<!--登陆时,跳转登陆方法,不拦截-->
<mvc:exclude-mapping path="/devUser/devLogin" />
<!--静态资源不拦截-->
<mvc:exclude-mapping path="/images/**" />
<mvc:exclude-mapping path="/css/**" />
<mvc:exclude-mapping path="/fonts/**" />
<mvc:exclude-mapping path="/js/**" />
<mvc:exclude-mapping path="/comments/**" />
<!--配置自定义拦截器-->
<bean class="com.ceh.handler.MyLoginHandler"></bean>
</mvc:interceptor>
</mvc:interceptors>