É assim, pelo que tenho lido em alguns manuais e mesmo em websites as JSPs devem ser usadas quando é usado mto HTML no código, visto q dá para misturar Java com HTML, esta seria a melhor solução, certo?
As servlets por outro lado devem ser usadas quando há muito processamento de dados e pouco envio de HTML para o output, certo?
A minha questão é: Visto que as JSP depois de serem a primeira vez acedidas se transfomam em servlets, não deveria haver diferenças na sua velocidade? visto que acabam por ser ambos servlets, correcto?
Logo é indeferente usar JSP ou Servlets, a velocidade de processamento vai ser igual, a unica diferenca que pode existir é para o programador, visto que é mais facil em JSP trabalhar com HTML do que tar a fazer outputs nos servlets.
É claro que o ideal é colocar a parte de processamento nos servlets e a de formatação de saída dos dados em JSP, mas a minha questão aqui é em termos de velocidade, e se acabam os dois em servlets, a velocidade é igual?
Os JSP rodam como servlets, a diferença principal é que JSP foi feito para ser misturar o código HTML, Java e linguagens de scripting que pode facilitar o desenvolvimento então você pode considerar JSP como uma tecnologia para competir com ASP e PHP lembrando que a performance dos JSP são melhores que as de PHP e ASP pois são servlets o servidor possui apenas uma instância dele para servir todos já PHP é interpretado cada é chamado.
Não seria ruim se não pudessemos massacrar o ASP e o PHP? Ou seja, seria apenas um ponto fraco na tecnologia Java tornando o desenvolvimento de simples coisas difícil.
Não há diferenca na velocidade, a não ser que uma aplicação tenha mais recursos que a outra.
O uso de muito html não implicita no uso de JSP… e o uso de Servelets nao implica em muito processamento. Basicamente são tecnologias mais recentes no mercado.
Vejamos o uso de Servlets implica lógico em mais performace pois o processamento fica no lado do servidor. Para entender isso vejamos como funciona Applets, um applet para funcionar o navegador traz os arquivos para a maquina do cliente local, ja nos servlets isso acontece no servidor e não no cliente.
Agora JSP não é servlets…
Mas o uso das duas facilita e aumenta a Performace
JSP sao transformados em servlets na primeira vez em que sao acessados. Isso eh importante ressaltar, pois apos a compilacao, eles ficam em memoria, ao inves de serem recompilados toda vez. E por isso que eh rapido. Eles so serao recompilados quando alguma modificacao for feita.
Tanto fazer codigo Java ( criar istas, lacos de loop, criacao de objetos ) diretamente no JSP quanto ficar colocando o codigo HTML estaticamente dentro do Servlet sao mais praticas de programacao. ( MVC eh o Pattern que sugere uma solucao para estes casos ).
A minha questão era só mesmo acerca da velocidade dos JSPs em comparação com os Servlets porque uma vez alguem disse neste forum (nao me lembro quem nem onde) que não aconselhava fazer ligações a bases de dados através do JSP porque se tornava lento, só que mais tarde vim a descubrir que os JSP eram transformados em servlets quando são acedidos pela primeira vez, daí surgiu a minha duvida mas já estou esclarecido. A velocidade de performance é igual nos dois.
Obrigado pessoal
Acerca do modelo MVC, também tenho curiosidade em ler mais sobre isso, visto que a ideia de este modelo parece-me ser deixar a parte de formatação de saída de dados para as JSPs e o resto do processamento inteiro para as servlets. Parece-me ser o ideal.
Acho que tudo é uma questão de necessidade, vc vai saber quando melhor aplicar um ou outro dependendo do que eles tem a oferecer. Quando só existia Servlet, era um problema misturar html na regra de negócio, por isso foram criados projetos como o Tea Servlet e WebMacro, a SUN cria o jsp para oferecer mais facilidade nas apresentações porém ao contrário dos Servlets agora era a regra de negócio que estava se misturando com a apresentação. Mais isso é uma prática ruim e não um problema do jsp, usando MVC vc pode muito bem escolher que tipo de visão vc deseja, e com as bibliotecas de tags (pessoalmente uso muito taglib) é possível decretar o fim dos scriptlets. Uso Struts (que me oferece um servlet de controle) e nas visões uso jsp com as tags do struts de tamplate, html etc. Porém uso muito servlet quando não perciso de interface web exemplo um programa que funciona em sms, onde o cliente é um celular sms e colocamos um Servlet para responder as soliciatações, um controlador etc.
Vocês não podem esquecer que muitas vezes o design e as páginas html são desenvolvidas por pessoas que não sabem nada de Java. Nada mais conveninete do que JSP aqui.