SpringMvcは簡単なログインブロックを実現
3136 ワード
1.ブロッキングクラスSpring MVCのブロッキングは、通常、2つの方法で定義される.HandlerInterceptorインタフェースを実装するか、HandlerInterceptorインタフェースの実装クラス(HandlerInterceptorAdapterなど)を継承することによって定義されます. 2.WebRequestInterceptorインタフェースを実装するか、WebRequestInterceptorインタフェースの実装クラスを継承することで定義します.
2.SpringMvc.xmlで定義したブロッキングを構成する
3.controllerレイヤーコード
SpringMvcブロッカーはこれらを知っていて、コードも厳密ではありません.これからもっと努力します.
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ブロッカーはこれらを知っていて、コードも厳密ではありません.これからもっと努力します.