Принцип: В дополнение к целевой странице, другие страницы виртуальный путь с единым символом идентичности. Такие , как использование / Login
. Фильтр будет перехватывать все виртуальный путь начинается с страницами / пользователей. Убедитесь в том, что запрос на фильтр страницы , соответствующей сессию , на которой не должно быть приземлились после успешного содержания. Если нет, то перенаправление на целевую страницу. Если это так, доказать уже приземлились, реализация doFilter метода FilterChain.
фильтр代码:
открытый класс MyFilter реализует фильтр {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//先转为HttpServletRequest,HttpServletResponse
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpServletResponse response=(HttpServletResponse)servletResponse;
//如果前面已经登陆过,在session里赋值了,该页面可以执行下一个servlet,如果没有先重定向到登陆页面!
if (request.getSession().getAttribute("loginUser")==null){
response.sendRedirect(request.getContextPath()+"/login.jsp");
}else {
filterChain.doFilter(request,response);
}
}
@Override
public void destroy() {
}
}
Поместите код в содержание сеанса успеха посадки:
Наконец, не забудьте web.xml файл конфигурации для фильтра. Или непосредственно с аннотациями отмечены @WebFilter ( «/ пользователем»)
Ну, просто использовать проверку фильтра завершена.