Como obter um HttpServletRequest à partir de um JspContext?

5 respostas
paulovittor23

Boa Tarde !

Estou tentando (e não conseguindo :roll: ) pegar o objeto request atrevés do objeto JspContext que obtenho chamando o método getJspContext dentro da minha TagLib, alguém tem idéia de como posso fazer isso ?
eu estava precisando acessar a request para acessar métodos de autenticação como o isUserInRole, etc…

desde já agradeço a atenção :wink:

[]s

5 Respostas

lmprates

se você está tentando acessar o request dentro de uma página jsp, existe um objeto implícito chamado “request”, portanto é só acessar o request diretamente, sem nenhum import, por exemplo.

<%= request.getParameter("id"); %>

não se era bem isto a sua dúvida…qualquer coisa tamo ae.

R

não sei se é possível pegar o request em si, mas se vc precisar acessar algum atributo do request, vc pode usar a versão sobrecarregada do método getAttribute:

int escopoRequest = 0; //0 pela constante que representa o escopo request;
jspContext.getAttribute(“nome_atributo”, escopoRequest);

Não tou lembrado nem de que classe é e nem o valor da constante que vc precisa colocar no segundo argumento.

[]'s

Matheus_Tardivo
Veja se isso funciona:
public class TaglibTest extends SimpleTagSupport {

	@Override
	public void doTag() throws JspException, IOException {
		final PageContext pageContext = (PageContext) this.getJspContext();
		final HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
		
		// Executa a lógica necessária
		request.isUserInRole("role");
	}
}
Matheus_Tardivo

Neste caso, o método getAttribute(String name, int scope) da classe JspContext não resolve o problema dele. Mas apenas pra ficar registrado, as constantes pertencem a classe PageContext (exemplo PAGE_SCOPE, REQUEST_SCOPE, etc).

paulovittor23
Matheus Tardivo:
Veja se isso funciona:
public class TaglibTest extends SimpleTagSupport {

	@Override
	public void doTag() throws JspException, IOException {
		final PageContext pageContext = (PageContext) this.getJspContext();
		final HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
		
		// Executa a lógica necessária
		request.isUserInRole("role");
	}
}

Obrigada Matheus, cheguei ao mesmo código que vc, ainda não testei mas pelo que andei pesquisando na net deve ser algo deste tipo mesmo !

Criado 17 de julho de 2007
Ultima resposta 17 de jul. de 2007
Respostas 5
Participantes 4