Olá a todos,
Gostaria de desenvolver um filtro, todavia o jsf funciona por default em post, logo sempre que tento pegar a url que o usuario está indo, somente consigo a página que o usuario estava.
Existe algum modo de conseguir tomar a url da página que usuario esta indo???
Sei que atraves do método get é possível, mas gostaria de saber se há como construir um filtro e tomar a url que o usuario esta indo.
Sim isso realmente vai funcionar, pois esta usando redirect a url da página realmente vai ser a do destino e no filtro conseguirei recuperá-la.
O problema desta abordagemé que se eu tiver um bean com o escopo @Request eu irei perder ele, logo teria que guardar ele em flash e fazer outros tratamentos.
Logo eu gostaria de saber se há algum jeito de conseguir a url de para onde o usuario esta indo seja em um filtro ou em um phase listener? Alguem sabe? Ou se é possivel fazê-lo?
Sim isso realmente vai funcionar, pois esta usando redirect a url da página realmente vai ser a do destino e no filtro conseguirei recuperá-la.
O problema desta abordagemé que se eu tiver um bean com o escopo @Request eu irei perder ele, logo teria que guardar ele em flash e fazer outros tratamentos.
Logo eu gostaria de saber se há algum jeito de conseguir a url de para onde o usuario esta indo seja em um filtro ou em um phase listener? Alguem sabe? Ou se é possivel fazê-lo?
[]s
[/quote]
Acabei de tentar recuperar a url que o usuário está indo com um filtro utilizei um Bean com o escopo @Request e deu certo
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain chain)
{
// Tudo acima acontece antes de carregar a página
chain.doFilter(servletRequest, servletResponse);
//Tudo abaixo acontece depois de carregar a página
}
Sim como eu disse poderia fazer um filtro desta maneira ou fazer um Phase Listener e tomar a url, mas como disse jsf trabalha por default por metodo Post, logo eu nao teria como saber qual página que o usuario iria, pois a url nao muda. Alguem sabe se existe algum método ou alguma maneira para saber onde o usuario esta indo?
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain chain)
{
// Tudo acima acontece antes de carregar a página
chain.doFilter(servletRequest, servletResponse);
//Tudo abaixo acontece depois de carregar a página
HttpServletRequest res = (HttpServletRequest) request;
HttpServletResponse respo = (HttpServletResponse) response;
String url = res.getServletPath(); // URL obtida é da pagina que usuario estava, como conseguir a url que o usuario esta indo????
}
Um Simples Bean para redirecionar para outra pagina
@ManagedBean(name="Login")
@SessionScoped
public class Login {
public String action(){
return "/publico/contato.jsf";
}
}
Ao apertar no botao de login, será recuperado a url da página de login: “/publico/login.jsf”, quando na verdade o usuario estará na pagina “/publico/contato.jsf”.
Há alguma maneira de tomar esta url. Caso seja colocado redirect na url, é claro que aparecerá no filtro a url que o usuario foi, mas sem redirect, há como conseguir a url que o usuario foi?
é claro que apertar em um link, no filtro aparecerá a url que o usuario foi, mas em um form o metodo sendo post e sem redirect há como saber a url que o usuario foi no filtro?
[]s
Sim, isso mesmo, eu quero saber onde o usuario está indo, imagine se quisesse impedir de acessar alguma página, isto nao seria possivel desta maneira.
[/quote]
Então cara é isso mesmo. Eu fiz um exemplo desse, e aconteceu exatamente o que você deseja foi impresso “/publico/contato.jsf” no filtro.
Olha só eu estou viajando mas quando chegar em casa vou postar um exemplo pra você vê se é isso, ok?