Tenho um cliente que possui uma série de classes ADO acessando
uma base de dados PostgreSQL.
Essas classes são referenciadas por umas 30 páginas JSP, que montam o
layout de aplicação e geram os formulários de cadastro e busca.
A minha dúvida é… compensa migrar os JSPs para Servlet ?
[quote=“boaglio”]Tenho um cliente que possui uma série de classes ADO acessando
uma base de dados PostgreSQL.
Essas classes são referenciadas por umas 30 páginas JSP, que montam o
layout de aplicação e geram os formulários de cadastro e busca.
A minha dúvida é… compensa migrar os JSPs para Servlet ?
Qual o grande benefício que o meu cliente teria ?[/quote]
Depende de como está implementado, você coloca o código Java direto no JSP (scriptlets) ? Se sim isso é uma implementação que a Sun não recomenda, o ideal é você utilizar Servlets como controladores que acessam o seu DAO e despacham o resultado do DAO para a JSP, e a JSP utiliza JSTL (ou dependendo JavaBeans) para renderizar o resultado vindo da Servlet.
Se é assim que está implementado compensa (e muito ) fazer essa migração, pois você ganha em clareza a manutenção do código.
como o douglas disse, separar as coisas fica muito mais claro pra fazer manutenção e principalmente reutilizar. pois imagina toda sua regra em JSP (que consequentemente fica misturado com HTML, JavaScript) e vc precisa pegar esse código e vai reutilizar ele em outro projeto, como voce faz??? é um saco abrir o arquivo web, ir copiando e colando o JSP, isso me lembra altas épocas de PHP.
Agora se vc fizer no servlet as suas regras de negócios (que é a parte complicada) vc deixa para o JSP apenas apresentar essas informações no HTML e caso vc precise reaproveitar o código vc tem a servlet “limpinha” pra voce poder usar…
EJB só quando você precisar de algo super escalável, para um monte de acesso simultâneo, que precise ficar controlando transações para garantir a integridade dos dados.
Se não for algo suficientemente grande, dificilmente valerá a pena, pois há um certo overhead na performance para atingir tudo isso. Porém, se cair no caso explicado, aí sim talvez haja uma melhoria de performance.