1 / 27

JSP / Servlets Avançado

JSP / Servlets Avançado. Andrio Spich Desenvolvedor Java & .NET Sun Certified Web Component Developer for J2EE 1.4. Conteúdo. Visão geral da Arquitetura Web; API Servlets e Java Server Pages; Acesso a banco de dados com JDBC; TagLibs e Filtros; Aplicação MVC com o Struts;

skah
Télécharger la présentation

JSP / Servlets Avançado

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JSP / Servlets Avançado Andrio SpichDesenvolvedor Java & .NET Sun Certified Web Component Developer for J2EE 1.4

  2. Conteúdo • Visão geral da Arquitetura Web; • API Servlets e Java Server Pages; • Acesso a banco de dados com JDBC; • TagLibs e Filtros; • Aplicação MVC com o Struts; • Performance e Segurança; • Ferramentas de apoio (Ant, JUnit); • Novidades do JSP 2.0

  3. Arquitetura Web

  4. Métodos HTTP

  5. Tecnologias Envolvidas • HTML/DOM: Estrutura e conteúdo da página; • CSS(Cascading Style Sheets): Apresentação do conteúdo, definindo sua aparência; • JavaScript: Controle dinâmico do estado da página, orientado a eventos, baseado em objetos • Browser: Possibilita a interação das tecnologias citadas acima, tem implementações próprias delas e não são 100% compatíveis entre sí;

  6. JavaScript • Não tem relação alguma com Java; • Baseado no Padrão ECMA, onde a partir deste, tem implementações diferentes para cada browser; • DHTML/DOM: mapeia cada tag descrita no HTML como um objeto, cujas propriedades e eventos definidos podem ser manipulados; • É um Script que roda no cliente, portanto é um código aberto para cópia, não há pré-compilação, nem como assegurar sua integridade;

  7. Conteúdo Dinâmico – CGI • Programa que roda no servidor atendendo e manipulando requisições oriundas de HTTP, geralmente um browser; • Pode ser implementado em qualquer linguagem de programação, dependendo apenas do suporte do servidor Web; • Gera uma resposta com conteúdo web válido após o processamento da requisição; • Problema: alta carga do servidor, para cada requisição geralmente é iniciado um novo processo;

  8. CGI: Fluxo padrão

  9. Solução Java – Servlets(~96) • API independente de plataforma e de fabricante, rodando dentro da máquina virtual; • Em vez de iniciar um novo processo para cada requisição, iniciam uma nova Thread, controlada pela JVM. • Podem acessar qualquer API java; • Provê uma abstração da requisição/resposta HTTP, também possibilitando estabelecer relacionamento entre os Servlets (Container);

  10. Servlet – Ciclo de vida

  11. Servlet não pegou - Problemas • Para gerar uma simples página HTML, é necessário muito código Java e um conhecimento da API Servlet; • Impossibilita o reuso do design da página criada pela WebDesigner: não há código HTML puro e sim HTML misturado com Java, dificultando a leitura do código;

  12. Nova solução: o JSP(~97) • Idéia contrária ao Servlet: inserir Java no HTML; • Permite interação da WebDesigner; • API simplificada, curva de aprendizado menor, mas ainda é necessário ter um conhecimento da linguagem Java; • Apareceu como alternativa ao concorrente ASP da Microsoft, com a diferença de não ser apenas um script, mas sim um código compilado que é traduzido para um Servlet; • Delega ao Servlet tarefas de processamento que não necessitem exibição, tais como upload, controle de fluxo, ...

  13. Servidor Web JSP já traduzido em servlet ? Não Sim Traduz JSP em Servlet Requisição JSP foi modificado ? Sim Compila o Servlet Não Executar o Servlet JSP – Ciclo de vida

  14. Aplicações Web – Model 1 • Problema: Como dividir responsabilidades para uma aplicação web, onde existe varias “camadas” , como apresentação, regra de negócios, validação, acesso ao banco de dados? • A metodologia inicial proposta, bastante influenciada pelos antigos CGIs e Servlets, conhecida como Model 1 é bastante utilizada para o desenvolvimento de aplicações de pequeno porte, onde o JSP assume vários papéis e pode delegar alguns papéis para componentes JavaBeans;

  15. Aplicações Web – Model 2 • Model 1 provê pouco reuso e difícil manutenção do código; • Modelo proposto para separação dos papéis: MVC, conhecido como Model 2, que provê uma separação clara dos papéis de cada componente da aplicação; • Model 2 segue a conformidade do J2EE de separar cada peça do desenvolvimento, definindo uma arquitetura em camadas independentes formadas por componentes reutilizaveis;

  16. Framework Model 2 - Struts • Padrão atual para o desenvolvimento de aplicações MVC web ; • Define claramente os papel no MVC: • M:Modelo, cada objeto que representa uma entidade de negócio; • V: Visão ou apresentação, que define como os dados devem ser exibidos e formatados; • C: Controle, que define o fluxo das regras de negócio da aplicação, definindo qual visão tratará uma certa requisição;

  17. Struts - Fluxo

  18. J2EE • Padrão para a camada de apresentação: JSP e Servlets; • Estimula a utilização do Model 2; • Delega a regra de negócios e o modelo para outra camada externa, geralmente EJBs; • Enfatiza o uso de “Design Patterns”, que são soluções conhecidas para um determinado problema;

  19. Design Patterns para a camada de apresentação Mais utilizados • Front controller; • View Helper; • Value/Transfer Object; • Intercepting Filter;

  20. Front Controller • Define um único componente que é responsável por receber e processar as requisições. Geralmente, emprega-se um Servlet; • Centraliza consistências, segurança, validações genéricas utilizadas em todas as páginas.; • Consequentemente, quando o comportamento dessas funções precisam ser alterados, apenas uma pequena parte da aplicação necessita ser alterada. • Utilizado no MVC no caso do Controlador;

  21. Front Controller Sequência:

  22. View Helper • Separação da regra de negócio em componentes externas aos componentes de visualização (JSP); • View helper é responsável pela manipulação dos dados, englobando a regra de negócio e de persistência; • Várias maneiras de implementação: • JavaBeans; • Custom Tags; • EJBs

  23. Value / Transfer Object • Classe serializável que representa uma entidade de negócio; • Usada no fluxo de dados entre as camadas, geralmente criado pelo método de negócio, representando um registro de uma tabela; • Desacopla a camada de apresentação do banco de dados;

  24. Intercepting Filter • Permite o pré- e pós processamento de uma requisição; • Permite encaixar filtros dinâmicamente (plugins), podendo ser empregada a mesma funcionalidade de “Front Controller” com a diferença que o Filter pode efetuar um pós-processamento da requisição utilizado, por exemplo, numa compactação dos dados para a transmissão HTTP;

  25. Outros Frameworks • Cocoon; • Java Server Faces;

  26. Cocoon • Utilização do padrão XML como linguagem (XSP); • Framework integrado que separa fortemente as responsabilidades, com a apresentação em XSP, fluxo de dados em XML; • Mantido pela Apache

  27. Java Server Faces • JSF é uma nova API que acoplada com o JSP, provê serviços semelhantes ao ASP.NET, como a criação de componentes HTML , manutenção de estado; • Ainda não é um padrão, pouco divulgada e possue implementações betas; • Projetada pelo criador do Struts, sendo um complemento a este;

More Related