quinta-feira, 19 de junho de 2008

Evolução da tecnologia Java para WEB

Este post é para iniciar o raciocínio de desenvolvimento para web utilizando a tecnologia JAVA. Assim, as informações aqui citadas é encontrada facilmente e repetitivamente na internet, mas aos poucos irei acrescentando assuntos específicos pertinentes as novas tecnologias, frameworks e afins, conforme o "andar" dos meus estudos. Parto do princípio que o leitor possua conhecimento em programação Java básico, HTTP e Servidor de Aplicação.

J2EE é nome da tecnologia da Sun que permite o desenvolvimento de aplicativos para web. Em seu início ela trabalhava conforme a figura abaixo:



















Explicando a figura: O cliente (Browser) envia uma informação através do protocolo HTTP, assim o Servidor de Aplicação recebe a solicitação e delega para servlet correta, depois a servlet realiza algum processamento (pode "chamar" classes java, encaminha para outra servlet, faz conexão com o banco, e etc) e retorna a resposta para o cliente.
Uma Servlet é uma classe java que estende a javax.servlet.http.HttpServlet que possui métodos para tratamento de requisições HTTP (GET, POST, HEAD, PUT, DELETE, OPTIONS E TRACE).

Nessa estrutura havia um grande problema de que código java e html eram escritos juntos (programadores X web designs), dificultando no construção e manutenção do Regras de Negócio e 'View'.
Vendo estas necessidades a Sun construiu a tecnologia JSP, que veio para aumentar a produtividade e diminuir a dificuldade de Programadores e Web Designs trabalharem juntos.

JSP são páginas que possuem tags específicas do JSP (estas serão explicadas em post futuro) e HTML. Quando compiladas para o Servidor de Aplicação, resultam em Servlets e é por isso que o estudo sobre servlet é importante.

Atualmente o desenvolvimento para web com Java é simplificado pelo uso de Frameworks, que abstraem o uso do JSP+Servlet, resultando em aumento na produtividade, segurança, entre outras questões.

Como foi citado acima, estas informações são o resumo do resumo, pois o meu objetivo é enfatizar tecnologias que estão vigentes no mercado (JSF, Struts 1.x e 2.x, Spring, Hibernate, EL e etc).

Nenhum comentário: