- 需要创建一个intercept类,
package com.whx.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class LoginHandlerIntercepter implements HandlerInterceptor {
@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 {
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {
String requestURI = request.getRequestURI();
//如果获取到的这个url路径是在查询后台数据的方法的时候,进行拦截
if(requestURI.indexOf("toSoleListPage.do")>0){
HttpSession session = request.getSession();
String servicename = (String) session.getAttribute("servicename");
if(servicename!=null){
//登陆成功的用户
return true;
}else{
//没有登陆,转向登陆界面
request.getRequestDispatcher("/index.jsp").forward(request,arg1);
return false;
}
}else{
//如果不是以上两种方法的话,都进行放过
return true;
}
}
}
2.配置spring-mvc.xml文件,里面添加如下代码,class路径指向的是自己写的那个intercept类的全路径
<!-- 配置拦截器 -->
<mvc:interceptors>
<!-- 配置登陆拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.xxx.interceptor.LoginHandlerIntercepter"></bean>
</mvc:interceptor>
</mvc:interceptors>
4.完成以上的操作,拦截器就可以正常的使用了.使用的方法是复制地址栏查询后台方法的路径,然后在另一个浏览器打开,如果被成功的拦截到了登录页面,及说明拦截器的配置成功了!