Galera,
Fiquei alguns anos sem programar, e agora esbarrei numa coisa simples que não sei mais fazer.
Tenho uma página jsp com um form cuja action chama um servlet. Uma vez dentro desse servlet, como faço para descobrir qual página o chamou?
Obrigado.
Quem chamou o servlet?
4 Respostas
Oi Minerim, seja bem vindo novamente ao mundo da programação.
Bem, não tem como você saber especificamente qual JSP chamou o Servlet, mas você pode criar um meio de burlar isto.
Exemplo:
JSP - Nome: teste.jsp
<html>
<body>
<form action="teste.action">
<input type="submit">
</form>
</body>
</html>
Servlet
//Código do servlet
request.getRequestURI();
O método getRequestURI irá retornar:
seuProjeto/teste.action
Com isso você especifica que seu JSP se chamará teste.jsp, retirando o .action.
Obrigado Rafael mas, depois de pesquisar bastante no Google, encontrei uma solução que parece ser perfeita:
Basta, no servlet, recuperar request.getHeader(“REFERER”). Isso me traz a URL completa da página. Até acredito que a resposta deve ser um pouco diferente em função de qual web server está sendo usado. Com o tomcat, está perfeito pra mim.
Obrigado.
Deve ter mais propriedades como essa para obter esse tipo de informação na especificação servet.
Para obter o navegador, sistema operacioal é só utilizar a String “User-Agent” no getHeader("");
Bom eu faço isso e funciona que é uma beleza:
String urlUsuario = request.getRequestURI();
urlUsuario = urlUsuario.substring(urlUsuario.lastIndexOf("/") + 1,
urlUsuario.lastIndexOf(getInitParameter("url-pattern"))+ getInitParameter("url-pattern").length());