自定义拦截器实现简单登录拦截的步骤

1. 首先创建一个类MyInterceptor 实现这个HandlerInterceptor接口:org.springframework.web.servlet.HandlerInterceptor
    重写其三个方法prehandle在进入controller的方法执行之前     posthandle执行的方法执行完成之后   和aftercomplate方法最终向前台页面跳转之前
    
2.然后根据request.getRequestURI()这个方法判断请求的路径是否是跟登录有关的路径,如果是则放过,
    如果不是通过HttpSession session = request.getSession();获得session,通过session获得登录对象,看看是否有登录信息
    如果有登录信息,说明用户登录过,直接放过请求就行了
    如果没有登录信息,直接跳转到登录页面让用户登录

3.写完自己的拦截器之后再springmvc中配置自己的拦截器

    
        
            
            
            
        
    


4.同时需要注意的是前台css和jquery的文件也会拦截,所以还需要配置让spring加载css和jquery的资源,尽量放在拦截器的配置上面
  

    
    
    


5.运行测试。


public class MyInterceptor implements HandlerInterceptor{

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
		
		if(request.getRequestURI().endsWith("login")||request.getRequestURI().endsWith("register")){
			return true;
		}else{
			HttpSession session = request.getSession();
			User user = (User) session.getAttribute("user");
			if(user!=null){
				return true;
			}else{
				response.sendRedirect("/");
				return false;
			}
		}
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception arg3)
			throws Exception {
		// TODO Auto-generated method stub
		
	}

}

 

你可能感兴趣的:(自定义拦截器实现简单登录拦截的步骤)