Compilação de .jsp como funciona?

13 respostas
vitu

Precisei alterar o tipo de um atributo de int para double, e seus respectivos get e set.
Possuía chamadas ao get em um .jsp, porem o get ainda era interpretado como tendo um retorno int,
mesmo eu tendo alterado. O correto seria o eclipse ter recompilado todos as classes onde existem chamadas a esse método. Nunca entendi direito como funcionam os .jsp eles são interpretados pela JVM ou pelo Container? ou são compilados? se sim quando em tempo de execução?

Se são compilados o eclipse deveria compilar os mesmos caso haja uma alteração correto? Se sim isso seria uma bug do propio eclipse?

Nota: Minha versão do Eclipse e a 3.3

13 Respostas

luistiagos

Os jsps são interpretados pelo Conteiner que transforma em um Servlet que depois e compilado…
no final tudo vira Servlet

luistiagos

e o Servlet processa, consultas no banco e etc… e apartir dai gera o html que é devolvido ao cliente…

CintiaDR

Hehheehe Que boa pergunta! Também fiquei curiosa agora!

Busquei aqui no GUJ, achei isto aqui:
http://www.guj.com.br/posts/list/19751.java#103884

Então (não sei qual o seu Container, mas eu uso TomCat) o container compila sempre que ‘precisar’. Até já notei que a primeira vez que eu vou acessar uma página pela primeira vez depois de uma modificação grande, ela demora mais. Huuuum…

Os compilados eu encontro aqui numa pasta chamada ‘work’

vitu

luistiagos:
Os jsps são interpretados pelo Conteiner que transforma em um Servlet que depois e compilado…
no final tudo vira Servlet

Concerteza isso não é. servlet é apenas um front controller e/ou view controller. E que o container e como um cgi. E ele que me responde.

Agora a duvida que tenho e quanto os .jsp.

CintiaDR

É, eu acho que o Container além de servir as páginas, as compila quando necessário.

D

E sim as jsps são compiladas viram servlets ,tanto que a primeira vez que vc chama uma jsp demora um pouco
pra ela aparecer devido a transformação ser realizada .E uma vez que ela virou servlet este permanece no container , o tomcat tem tem sistema se eu que faz justamente isso verifica a jsp se hovuver alguma alteração ela realiza a compilação denovo,no netbeans dá a opção de vc ver o servlet correspodente a sua jsp.

luistiagos

Não estou falando em padões de projeto… estou falando da arquitetura de Servlets e Jsps… independente de seu Servlet ser um FrontControler ou não… independente de frameworks para web como struts, Vraptor, Mentawei, Jsf… etc… a arquitetura em mais baixo nivel é isto… o Conteier de Servlets e Jsps (Exemplo Tomcat) transforma as jsp em uma classe Servlet processa os dados recebidos e gera como resposta o html puro para o cliente… é assim que funciona na mais baixa arquitetura de servlets e jsp… sem falar de patterns ou frameworks…

vitu

Então um .jsp herda da classe Servlet ou HttpServlet?
Se eu uso um Servlet para prover conteúdo, concordo que ele perde seu contexto.
Eu particularmente vejo isso como uma má pratica. Caso eu encare que .jsp são servlets.

vitu

Daniel.F:
E sim as jsps são compiladas viram servlets ,tanto que a primeira vez que vc chama uma jsp demora um pouco
pra ela aparecer devido a transformação ser realizada .E uma vez que ela virou servlet este permanece no container , o tomcat tem tem sistema se eu que faz justamente isso verifica a jsp se hovuver alguma alteração ela realiza a compilação denovo,no netbeans dá a opção de vc ver o servlet correspodente a sua jsp.

Tá são compiladas mas por quem?

D

Pelo container utilizando se da sua jvm.

vitu

Então a principio um .jsp não e interpretado pelo container, então significa que e gerado um binario do .jsp?. Se sim onde o mesmo fica no Tomcat?

maquiavelbona

Todo .jsp “vira” um .class quando exigido. Em geral, fica em : TOMCAT_HOME/work/Catalina/aplicacao_exemplo/br/com/teste/ .

Até!

vitu

maquiavelbona:
Todo .jsp “vira” um .class quando exigido. Em geral, fica em : TOMCAT_HOME/work/Catalina/aplicacao_exemplo/br/com/teste/ .

Até!

Hum isso então explica.

Criado 10 de outubro de 2007
Ultima resposta 11 de out. de 2007
Respostas 13
Participantes 5