标签:als set rate 登录 ide redirect intercept cep handler
登陆拦截:
使用拦截器完成登录控制,具体为拦截用户的请求,判断用户是否已经登录,如果用户没有登录,则跳到login界面,如果用户已登录,则放行。
1.首先创建登录拦截器类LoginInterceptor 实现HandlerInterceptor接口,实现其三个方法,分别是preHandle,postHandle,afterCompletion方法,其中preHandle方法改为
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object object) throws Exception {
// TODO Auto-generated method stub
System.out.println("preHandle");
String uri = request.getRequestURI();
if(!(uri.contains("login")||uri.contains("Login"))){
if(request.getSession().getAttribute("user")!=null){
return true;
}else{
response.sendRedirect(request.getContextPath()+"/toLogin");
}
}else{
return true;
}
return false;
}
2.在springMVC中配置拦截器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/login"/>
<mvc:mapping path="/test"/>
<bean class="cn.com.mvc.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
3.编写LoginController方法
@RequestMapping("login")
public String login(Model model, User user,HttpServletRequest request){
service = new LoginService();
if(service.Login(user)){
request.getSession().setAttribute("user", user);
}else{
model.addAttribute("loginError", "账号或密码错误");
return "user/login";
}
return "redirect:/test";
}
因为拦截的是login请求,所以加了一个"/test"请求直接跳转到主页的请求,在login请求里加了一个重定向
标签:als set rate 登录 ide redirect intercept cep handler
原文地址:https://www.cnblogs.com/lihaitao33/p/8955256.html