拦截器验证登录,实现未登录时一部分操作或全部操作全部跳转到登录界面~
controller层:
@RequestMapping(value="/login")
public String login(String username, String password, HttpServletRequest request, HttpSession session){
Haha haha = Hahaservice.selectByUAP(username,password);
if(haha != null){
session.setAttribute("haha", haha);
return "index";
}else{
return "login";
}
}
interceptor拦截器:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//controller传的什么就用什么接
Object haha = request.getSession().getAttribute("haha");
if (haha == null) {
System.out.println("尚未登录,跳转到登录页面");
//重定向方法,可以自行定义,我这里是返回log方法登录界面
response.sendRedirect("/log");
return false;
}
return true;
}
springmvc.xml:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/myproject/detail"/>
<mvc:mapping path="/myproject/query"/>
<bean class="com.accp.interceptor.LoginInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
此demo可实现没有session的情况下,执行detail和query方法时跳转到登录界面~