1.编写自定义拦截器类
package cn.guang.ssm.utils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import cn.guang.ssm.pojo.User;
public class LoginInterceptor implements HandlerInterceptor{
/**
* 执行任何URL都要先执行的方法
* 返回结果是:true 放行 false 不放行
* 需要放行的自己就添加 :这里只是放行了登陆 及验证码
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
String uri = request.getRequestURI();
//1. 放行 登陆请求
if(uri.contains("login.action")){
return true;
}
//2.放行 验证码生成请求
if(uri.contains("checkCode.action")){
return true;
}
User user = (User) request.getSession().getAttribute("user");
if(user !=null && user.getLoginid()!=null &&!"".equals(user.getLoginid())){
return true;
}
request.getRequestDispatcher("/jsp/user/login.jsp").forward(request, response);
return false;
}
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
}
}
2. 加载自定义拦截器类
<!-- 4.2 加载自定义拦截器 -->
<!-- 加载自定义的拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- /*/** 拦截多级目录 /items/list.do /product/brand/add.do -->
<mvc:mapping path="/*/**"/>
<bean class="cn.guang.ssm.utils.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>