Quando eu nao sabia o que era Velocity e tambem quando eu nao havia lido uns comentarios sobre como o GUJ foi feito, pensava que as aplicacoes web com Java usavam jsp para fazer a apresentacao e o codigo grosso ficava nos .class, e aquele papo todo. Na minha mente poluida achava que Servlet era pra maluco que gostava de fazer a manipulacao pesada das requisicoes.
Ok, admito que tinha uma visao BEM limitada do poder da tecnologia e do seu uso, mas falta de experiencia resulta nisso. Entao com um minimo de esforco aprendi o que realmente era o Velocity e todo o esquema de templates. Tambem vi que muitos odeiam JSP, e que Servlet nao eh tao sem-utilidade quanto eu pensava.
Ta, mas aqui fica uma duvida ( na verdade sao varias, mas vou dizer que eh apenas uma para nao assustar ): PORQUE eh melhor usar o esquema de templates do Velocity ( ou de qualquer outro template-engine ) e nao usar JSP? veja bem, sei que muitos vao dizer “pq voce separa o codigo java do html etc etc” ou algo assim… mas com jsp posso usar as tablibs para fazer foreachs’s & cia. Velocidade de processamento: ha uma diferenca consideravel? manutencao? gostaria de saber isso, de ter uma ideia melhor desse esquema todo. Ai sim, depois disso, vou poder ler a documentacao com um foco mais direcionado
Bom. Acho meio difícil falar pq é melhor, sendo que nunca usei jsp, mas o Velocity não apenas separa o código java do html. Ele tem um tipo de mini linguagem que permite vc fazer um foreach ou if/else e coisas do gênero, então não será esse o motivo de deixar de usar Velocity. Quanto à velocidade, realmente não posso dizer com precisão, mas arrisco a dizer que se o Velocity fica atrás, não fica muito.
Entao. Quanto a velocidade de processamento, o Velocity perde se voce nao ativar o modo de Cache, porque toda hora ele teria de parsear os templates. Mas eh soh mudar um arquivo properties que ai a coisa fica rapidona. Nao sei quem ganha em velocidade, e para projetos medio porte, isso realmente nao faz a menor diferenca, certo? Ja que ambos sao suficientemente rapidos.
O conceito que tem de ser discutido eh a manutencao. Ambos tem facil manutencao, mas pense o seguinte: se um designer abrir o seu .jsp e abrir um template do Velocity ou Webmacroi, qual ele vai entender muito mais facilmente? O Velocity ganha em legibilidade de LONGE, sem conta que o modelo MVC que ele tras eh o push: isto eh, o servidor empurra o que ele quer mostrar pro template. Um jsp pode fazer uma conexao com um bancod e dados e colocar o que ele quiser na tela. Um template nao. Um template soh pode colocar na tela aquilo que o servlet (ou controller) deu acesso para ele.
Bom, entao um ponto a favor dos templates eh que o cara nao precisa saber jsp, apenas aprender a usar o esquema de tags do template, que com certeza eh muito mais simples. Certo?
Uma ultima coisa ( nao, nao li toda a documentacao ainda ): o esquema de cache funciona como os jsp, ou seja, se o servlet-engine ( ou algo assim ) notar uma alteracao no arquivo, ele vai re-processar, ou tem que explicitamente dizer pra procurar por altracoes?
os templates voce entendeu direitinho. o designer nao precisa saber jsp, muito menos java!
obre jsp, conheco muito pouco. mas eh esse o esquema do jsp sim. acho que alguns servidores voce pode desabilitar isso, aumentando desempenho, ja que ele nao vai ficar checando se algum arquivo mudou
Muitas vezes precisamos de soluções rápidas. Apesar de java não adotar o conceito de velocidade no desenvolvimento e sim aplicações bem estruturadas,seguras, portáveis e etc…
Devemos analisar o que é melhor para o tipo de aplicação que estamos desenvolvendo.
Acho que este é o unico espaço que java deu ao .NET (asp.NET) e por isso ele tem um pouco de destaque além do marketing assassino da microsoft
alguém sabe me dizer como a iniciativa de JESI entra nesta história ? Pelo que entendi é basicamente a mesma coisa, ou não ? o JESI funciona como se fosse um template ?
outro ponto, o velocity implica em maior demanda de processamento ?
Eu quando desenvolvo páginas dinâmicas, eu uso JSP, Javabeans, as vezes taglibs…
Eu queria saber mais informações sobre esse Velocity:
1- É compatível com Tomcat?
2- É complicado de instalar? p.ex: Meu site eh hospedado por um desses hospedeiros, eu tenho que pedir para o pessoal da empresa q hospeda meu site para fazerem algo ou eh eu mesmo que instalo pela web ?
3- Eu posso utilizar o velocity em um projeto em conjunto com paginas jsp e javabeans? ou ele só funciona sozinho?
E acesso a BD com o Velocity? como é feito? JDBC normal ou tem complicações?
É compativel com o Tomcat sim, afinal Velocity eh feito em Java! Voce pega apenas o pacote, nao tem instalcao, basta apenas incluir em sua aplicacao, como qualquer outro pacote.
O Velocity eh um template-engine, isso significa que vc adiciona certos padroes em um arquivo e entao ele vai la e realiza as acoes conforme o comando encontrado.
Ele nao eh usado para acesso a banco de dados essas coisas, eh apenas usado para fazer a apresentacao, o html, para o navegador.
Qual parte do jsp mais especificamente vc se refere? os <jsp:useBean> ?
Se for, o que muda eh a maneira que voce itera pelos objetos, mas mesmo assim, eh pouca diferenca.
Velocity é um template engine,
o hibernate é uma engine de persistencia (nada a ver com o anterior e menos ainda com JSP)
você pode utilizar tanto velocity como JSP para o seu View e utilizar o Hibernate, JDO, CMP ou castor para persistencia (estes persistem Beans, com exceção de CMP que precisa de um EJB )
e utilizar Beans na sua camada de negocio
urubatan, desculpa, acho que me expressei mal, sei a função de cada um, minha maior dúvida era se começasse a utilizar esses recursos, eu poderia deixar de lado o JSP e qual era a influência disto tudo sobre os Javabeans.