filter简易实现登录功能拦截
LoginFliter
public class LoginFliter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession();
User user = (User)session.getAttribute("user");
String uri = request.getRequestURI();
System.out.println(uri.indexOf("findAll.do"));
System.out.println(uri.indexOf("login.do"));
if(user==null && uri.indexOf("login.do")==-1){
response.sendRedirect(request.getContextPath()+"/");
}else {
filterChain.doFilter(request,response);
}
}
@Override
public void destroy() {
}
}
controller
@RequestMapping("/login.do")
public ModelAndView login(User user, HttpSession session){
boolean flag = userService.login(user.getName(),user.getPassword());
ModelAndView modelAndView = new ModelAndView();
if(flag){
session.setAttribute("user",user);
modelAndView.setViewName("../ok");
}else {
modelAndView.setViewName("../failure");
}
return modelAndView;
}