SpringMvcは簡単なログインブロックを実現


1.ブロッキングクラスSpring MVCのブロッキングは、通常、2つの方法で定義される.HandlerInterceptorインタフェースを実装するか、HandlerInterceptorインタフェースの実装クラス(HandlerInterceptorAdapterなど)を継承することによって定義されます.     2.WebRequestInterceptorインタフェースを実装するか、WebRequestInterceptorインタフェースの実装クラスを継承することで定義します.
public class LoginInterceptor implements HandlerInterceptor {

	/**
	 * preHandle()   :             ,              。      true ,        ;
	 *       false ,          (                      )。
	 */
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		
		// Session   User  
		Object user = request.getSession().getAttribute("user");

		//  user    ,     ,       
		if(user==null){
			response.sendRedirect("/jsp/login.jsp");
			return false;			
		}
		//  ,    
		return true;
	}

	/**
	 * postHandle()  :              ,         。                          。
	 */
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// TODO Auto-generated method stub
		
	}
	

	/**
	 * afterCompletion()  :           ,           。               、         。
	 */
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		// TODO Auto-generated method stub
		
	}
}

2.SpringMvc.xmlで定義したブロッキングを構成する

	 

	
	
	
	
	
	
	
	

	
	
		
			
			
			
			
			
			
		
	

3.controllerレイヤーコード
@Controller
@RequestMapping("user")
public class UserController {
	
	@Autowired
    private UserService userService;
	
	@RequestMapping(value = "login",method = RequestMethod.POST)
	public ModelAndView queryUser(User user,HttpSession session){
		
		//User        ,     
		User use = this.userService.queryUser(user);
		
		//       ,     ,        User    Session 
		if(use != null){
		
			session.setAttribute("user", use);
			
			//  Session    ,    SpringMvc        
			session.setMaxInactiveInterval(10);
			return new ModelAndView("index");
			
		}else {
			session.setAttribute("error", "        ");
			return new ModelAndView("login");
		}
	}
}

 
SpringMvcブロッカーはこれらを知っていて、コードも厳密ではありません.これからもっと努力します.