Seria errado criar uma aplicação em JSP sem a utilização de Servlets? Pois pelo que sei uma página JSP após passar por um processo de codificação e compilação se torna um Servlet, tanto é verdade que dá acesso à objetos implícitos como out,request,response…
Essa dúvida surgiu quando questionando meu professor sobre isso ele me disse que eu deveria usar servlets somente em último caso, o que fosse possível fazer com JSP e javaBeans deveria ser feito sem a utilização de Servlets.
Grato
Volnei Granado Munhoz
Achei meio estranha essa resposta do seu professor.
Afinal, orientação a objetos diz que cada classe deve ter uma funcionalidade bem clara e específica.
Mesmo supondo então que você vai fazer vários JSPs, não faz sentido você obrigar seu application server a ficar traduzindo o JSP para Servlet, que vai inclusive encher de código "desnecessário", ao invés de você mesmo criar seu servlet.
E agora os dois motivos principais de você não ficar utilizando JSP para tudo:
1) Os próprios Code Conventions de JSP falam para você evitar ficar colocando código neles. Veja no link http://developer.java.sun.com/developer/technicalArticles/javaserverpages/code_convention/
2) Um dos design patterns mais importantes e amplamente utilizados do Java é o MVC. Ele diz para você separar a camada de visualização da lógica de negócio. Desta forma, o JSP ficaria apenas com a parte visual, e servlets ficariam com toda a parte de lógica, onde é necessário mais código.
Para fazer uma aplicação padrão de carrinho de compras utilizando JSP precisaria:
Mostrar uma tela de consulta;
Conectar-se ao BD;
Executar a consulta dos produtos;
Armazenar o resultado da consulta;
Mostrar os resultados da consulta;
Armazenar os itens selecionados;
Qual componente seria o mais adequado para cada tarefa? :-[
Grato
Volnei Granado Munhoz
[ Esta mensagem foi editada por: Volnei em 02-03-2003 02:38 ]
Mostrar uma tela de consulta -> JSP
Conectar-se ao BD -> Servlet
Executar a consulta dos produtos -> Servlet
Armazenar o resultado da consulta -> Bean
Mostrar os resultados da consulta -> JSP
Armazenar os itens selecionados -> bom, o que você está chamando de armazenar? Se for no banco, servlet, caso contrário, bean
Ou seja, qualquer tela, feira em JSP. Qualquer "código", feito em servlet, e qualquer informação que tenha que ser passada de um lugar para o outro, bean
E a validação da entrada de dados (tipo validação de CPF), seria nos Servlets o JavaBeans?
Bani desculpe-me por tanta pergunta que para você pode parecer "básico" na verdade até eu sei que essas não são das mais complicadas mais é que estou começando com JSP e queria ter uma boa base. :-] Muito Obrigado!
Volnei Granado Munhoz
Tudo que é "processamento" ficaria em classes/servlets.
Pra você ter uma idéia de como funciona a arquitetura MVC, é mais ou menos assim:
Você mostra a página pro usuário em um arquivo JSP (camada view). Aí vamos supor que a página tem um formulário ou algo assim, para ter interação com o usuário. Aí no formulário você coloca na ACTION o endereço do servlet controller e pode também passar alguns parâmetros pela URL tipo informando de qual formulário se trata. Aí esse servlet controller vai pega essas informações e repassar para o local apropriado do model, que pode ser uma classe Java comum ou um servlet. Aí essa classe vai fazer tudo que tem que fazer (validação, persistência de dados, etc) e passar uma resposta de volta para o controller, que por sua vez vai chamar o próximo JSP que será mostrado ao usuário.
Você poderia me indicar algum livro em português que cobre esse assunto que discutimos acima ?
Obrigado mais uma vez
Volnei Granado Munhoz
Infelizmente o único livro em português que eu li a respeito eu NÃO indico.
Pior livro técnico que eu já li.
Aliás, até já indico para NÃO COMPRAR: é o Tutorial do J2EE.