Como pegar o nome do JSP

4 respostas
carbaldi

Oi galera,

Gostaria de saber se tem como pegar o nome do JSP que está sendo executado.

Vou tentar exemplificar.
Tenho uma classe Base que todos os meus JSPs extendem. Gostaria de pegar de dentro da classe Base o nome do JSP que está rodando.

Abraços

4 Respostas

Bani

Não entendi como você fez para estender uma classe no JSP. Pode explicar?
De forma geral, se você quer pegar o nome da classe você utiliza um this.getClass().getName(). Isso vai te retornar o nome do servlet gerado, mas aí já dá para ter uma idéia de qual é o JSP.

urubatan

não é muito aconselhavel fazer um JSP extender uma classe, pois desa maneira, você normalmente perde quase todas as otimizações feita fornecedor do container, mas acho que a maneira mais facil de pegar o que ta executando agora é o seguinte (uso isto num servlet :slight_smile:
request.getRequestURI();

carbaldi

Oi galera,

Primeiro vou responder uma pergunta do Bani. Como extender o JSP.
Para extender o JSP vc precisa criar uma classe e implemtar a interface javax.servlet.jsp.HttpJspPage. Depois, no JSP, vc tem que colocar sua classe na tag <%@ page extends="<classe>"%>. É bem simples.
Sobre o comentario de urubatan, acredito que ele esteja certo (embora nunca tenha testado). Mas as vantagens são tantas que acho que vale a perda da otimização. Cada dia tem sido mais facil dar manutenção no meu codigo tendo uma classe minha extendendo os JSPs e outra o Servlets.
Vou fazer o teste das dicas de vcs. Depois informo o resultado. Mas valeu mesmo, pelos comentarios, ajudas e visões. Esse forum é 10!!!

carbaldi

urubatan e bani,

Quero agradecer a ajuda de vcs. Precisei das duas soluções para fazer o que eu queria.
A solução do urubatan me dá o nome da JSP perfeitamente. E a do bani dá o nome do servlet, como ele comentou.
Porem, quando tenho uma include dentro do meu jsp com a solução do urubatan imprime o nome do jsp com a mesma quantidade de includes +1. E não dá para saber qual include rodou. E a solução do bani já permite ver o nome da include. Com as duas consegui o que queria…

Valeu mesmo!!!

Criado 26 de maio de 2003
Ultima resposta 27 de mai. de 2003
Respostas 4
Participantes 3