Compilação de .jsp como funciona?

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

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

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

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’

[quote=luistiagos]Os jsps são interpretados pelo Conteiner que transforma em um Servlet que depois e compilado…
no final tudo vira Servlet[/quote]

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.

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

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.

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…

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.

[quote=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.[/quote]

Tá são compiladas mas por quem?

Pelo container utilizando se da sua jvm.

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?

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

Até!

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

Até![/quote]

Hum isso então explica.