Java Web
Francisco Clauvane
Sobre a apresentacao
• Esta apresentacao teve como base a apostila da
  caelum, a minha experiencia profissional e as
  dicas dadas por profissionais mais experientes.
  Onde o objetivo da mesma nao e ensinar servlet
  e jsp, mas sim, mostrar o que e web,e mostrar
  que para voce que ja utiliza as facilidades de um
  framework(abstracao de alto nivel) que isto nao
  lhe faz um programador de fato, e isso faz toda a
  diferenca.
Sumario
1.   Introducao
2.   Banco de dados – JDBC
3.   O que Java EE
4.   Servlet
5.   JSP
6.   MVC
7.   Filtros
8.   Frameworks MVC
9.   ORM
1-Introducao
• O grande mercado de Java para web
• Desenvolvimento nao e trivial
 ▫   Servlet
 ▫   JSP
 ▫   HTTP
 ▫   Session
 ▫   Cookie
2-Banco de dados - JDBC
2-Banco de dados - JDBC
• DriverManager - gerencia o driver e cria uma
  conexão com o banco.
• Connection - é a classe que representa a conexão
  com o bando de dados.
• Statement - controla e executa uma instrução SQL .
• PreparedStatement - controla e executa uma
  instrução SQL. É melhor que Statement.
• ResultSet - contém o conjunto de dados retornado
  por uma consulta SQL.
• ResultsetMetaData - é a classe que trata dos
  metadados do banco.
2-Banco de dados - JDBC
•   Design Patterns – Singleton e Factory
•   DAO – Data Access Object
•   Statement vs. Prepared Statement
•   Connection pool
•   Cursor - procedure
3-O que e Java EE
• Requisitos funcionais – regra de negocio
• Requisitos nao-funcionais
 ▫   Persistencia
 ▫   Gerenciamento de conexoes
 ▫   Transacao
 ▫   Acesso remoto
• Servidor de aplicacao vs. Servlet Container
4-Servlet
• Paginas dinamicas
• HttpServlet
• Servlet vs. CGI
 ▫ Diversas requisições podem ser feitas à mesma servlet
   ao mesmo tempo em um único servidor
 ▫ Fica na memória entre requisições, não precisa ser
   reinstanciada;
 ▫ O nível de segurança e permissão de acesso pode ser
   controlado em Java;
 ▫ Em CGI, cada cliente é representado por um processo,
   enquanto que com Servlets, cada cliente é
   representado por uma linha de execução.
• Criacao de paginas HTML dentro do codigo java
5-JSP
• Colocando HTML no seu devido lugar
• Scriplet – Codigo java em paginas HTML
 ▫ EL – Expression Language
 ▫ JSTL – TagLibs
      Core Tags - c
      Formatting tags - fmt
      SQL tags - sql
      XML tags - x
      JSTL Functions - fn
6-MVC
• Design Pattern
• Servlet ou JSP ?
 ▫ Logica de negocio
 ▫ Logica de apresentacao
• Separando responsabilidades
 ▫ Model – Classes que represntam as entidades
 ▫ View – Apresentacao( pagina web)
 ▫ Controller – Servlet(e auxiliares)
    Front Controller e Command
7-Filtros
• Reduzindo o acoplamento
 ▫   Auditoria(Logging)
 ▫   Autorizacao
 ▫   Tratamento de erros
 ▫   Serguranca(Criptografia)
• Inversao de controle e injecao de dependencias
8-Frameworks MVC
• Servlets e JSPs puros não era tão produtivo e
  organizado
• Frameworks MVC com um controlador
  reutilizável entre projetos
 ▫ Struts 1 – pioneiro
9-ORM
• Produtividade
• Conflito entre paradigmas
 ▫ A todo momento devemos “transformar” objetos
   em linhas e linhas em objetos, sendo que essa
   relação não é um-para-um.
• Ferramentas de mapeamento objeto-relacional
  (ORM)
 ▫ Hibernate – Lider de mercado
    Inspiracao para a especificao JPA
Fim
• Sites e livros recomendados
 ▫   http://www.guj.com.br
 ▫   http://www.CasaDoCodigo.com.br
 ▫   http://www.caelum.com.br/online
 ▫   https://github.com/clauvane
 ▫   https://github.com/rponte

Java web

  • 1.
  • 2.
    Sobre a apresentacao •Esta apresentacao teve como base a apostila da caelum, a minha experiencia profissional e as dicas dadas por profissionais mais experientes. Onde o objetivo da mesma nao e ensinar servlet e jsp, mas sim, mostrar o que e web,e mostrar que para voce que ja utiliza as facilidades de um framework(abstracao de alto nivel) que isto nao lhe faz um programador de fato, e isso faz toda a diferenca.
  • 3.
    Sumario 1. Introducao 2. Banco de dados – JDBC 3. O que Java EE 4. Servlet 5. JSP 6. MVC 7. Filtros 8. Frameworks MVC 9. ORM
  • 4.
    1-Introducao • O grandemercado de Java para web • Desenvolvimento nao e trivial ▫ Servlet ▫ JSP ▫ HTTP ▫ Session ▫ Cookie
  • 5.
  • 6.
    2-Banco de dados- JDBC • DriverManager - gerencia o driver e cria uma conexão com o banco. • Connection - é a classe que representa a conexão com o bando de dados. • Statement - controla e executa uma instrução SQL . • PreparedStatement - controla e executa uma instrução SQL. É melhor que Statement. • ResultSet - contém o conjunto de dados retornado por uma consulta SQL. • ResultsetMetaData - é a classe que trata dos metadados do banco.
  • 7.
    2-Banco de dados- JDBC • Design Patterns – Singleton e Factory • DAO – Data Access Object • Statement vs. Prepared Statement • Connection pool • Cursor - procedure
  • 8.
    3-O que eJava EE • Requisitos funcionais – regra de negocio • Requisitos nao-funcionais ▫ Persistencia ▫ Gerenciamento de conexoes ▫ Transacao ▫ Acesso remoto • Servidor de aplicacao vs. Servlet Container
  • 9.
    4-Servlet • Paginas dinamicas •HttpServlet • Servlet vs. CGI ▫ Diversas requisições podem ser feitas à mesma servlet ao mesmo tempo em um único servidor ▫ Fica na memória entre requisições, não precisa ser reinstanciada; ▫ O nível de segurança e permissão de acesso pode ser controlado em Java; ▫ Em CGI, cada cliente é representado por um processo, enquanto que com Servlets, cada cliente é representado por uma linha de execução. • Criacao de paginas HTML dentro do codigo java
  • 10.
    5-JSP • Colocando HTMLno seu devido lugar • Scriplet – Codigo java em paginas HTML ▫ EL – Expression Language ▫ JSTL – TagLibs  Core Tags - c  Formatting tags - fmt  SQL tags - sql  XML tags - x  JSTL Functions - fn
  • 11.
    6-MVC • Design Pattern •Servlet ou JSP ? ▫ Logica de negocio ▫ Logica de apresentacao • Separando responsabilidades ▫ Model – Classes que represntam as entidades ▫ View – Apresentacao( pagina web) ▫ Controller – Servlet(e auxiliares)  Front Controller e Command
  • 12.
    7-Filtros • Reduzindo oacoplamento ▫ Auditoria(Logging) ▫ Autorizacao ▫ Tratamento de erros ▫ Serguranca(Criptografia) • Inversao de controle e injecao de dependencias
  • 13.
    8-Frameworks MVC • Servletse JSPs puros não era tão produtivo e organizado • Frameworks MVC com um controlador reutilizável entre projetos ▫ Struts 1 – pioneiro
  • 14.
    9-ORM • Produtividade • Conflitoentre paradigmas ▫ A todo momento devemos “transformar” objetos em linhas e linhas em objetos, sendo que essa relação não é um-para-um. • Ferramentas de mapeamento objeto-relacional (ORM) ▫ Hibernate – Lider de mercado  Inspiracao para a especificao JPA
  • 15.
    Fim • Sites elivros recomendados ▫ http://www.guj.com.br ▫ http://www.CasaDoCodigo.com.br ▫ http://www.caelum.com.br/online ▫ https://github.com/clauvane ▫ https://github.com/rponte