我的过滤器就像这样:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
Usuario user = (Usuario) session.getAttribute("usuarioLogado");
Acesso ac = new Acesso();
String uri = req.getRequestURI();
//pegar Browser do usuario
pegarBrowser(req);
//verifica se requisição esta dentro do diretorio /telas, se não libera o fluxo
if (!uri.contains("telas")) {
chain.doFilter(request, response);
} else {
//verifica se usuario esta logado, e se o diretorio acessado é /telas
if (session.getAttribute("usuarioLogado") != null && uri.contains("telas")) {
Long idAcesso = null;
try {
idAcesso = user.getAcesso().getId();
} catch (Exception e) {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("/erro/expirado.xhtml");
}
if (controle == false) {
}
try {
dao = new ViewDAO();
acDAO = new AcessoDAO();
role = dao.buscarObjeto("end", uri);
dao = null;
ac = acDAO.buscarObjeto("id", idAcesso);
acDAO = null;
} catch (Exception ex) {
Logger.getLogger(filtroAcessoJSF.class.getName()).log(Level.SEVERE, null, ex);
}
try {
String regraURI = role.getGrupo();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String dataHojestring = sdf.format(new Date());
java.sql.Date dataHoje;
dataHoje = new java.sql.Date(sdf.parse(dataHojestring).getTime());
Date limite = user.getDataLimiteAcesso();
Boolean teste = dataHoje.before(limite);
if (dataHoje.before(limite)) {
if (regraURI.contains(ac.getNome())) {
chain.doFilter(request, response);
} else {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("/erro/negado.xhtml");
}
} else {
if (!uri.equals("/erro/negadoData.xhtml")) {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("/erro/negadoData.xhtml");
}
}
} catch (Exception ex) {
Logger.getLogger(filtroAcessoJSF.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
if (uri.contains("xml.xhtml")) {
chain.doFilter(request, response);
}
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("/index.xhtml");
行:res.sendRedirect(" / index.xhtml");
当ajax调用是,(我认为,不确定)它不重定向任何人都可以帮忙吗?谢谢