Problemas com Filter em jsp

4 respostas
marcosbrandao

Olá pessoal.

Estou com um problema na implementação de um Filter.
Uso o myfaces, e o que acontece é o seguinte:

Metodo "doFilter" da classe que estende FIlter
public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		
	String servletPath = ((HttpServletRequest)request).getServletPath();
	if (isInvalidPath(servletPath)){//verifica se a pagina pode ser acessada
			
		((HttpServletResponse)response).sendRedirect("htdocs/errorPage.faces");			
		return;
	}
		
	chain.doFilter(request, response);
}
o atributo servletPath no primeiro acesso vem certo. Mas quando cai na restrição e da um sendRedirect, na proxima filtragem que vai acontecer(na pagina errorPage) o tributo servletPage vem "htdocs/htdocs/errorPage.faces". Obviamente não vai encontrar esta pagina por que não existe. A que existe é "htdocs/errorPage.faces". Simplesmente duplicou "htdocs/".

já tentei passar para o sendRedirect as seguintes String:
"/htdocs/errorPage.faces"
"/htdocs/errorPage.jsp"
"errorPage.faces"
"errorPage.jsp"
"/errorPage.faces"
"/errorPage.jsp"

Mas nenhum da certo.

Estou errando em alguma coisa? Alguem tem ideia do que pode ser?

4 Respostas

tecdanilo

tente usar:

RequestDispatcher rd = request.getRequestDispatcher("errorPage.faces");
rd.forward(request, response);

flws. :wink:

marcosbrandao

Com request dispatcher acontece a mesma coisa

felipeguerra

Usa esse:

request.getContextPath()
marcosbrandao

Usa esse:

request.getContextPath()

O context path não serve, pois eu preciso pegar a pagina que fez a requisição, e contextPath somente me traz o caminho do contexto da pagina, e não me traz a pagina da requisição

Criado 24 de janeiro de 2008
Ultima resposta 24 de jan. de 2008
Respostas 4
Participantes 3