You are on page 1of 21

Java Web

Apostila

www.3way.com.br

Java JavaWEB WEB

Sumrio Sumrio 1 1 1.1 1.1 1.2 1.2 1.2.1 1.2.1 1.3 1.3 1.4 1.4 1.5 1.5 1.6 1.6 1.7 1.7 1.8 1.8 1.9 1.9 1.9.1 1.9.1 1.9.2 1.9.2 1.9.3 1.9.3 1.9.4 1.9.4 1.9.5 1.9.5 2 2 2.1 2.1 2.2 2.2 2.3 2.3 2.3.1 2.3.1 2.3.2 2.3.2 2.3.3 2.3.3 3 3 3.1 3.1 3.2 3.2 3.3 3.3 3.4 3.4 4 4 4.1 4.1 4.1.1 4.1.1 4.1.2 4.1.2 4.1.2.1 4.1.2.1 4.2 4.2 4.2.1 4.2.1 4.2.2 4.2.2 4.2.2.1 4.2.2.1 4.2.2.2 4.2.2.2 4.3 4.3 4.4 4.4 4.4.1 4.4.1 4.4.2 4.4.2 4.4.3 4.4.3 4.4.4 4.4.4 4.4.5 4.4.5 4.5 4.5 4.6 4.6 4.7 4.7 4.8 4.8 4.9 4.9 JDBC JDBC Banco Bancode deDados DadosRelacional Relacional JDBC JDBC Java JavaDatabase DatabaseConnectivity Connectivity java.sql.DriverManager java.sql.DriverManager Fbrica Fbricade deConexes Conexes Criar CriarBanco Bancode deDados Dadose eTabelas Tabelas Classes ClassesJavabeans Javabeans Entidades Entidades Inserindo InserindoDados Dados Fechando Fechandoa aConexo Conexo PreparedStatement PreparedStatementou ouStatement Statement Design DesignPatterns Patterns DAO DAO Data DataAccess AccessObject Object Pesquisando Pesquisando Recurso Recursoavaando: avaando:O OCursor Cursor Alterao Alterao Excluso Excluso Introduo Introduoa aJava JavaEnterprise EnterpriseEdition Edition Porque PorqueJava JavaEE EEtem temsido sidoto toutilizado? utilizado? O Oque que Java JavaEnterprise EnterpriseEdition? Edition? A Aplataforma plataformaJava JavaEnterprise EnterpriseEdition Edition APIs APIs Continers Continers Deployment Deploymentde deaplicaes aplicaes *Apostilha referente somente ao primeiro mdulo do curso Formao Java Web 3Way Networks. Anlise Anlisede dearquiteturas arquiteturas Arquitetura ArquiteturaFsica Fsicae eArquitetura ArquiteturaLgica Lgica Tipos Tiposde deaplicaes aplicaesna naWEB WEB Arquitetura ArquiteturaMVC MVCpara paraa aWeb Web Vantagens Vantagensda daarquitetura arquiteturaMVC MVC Ambiente Ambientede dedesenvolvimento desenvolvimento Tomcat Tomcat Instalar InstalarJava JavaJSE JSESDK SDK(JDK) (JDK) Qual Qualverso versode deJDK JDKutilizar utilizar JAVA_HOME JAVA_HOME Instalar InstalarTomcat Tomcat Qual Qualverso versode deTomcat Tomcatutilizar utilizar Iniciar e parar o Tomcat Iniciar e parar o Tomcat [Windows] [Windows]Tomcat Tomcatcomo comoservio servio Tomcat Tomcatcomo comoprocesso processo Testar TestarTomcat Tomcat Criar Criarcontexto contextode dedesenvolvimento desenvolvimento Estrutura Estruturade dediretrios diretrios Criar Criarcontexto contextode deaplicao aplicaoweb web Configurar Configurarcontexto: contexto:web.xml web.xml Ativar Ativarcontexto contexto Testar Testarcontexto contexto Bibliotecas BibliotecasServlet Servlet Testar seus servlets Testar seus servlets Testar Testarseus seusJSPs JSPs Logs Logs Variveis Variveisde deAmbiente Ambiente
Todos os direitos reservados a 3Way Networks

3 8 8 3 8 8 3 8 8 3 8 8 4 9 9 5 10 10 5 10 10 6 11 11 8 12 12 8 12 12 9 13 13 9 13 13 10 14 14 11 15 15 13 16 16 16 13 16 17 14 17 17 14 17 18 15 18 18 15 18 19 17 19 19 17 19 21 18 21 21 21 21 21 21 21 21 21 22 22 23 23 23 23 24 24 24 24 24 24 25 25 25 25 25 25 25 25 26 26 26 26 26 26 26 26 27 27 27 27 29 29 29 29 29 29 30 30 31 31 31 31 32 32

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

1 1 2

Java Java WEB WEB

Sumrio 1. JDBC

8 O banco de dados onde guardamos os dados que pertencem ao 1.1 Banco de Dados Relacional 8 O processo de armazenagem nosso A maioria dos bancos de dados comerciais hoje em dia so 1.2 sistema. JDBC Java Database Connectivity 8 relacionais e derivam de uma estrutura diferente daquela orientada a objetos. e captura de dados em um8 1.2.1 java.sql.DriverManager Assim como o Conexes nome j diz, um banco de dados relacional armazena banco chamado de 9 1.3 Fbrica de dados uma srie de de Dados informaes relacionadas. Grupos relacionados so 1.4 como Criar Banco e Tabelas 10 persistncia. expressos na forma de tabelas. Cada tabela contm colunas que definem as 1.5 Classes Javabeans Entidades 10 propriedades de cada grupo de dados armazenados. 1.6 Inserindo Dados 11 As tabelas definidas num banco de dados so geralmente montadas 1.7 Fechando a Conexo 12 com constraints lgicas que servem para preservar a consistncia dos dados. 1.8 PreparedStatement ou Statement 12 Uma constraint uma restrio de um tipo de dado: cada coluna definida 1.9 Design Patterns 13 para ser de um tipo de dados especfico. O sistema automaticamente rejeita a 1.9.1 DAO Data Access Object 13 insero de novos dados que no sejam compatveis com o tipo de dado 1.9.2 Pesquisando 14 definido pela estrutura da tabela. 1.9.3 Recurso avaando: O Cursor 15 A biblioteca padro de persistncia em banco de dados em Java a 1.9.4 Alterao 16 JDBC mas j existem diversos projetos do tipo ORM (Object Relational 1.9.5 Excluso 16 Mapping) que solucionam muitos problemas que a estrutura da api do JDBC (e 2 Introduo a Java Enterprise Edition 17 ODBC) gerou. 2.1 Porque Java EE tem sido to utilizado? 17 2.2 O que Java Enterprise Edition? 18 1.2. plataforma Java Database Connectivity 2.3 JDBC A Java Enterprise Edition 18 Database Connectivity ou JDBC um conjunto de classes e interfaces (API) escritas em Java que faz o 2.3.1 Java APIs 19 envio de instrues SQL para qualquer banco de dados relacional. Por meio desta os desenvolvedores podem 2.3.2 Continers 19 acessar de dados de no importando quem seja seu fabricante; os desenvolvedores de um JDBC provem a 2.3.3 bases Deployment aplicaes 21 implementao para as interfaces definidas nesta API, fornecendo o mesmo grupo de funcionalidades 21 ao 3 Anlise de arquiteturas desenvolvedor do sistema. 3.1 Arquitetura Fsica e Arquitetura Lgica 21 3.2 Tipos de aplicaes na WEB 21 As seguintes classes API JDBC: 3.3 Arquitetura MVCesto para na a Web 21 3.4 Vantagens da arquitetura MVC 22 - java.sql.Connection Representa a conexo com o banco de dados. Encapsula os detalhes de como a 4 Ambiente de desenvolvimento 23 comunicao 4.1 Tomcat com o servidor realizada. 23 java.sql.DriverManager Gerencia os drivers JDBC utilizados pela aplicao. Em conjunto com24 o 4.1.1 Instalar Java JSE SDK (JDK) e a autenticao, pode fornecer objetos de conexo. 4.1.2 endereo Qual verso de JDK utilizar 24 java.sql.Statement Fornece meios ao desenvolvedor para que se possa executar comandos SQL. 4.1.2.1 JAVA_HOME 24 - java.sql.ResultSet 4.2 Instalar Tomcat Representa o resultado de um comando SQL. Estes objetos normalmente so 25 por mtodos. 4.2.1 retornados Qual verso de Tomcat utilizar 25 4.2.2 Iniciar e parar o Tomcat 25 1.2.1. java.sql.DriverManager 4.2.2.1 [Windows] Tomcat como servio 25 classe, o desenvolvedor pode retornar um objeto de conexo que pode ser usado para 4.2.2.2 Utilizando Tomcatesta como processo 26 executar tarefas relativas ao banco de dados. Dois passos so necessrios para tal: 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 o driver JDBC deve estar registrado com DriverManager. Isto pode ser feito utilizando o mtodo 4.4.1 - Primeiro, Estrutura de diretrios 26 Class.forName que carrega a classe do driver para a memria. 4.4.2 Criar contexto de aplicao web 27 utilizando o mtodo getConnection(), mediante informao de uma URL, assim como a senha e 4.4.3 - Segundo, Configurar contexto: web.xml 27 usurio autenticado no banco de dados. A URL deve seguir a sintaxe requisitada pela 4.4.4 o nome Ativardo contexto 29 implementao do banco de dados. 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet 29 Abaixo vemos um exemplo de como se obtm uma conexo com um banco de dados JavaDB (Derby) 4.6 Testar seus servlets 30. Novamente, a URL e o driver especficos para a implementao so utilizados. Para outros bancos de dados, 4.7 Testar seus JSPs 31 verifique a documentao fornecida. 4.8 Logs 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

1.1. Banco de Dados Relacional 1 JDBC

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

8 1 3

Java JavaWEB WEB

import java.sql.*; Sumrio

1 JDBC 8 static String url = "jdbc:derby://localhost:1527/3way"; 1.1 Banco de String Dados Relacional 8 static usuario = "3way"; 1.2 JDBC Java Database Connectivity 8 static String senha = "123"; public static void main(String[] args) { 1.2.1 java.sql.DriverManager 8 try { 1.3 Fbrica de Conexes 9 Class. forName ("org.apache.derby.jdbc.ClientDriver"); 1.4 Criar Banco de Dados e Tabelas 10 Connection con = DriverManager.getConnection(url,usuario,senha); 1.5 Classes Javabeans Entidades 10 System.out .println("Conectado!"); 1.6 Inserindo Dados 11 con.close(); 1.7 Fechando a Conexo 12 }catch (ClassNotFoundException e) { 1.8 PreparedStatement ou Statement 12 e.printStackTrace(); 1.9 Design Patterns 13 }catch(SQLException e) 1.9.1 DAO Data Access Object 13 { 1.9.2 Pesquisando 14 e.printStackTrace(); 1.9.3 Recurso 15 } avaando: O Cursor } 1.9.4 Alterao 16 } 1.9.5 Excluso 16 2 Introduo a Java Enterprise Edition 17 Teoricamente basta alterar as trs Strings que escrevemos para mudar de um banco para outro. Porm no 2.1 Porque Java EE tem sido to utilizado? 17 tudo to simples assim. Depende de qual padro SQL o banco suporta. Isso s causa dor de cabea e existem 2.2 O que Java Enterprise Edition? 18 certos que resolvem isso facilmente, 2.3 arcabouos A plataforma Java Enterprise Edition como o caso do Hibernate (www.hibernate.org) e do JPA. 18 2.3.1 APIs 19 2.3.2 Continers 19 1.3 Fbrica de Conexes 2.3.3 Em Deployment aplicaes 21 determinadode momento de nossa aplicao, gostaramos de ter o controle sobre a construo dos 3 Anlise de arquiteturas 21 objetos da nossa classe. Muita coisa pode ser feita atravs do construtor, como saber quantos objetos foram 3.1 Arquitetura e Arquitetura Lgica 21 instanciados ou fazer o Fsica log sobre essas instanciaes. As vezes tambm queremos controlar um processo muito 3.2 de aplicaes na WEB 21 repetitivo e Tipos trabalhoso, como abrir uma conexo com o banco de dados. Tomemos como exemplo a classe a seguir 3.3 Arquitetura MVC para a Web 21 que seria responsvel por abrir uma conexo com o banco: 3.4 Vantagens da arquitetura MVC 22 import java.sql.*; 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 class FabricaConexao { 4.1.1 public Instalar Java JSE SDK (JDK) 24 4.1.2 Qual verso de JDK utilizar 24 static String url = "jdbc:derby://localhost:1527/3way"; 4.1.2.1 JAVA_HOME 24 static String usuario = "3way"; 4.2 Instalar Tomcat 25 static String senha = "123"; 4.2.1 Qual verso de Tomcat utilizar 25 public static Connection getConexao() throws SQLException{ 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 [Windows] Tomcat como servio 25 try{ 4.2.2.2 Tomcat como processo 26 Class.forName("org.apache.derby.jdbc.ClientDriver"); 4.3 Testar Tomcat 26 return DriverManager.getConnection(url,usuario,senha); }catch (ClassNotFoundException e) 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de{diretrios 26 throw new SQLException(e.getMessage()); 4.4.2 Criar contexto de aplicao web 27 } 4.4.3 Configurar contexto: web.xml 27 } 4.4.4 } Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet 29 Poderamos colocar um aviso na nossa aplicao, notificando todos os programadores ao adquirir uma 4.6 Testar seus servlets 30 conexo: 4.7 Testar seus JSPs 31 4.8 Logs 31 Connection con = FabricaConexao.getConexao(); 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

public class JDBCExemplo {

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

9 1 4

Java JavaWEB WEB

Podemos perceber que o mtodo getConexao() uma fbrica de conexes, isto , ele fabrica conexes para Sumrio ns, no importando de onde elas vieram. Portanto, nada mais natural do que chamar a classe de FabricaConexao 1o mtodo JDBC 8 e de getConexao(). 1.1 Banco de Dados Relacional 8 1.2 JDBC Java Database Connectivity 8 1.4 Criar Banco de Dados e Tabelas 1.2.1 Devemos java.sql.DriverManager criar um banco de dados agenda. Para cri-lo voc deve editar a url de conexo do banco para: 8 1.3 Fbrica de Conexes 9 1.4 Criar Banco de Dados e Tabelas 10 static String url = "jdbc:derby://localhost:1527/agenda;create=true"; 1.5 Classes Javabeans Entidades 10 1.6 Inserindo Dados 11 A seguinte tabela contatos ser usada nos exemplos desse captulo: 1.7 Fechando a Conexo 12 1.8 PreparedStatement ou Statement 12 CREATE TABLE contatos ( 1.9 Design 13 ID Patterns BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY, 1.9.1 DAO Data Access Object 13 NOME VARCHAR(255), 1.9.2 Pesquisando 14 EMAIL VARCHAR(255), 1.9.3 Recurso avaando: O Cursor 15 ENDERECO VARCHAR (255), 1.9.4 Alterao 16 PRIMARY KEY(id) 1.9.5 ); Excluso 16 2 Introduo a Java Enterprise Edition 17 2.1 Porque Java EE tem sido to utilizado? 17 1.5 Classes Javabeans Entidades 2.2 O que Java Enterprise Edition? 18 No banco de dados relacional, comum representar um contato (entidade) em uma tabela de contatos. 2.3 A plataforma Java Enterprise Edition 18 Agora iremos utilizar: 2.3.1 APIs 19 uma classe com mtodos do tipo get e set para cada um de seus parmetros, que representa algum 2.3.2 Continers 19 2.3.3 objeto. Deployment de aplicaes 21 - uma classe com construtor sem argumentos que representa uma coleo de objetos. 3 Anlise de arquiteturas 21 3.1 Arquitetura Fsica e Arquitetura Lgica 21 A seguir, v um exemplo de uma classe javabean que seria equivalente 3.2 Tiposvoc de aplicaes na WEB 21 ao nosso modelo de entidade do banco de dados: 3.3 Arquitetura MVC para a Web 21 JavabBeans so 3.4 Vantagens da arquitetura MVC 22 public class Contato { classes que possuem o 4 Ambiente de desenvolvimento 23 4.1 Tomcat construtor sem 23 private int id; 4.1.1 Instalar Java JSE SDK (JDK) argumentos e 24 private nome; 4.1.2 Qual verso deString JDK utilizar 24 mtodos de acesso do 4.1.2.1 JAVA_HOME 24 private String endereco; tipo get e set. 25 4.2 Instalar Tomcat 4.2.1 Qual verso deString Tomcat utilizar 25 private email; 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 [Windows] Tomcat como servio 25 public int getId() { return id; 4.2.2.2 Tomcat como processo 26 } 4.3 Testar Tomcat 26 public void setId(int id) { 4.4 Criar contexto de desenvolvimento 26 this.id = id; 4.4.1 Estrutura de diretrios 26 } 4.4.2 Criar contexto de aplicao web 27 public String getNome() { return web.xml nome; 4.4.3 Configurar contexto: 27 } 4.4.4 Ativar contexto 29 public void setNome(String nome) { 4.4.5 Testar contexto 29 this.nome = nome; 4.5 Bibliotecas Servlet 29 } 4.6 Testar seus servlets 30 public String getEndereco() { return endereco; 4.7 Testar seus JSPs 31 4.8 Logs} 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

10 1 5

Java JavaWEB WEB

Sumrio

1 8 1.1 8 1.2 8 1.2.1 8 1.3 9 1.4 10 } 1.5 Classes Javabeans Entidades 10 1.6 Inserindo Dados 11 1.6 Dados 1.7 Inserindo Fechando a Conexo 12 Para inserir dados em uma tabela de um banco de dados entidade relacional basta usar a clusula INSERT 1.8 PreparedStatement ou Statement 12. Precisamos especificar quais os campos que desejamos atualizar e os valores. 1.9 Design Patterns 13 o Data cdigo SQL: Object 1.9.1 Primeiro DAO Access 13 1.9.2 Pesquisando 14 String sql = "insert into contatos (nome,email,endereco) " 1.9.3 Recurso avaando: O Cursor 15 + "values ('"+ nome +"','" + email + "','" + endereco +"')"; 1.9.4 Alterao 16 1.9.5 Excluso 16 O exemplo acima possui dois pontos negativos que so importantssimos. O primeiro que o programador 2 Introduo a Java Enterprise Edition 17 que no escreveu o cdigo original no consegue bater o olho e entender o que est escrito. O que o cdigo acima 2.1 Porque Java EE tem sido to utilizado? 17 faz? Lendo rapidamente fica difcil. Mais difcil ainda saber se faltou uma vrgula, um fecha parnteses talvez? 2.2 O que Java Enterprise Edition? 18 Outro problema o clssico SQLEdition Injection. O que acontece quando o contato a ser adicionado possui 18 no 2.3 A plataforma Java Enterprise nome uma aspas simples? O cdigo sql se quebra todo e pra de funcionar ou o usurio final no capaz de alterar 2.3.1 APIs 19 seu cdigo SQL para executar aquilo que ele desejam, tudo isso porque escolhemos aquela linha de cdigo e no 2.3.2 Continers 19 fizemos de caracteres especiais. 2.3.3 o escape Deployment de aplicaes 21 Por Anlise esses dois motivos no iremos usar cdigo SQL como mostrado anteriormente... vamos imaginar algo 3 de arquiteturas 21 mais genrico e um pouco mais interessante: 3.1 Arquitetura Fsica e Arquitetura Lgica 21 3.2 Tipos de aplicaes na WEB 21 String sql = "insert into contatos (nome,email,endereco) values (?,?,?)"; 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 Perceba que no colocamos os pontos de interrogao de brincadeira, e sim porque realmente no 4 Ambiente de desenvolvimento 23 sabemos o que desejamos inserir. Estamos interessados em executar aquele cdigo, mas no sabemos ainda quais 4.1 Tomcat 23 so os parmetros iremos utilizar 4.1.1 Instalarque Java JSE SDK (JDK) nesse cdigo SQL que ser executado, chamado de statement. 24 so de executadas em um banco de dados atravs da interface PreparedStatement. Para receber 4.1.2 As clusulas Qual verso JDK utilizar 24 um PreparedStatement relativo conexo, basta chamar o mtodo prepareStatement , passando como argumento 4.1.2.1 JAVA_HOME 24 o comando SQL com os valores vindos de variveis preenchidos com uma interrogao. 4.2 Instalar Tomcat 25 4.2.1 Qual verso de Tomcat utilizar 25 PreparedStatement stmt = con.prepareStatement( 4.2.2 Iniciar e parar o Tomcat 25 "insert into contatos(nome,email,endereco) values (?,?,?)"); 4.2.2.1 [Windows] Tomcat como servio 25 4.2.2.2 Tomcat como processo 26 Logo em seguida, chamamos o mtodo setString do PreparedStatement para preencher os valores, 4.3 Testar Tomcat 26 passando a posio (comeando em 1) da interrogao no SQL e o valor que deve ser colocado. 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretrios 26 //preenche os valores 4.4.2 stmt.setString(1, Criar contexto de aplicao 27 "3Way web Networks"); 4.4.3 stmt.setString(2, Configurar contexto:"contato@3way.com.br"); web.xml 27 stmt.setString(3, "Av. 4 Radial, 1952 Milo Shopping Center"); 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Servlet ao mtodo execute que executa o comando SQL. 29 Por Bibliotecas fim, uma chamada 4.6 Testar seus servlets 30 stmt.execute(); 4.7 Testar seus JSPs 31 4.8 Logs 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

public void setEndereco(String endereco) { this.endereco = endereco; } JDBC public String getEmail() { Banco de Dados Relacional return email; JDBC } Java Database Connectivity public void setEmail(String email) { java.sql.DriverManager this.email = email; Fbrica de Conexes } Criar Banco de Dados e Tabelas

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

11 1 6

Java WEB

Sumrio 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC Java Database Connectivity java.sql.DriverManager Fbrica de Conexes Criar Banco de Dados e Tabelas Classes Javabeans Entidades Inserindo Dados Fechando a Conexo PreparedStatement ou Statement Design Patterns DAO Data Access Object Pesquisando Recurso avaando: O Cursor Alterao Excluso Introduo a Java Enterprise Edition Porque Java EE tem sido to utilizado? O que Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Continers Deployment de aplicaes Anlise de arquiteturas Arquitetura Fsica e Arquitetura Lgica Tipos de aplicaes na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual verso de JDK utilizar JAVA_HOME Instalar Tomcat Qual verso de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como servio Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretrios Criar contexto de aplicao web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variveis de Ambiente 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 7

Todos os direitos reservados a 3Way Networks

Seja um Profissional Aprendendo com Profissionais www.3way.com.br

Java JavaWEB WEB

Agora imagine todo esse processo sendo escrito toda vez que desejar inserir algo no banco? Ainda no Sumrio consegue visualizar o quo destrutivo isso pode ser? Veja o exemplo abaixo, que abre uma conexo e insere um 1 JDBC 8 contato no banco: 1.1 Banco de Dados Relacional 8 public class JDBCInserir { 1.2 JDBC Java Database Connectivity 8 public static void main(String[] args) throws SQLException { 1.2.1 java.sql.DriverManager 8 try { 1.3 Fbrica de Conexes 9 Connection con = ConnectionFactory.getConnection(); 1.4 Criar Banco de Dados e Tabelas 10 1.5 Classes Javabeans // Entidades 10 cria um preparedStatement 1.6 Inserindo Dados 11 PreparedStatement stmt = (PreparedStatement) con.prepareStatement("insert into contatos " 1.7 Fechando a Conexo 12 + " (nome,email,endereco) values (?,?,?)"); 1.8 PreparedStatement ou Statement 12 //preenche os valores 1.9 Design Patterns 13 stmt.setString(1, "3Way Networks"); 1.9.1 DAO Data Access Object 13 stmt.setString(2, "contato@3way.com.br"); 1.9.2 Pesquisando 14 stmt.setString(3, "Av. 4 Radial, 1952 Shopping Milo"); 1.9.3 Recurso avaando: O Cursor 15 //executa 1.9.4 Alterao 16 stmt.execute(); 1.9.5 Excluso 16 stmt.close(); 2 Introduo a Java Enterprise Edition 17 System.out.println("Gravado!"); 2.1 Porque Java EE tem con.close(); sido to utilizado? 17 2.2 O que Java Enterprise Edition? 18 }catch (SQLException e) { 2.3 A plataforma Java Enterprise Edition 18 e.printStackTrace(); 2.3.1 APIs 19 }finally{ 2.3.2 Continers 19 if (con != null){ 2.3.3 Deployment de aplicaes 21 con.close(); 3 Anlise de arquiteturas stmt.close(); 21 } 3.1 Arquitetura Fsica e Arquitetura Lgica 21 } 3.2 Tipos de aplicaes na WEB 21 } 3.3 Arquitetura MVC para a Web 21 } 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 1.7 Fechando a Conexo 4.1 Tomcat 23 praticado SDK o uso de alguma API de ORM como o Hibernate ou JPA, porm aqueles que ainda 4.1.1 O mais Instalar Java JSE (JDK) 24 insistem uso de JDBC devem prestar ateno no momento de fechar a conexo. O exemplo dado acima fecha a 4.1.2 no Qual verso de JDK utilizar 24 conexo algum erro ocorra no momento de inserir algum dado no banco de 4.1.2.1 caso JAVA_HOME 24 dados. O comum fechar a conexo em um bloco finally. 4.2 Instalar Tomcat 25 4.2.1 Qual verso de Tomcat utilizar 25 Usando Statements, voc 1.8 PreparedStatement ou Statement 4.2.2 Iniciar e parar o Tomcat ter que fazer muitas 25 de usar o PreparedStatement , voc pode usar uma interface 4.2.2.1 Ao invs [Windows] Tomcat como servio 25 concatenaes, j com 26 mais simples chamada Statement , que simplesmente executa uma clusula SQL 4.2.2.2 Tomcat como processo PreparedStatements, isso no mtodo execute: 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento fica mais limpo e fcil. 26 = con.createStatement(); 4.4.1 Statement Estrutura stmt de diretrios 26 stmt.execute( 4.4.2 Criar contexto de aplicao web 27 "insert into contato (nome, email, endereco) values" 4.4.3 Configurar contexto: web.xml 27 +"('Nome','Email','Endereco')"); 4.4.4 stmt.close(); Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet 29 melhor usar a classe PreparedStatement que mais rpida que 4.6 Testar servlets 30 Statement e deixaseus o cdigo muito mais limpo. Geralmente, seus comandos SQL 4.7 Testar seus JSPs 31 contero valores vindos de variveis do programa Java. 4.8 Logs 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

12 1 8

Java JavaWEB WEB

Orientao objetos resolve as grandes dores de cabeas que tnhamos na programao procedural, 1 JDBC 8 restringindo e centralizando responsabilidades. Mas algumas coisas no podemos simplesmente resolver com 1.1 Banco depois Dados Relacional 8 orientao objetos no existe palavra chave para uma funcionalidade to especfica. Alguns desses pequenos 1.2 JDBC Java Database Connectivity 8 problemas aparecem com tamanha freqncia que as pessoas desenvolvem uma soluo padro para o mesmo. 1.2.1 java.sql.DriverManager 8 Com isso, ao nos defrontarmos com um desses problemas clssicos, podemos rapidamente implementar essa 1.3 Fbrica de uma Conexes 9 soluo genrica com ou outra modificao. Essa soluo padro tem o nome de Design Pattern (padro de 1.4 Criar Banco de Dados e Tabelas 10 projeto). 1.5 Classes Entidades 10 O livro maisJavabeans conhecidode Design Patterns foi escrito em 1995 e tem trechos 1.6 Inserindo Dados . Mas o que realmente importa so os conceitos e os A melhor maneira 11 de cdigo em C++ e Smalltalk 1.7 Fechando a Conexo 12 diagramas que fazem desse livro independente de qualquer linguagem. Alm de para aprender o que 1.8 PreparedStatement ou Statement 12 tudo, o livro de leitura agradvel: Design Patterns, Erich Gamma et al. um Design Pattern 1.9 Design Patterns 13 vendo como surgiu a 1.9.1 DAO Data Access Object 13 1.9.1 DAO Data Access Object 1.9.2 Pesquisando necessidade do 14 J foi possvel sentir que colocar cdigo SQL dentro de suas classes de lgica 1.9.3 Recurso avaando: O Cursor 15 algo nem um pouco elegante e muito menos vivel quando voc precisa manter o mesmo. 1.9.4 Alterao 16 seu cdigo. 1.9.5 Excluso 16 A idia a seguir remover o cdigo de acesso ao banco de dados de suas 2 Introduo a Java Enterprise Edition 17 classes de lgica e coloc-lo em uma classe responsvel pelo acesso ao mesmo. 2.1 Porque Java EE tem sido to utilizado? 17 Assim o cdigo de acesso ao banco de dados fica em um lugar s, 2.2 O que Java Enterprise Edition? 18 conseqentemente, mais fcil dar manuteno ao mesmo. 2.3 A plataforma Java Enterprise Edition 18 Que tal seria se pudssemos chamar um mtodo adiciona que adiciona um 2.3.1 APIs 19 Contato ao banco? 2.3.2 Continers 19 Em outras palavras quero que o cdigo a seguir funcione: 2.3.3 Deployment de aplicaes 21 3 Anlise de arquiteturas 21 // adiciona o os dados no banco 3.1 Arquitetura e Arquitetura Lgica 21 Misterio bd Fsica = new Misterio(); 3.2 Tipos de aplicaes na WEB 21 bd.adiciona(meu nome, meu email, meu endereo); 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 Mas... Java orientado a Strings? Vamos tentar novamente: em outras palavras quero que o cdigo a seguir 4 Ambiente de desenvolvimento 23 funcione: 4.1 Tomcat 23 4.1.1 // Instalar Javaum JSE contato SDK (JDK) no banco 24 adiciona bd = Misterio(); 4.1.2 Misterio Qual verso denew JDK utilizar 24 // mtodo muito mais elegante 4.1.2.1 JAVA_HOME 24 bd.adiciona(contato); 4.2 Instalar Tomcat 25 4.2.1 Qual verso de Tomcat utilizar 25 Tentaremos chegar ao cdigo anterior: seria muito melhor e mais elegante poder chamar um nico mtodo 4.2.2 Iniciar e parar o Tomcat 25 responsvel pela incluso, certo? 4.2.2.1 [Windows] Tomcat como servio 25 4.2.2.2 Tomcat como processo 26 public class TestaInsere { 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 public static void main(String[] args) { 4.4.1 Estrutura de diretrios 26 try { 4.4.2 Criar contexto de aplicao web 27 4.4.3 Configurar contexto: web.xml 27 //pronto para gravar 4.4.4 Ativar contexto 29 Contato contato = new Contato(); 4.4.5 Testar contexto 29 contato.setNome("3Way"); 4.5 Bibliotecas Servlet contato.setEmail("3way@3way.com.br"); 29 contato.setEndereco("Av. 4 Radial, Goinia-GO"); 4.6 Testar seus servlets 30 4.7 Testar seus JSPs 31 //grave nessa conexo!!! 4.8 Logs 31 ContatoDAO dao = new ContatoDAO(); 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Sumrio 1.9 Design Patterns

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

13 1 9

Java JavaWEB WEB

Sumrio

//mtodo elegante dao.adiciona(contato);

1 JDBC 8 System.out.println("Gravado!"); 1.1 Banco de Dados Relacional 8 1.2 JDBC Java } Database 8 catch Connectivity (SQLException e) { e.printStackTrace(); 1.2.1 java.sql.DriverManager 8 } 1.3 Fbrica de Conexes 9 }Banco de Dados e Tabelas 1.4 Criar 10 } 1.5 Classes Javabeans Entidades 10 1.6 Inserindo Dados 11 O cdigo anterior j mostra o poder que iremos alcanar, atravs de uma nica classe seremos capazes de 1.7 Fechando a Conexo 12 acessar o banco de dados e, mais ainda, somente atravs dessa classe ser possvel acessar os dados. Esta idia 1.8 PreparedStatement ou Statement 12 inocente a primeira vista, capaz de isolar todo o acesso a banco em classes bem simples, cuja instncia um 1.9 Design Patterns 13 objeto responsvel por acessar os dados. Da responsabilidade deste objeto surgiu o nome de Data Access Object 1.9.1 DAO Data Access Object 13 ou simplesmente DAO, um dos mais famosos padres de desenvolvimento. 1.9.2 Pesquisando 14 O que falta para o cdigo acima funcionar uma classe chamada ContatoDAO com um mtodo chamado 1.9.3 Recurso avaando: O Cursor 15 adiciona. Vamos criar uma classe que se conecta ao banco de dados ao ser construda uma instncia da mesma: 1.9.4 Alterao 16 1.9.5 import Excluso 16 java.sql.Connection; 2 Introduo a Java Enterprise Edition 17 import java.sql.SQLException; 2.1 Porque Java EE tem sido to utilizado? 17 import conexao.FabricaConexao; 2.2 O que Java Enterprise Edition? 18 public class ContatoDAO 2.3 A plataforma Java Enterprise{Edition 18 2.3.1 APIsprivate Connection conexao; 19 public ContatoDAO() throws SQLException { 2.3.2 Continers this.conexao = FabricaConexao.getConexao(); 19 2.3.3 Deployment de aplicaes 21 } 3 21 } Anlise de arquiteturas 3.1 Arquitetura Fsica e Arquitetura Lgica 21 Agora que todo ContatoDAO possui uma conexo com o banco podemos focar no mtodo adiciona, que 3.2 Tipos de aplicaes na WEB 21 recebe como argumento e responsvel por adicionar o mesmo atravs de cdigo sql. 3.3 um Contato Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 public void adiciona(Contato contato) throws SQLException { 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 PreparedStatement stmt = (PreparedStatement) 4.1.1 Instalar Java JSE SDK (JDK) 24 this.conexao.prepareStatement( 4.1.2 Qual verso"insert de JDK utilizar 24 into contatos(nome,email,endereco) values (?, ?, ?)"); 4.1.2.1 JAVA_HOME 24 stmt.setString(1,contato.getNome()); stmt.setString(2,contato.getEmail()); 4.2 Instalar Tomcat 25 stmt.setString(3,contato.getEndereco()); 4.2.1 Qual verso de Tomcat utilizar 25 stmt.execute(); 4.2.2 Iniciar e parar o Tomcat 25 stmt.close(); 4.2.2.1 } [Windows] Tomcat como servio 25 4.2.2.2 Tomcat como processo 26 4.3 Pesquisando Testar Tomcat 26 1.9.2 4.4 Criar contexto de desenvolvimento 26 Para pesquisar tambm utilizamos a interface PreparedStatement, de forma que o mtodo executeQuery 4.4.1 Estrutura de diretrios 26 retorna todos os contatos no exemplo a seguir. O objeto retornado do tipo ResultSet que permite navegar por 4.4.2 Criar contexto de aplicao 27 seus registros atravs do mtodo next()web . Esse mtodo ir retornar false quando chegar ao fim da pesquisa, portanto 4.4.3 Configurar contexto: web.xml 27 ele normalmente utilizado para fazer um loop nos registros como no exemplo a seguir: 4.4.4 Ativar contexto 29 pega contexto a conexo e o Statement 4.4.5 // Testar 29 Connection = ConnectionFactory.getConnection(); 4.5 Bibliotecascon Servlet 29 PreparedStatement stmt = con.prepareStatement("select * from contatos"); 4.6 Testar seus servlets 30 4.7 Testar seus JSPs 31 // executa um select 4.8 Logs 31 ResultSet rs = stmt.executeQuery(); 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

14 1 10

Java Java WEB WEB

// itera no ResultSet Sumrio

1 8 1.1 8 1.2 8 1.2.1 java.sql.DriverManager 8 1.3 Fbrica de o Conexes 9, Para retornar valor de uma coluna no banco de dados basta chamar um dos mtodos get do ResultSet 1.4 os quais, Criar de Dados e Tabelas 10 dentre o Banco mais comum: getString() . 1.5 Classes Javabeans Entidades 10 // pega a conexo e o Statement 1.6 Inserindo Dados 11 Connection = ConnectionFactory.getConnection(); 1.7 Fechando acon Conexo 12 PreparedStatement stmt = con.prepareStatement("select * from contatos"); 1.8 PreparedStatement ou Statement 12 1.9 Patterns 13 // Design executa um select 1.9.1 ResultSet DAO Data Object 13 rsAccess = stmt.executeQuery(); 1.9.2 Pesquisando 14 // itera no ResultSet 1.9.3 Recurso avaando: O Cursor 15 while (rs.next()) { 1.9.4 Alterao 16 System.out.println(rs.getString("nome") + " :: " + rs.getString("email")); 1.9.5 } Excluso 16 2 Introduo a Java Enterprise Edition 17 stmt.close(); con.close(); 2.1 Porque Java EE tem sido to utilizado? 17 2.2 O que Java Enterprise Edition? 18 2.3 A plataforma Java Enterprise Edition 18 1.9.3 avaando: O Cursor 2.3.1 Recurso APIs 19 Assim como o cursor do banco de dados, s possvel mover para o prximo registro. Para permitir um 2.3.2 Continers 19 processo de leitura parade trs necessrio especificar na abertura do ResultSet que tal cursor deve ser utilizado. 2.3.3 Deployment aplicaes 21 Mas, podemos aplicar as idias de DAO e criar um mtodo getLista() no nosso ContatoDAO: 3 novamente, Anlise de arquiteturas 21 3.1 Arquitetura Fsica e Arquitetura Lgica 21 PreparedStatement stmt = this.conexao.prepareStatement( 3.2 Tipos de aplicaes na WEB 21 "select * from contatos"); 3.3 Arquitetura MVC para a Web 21 ResultSet rs = stmt.executeQuery(); 3.4 Vantagens da arquitetura MVC 22 List<Contato> contatos = new ArrayList<Contato>(); 4 Ambiente de desenvolvimento 23 while (rs.next()) { 4.1 Tomcat 23 Contato contato = new Contato(); 4.1.1 Instalar Java JSE SDK (JDK) 24 contato.setNome(rs.getString(nome)); 4.1.2 Qual verso de JDK utilizar 24 contato.setEmail(rs.getString(email)); 4.1.2.1 JAVA_HOME 24 contato.setEndereco(rs.getString(endereco)); 4.2 Instalar Tomcat 25 contatos.add(contato); 4.2.1 } Qual verso de Tomcat utilizar 25 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 rs.close(); [Windows] Tomcat como servio 25 stmt.close(); 4.2.2.2 return Tomcat como processo 26 contatos; 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 Crie o mtodo getLista na classe ContatoDAO. 4.4.1 Estrutura de diretrios 26 4.4.2 public Criar contexto de aplicao web 27 List<Contato> getLista() throws SQLException { 4.4.3 Configurar contexto: web.xml 27 PreparedStatement stmt = (PreparedStatement) this .conexao.prepareStatement 4.4.4 Ativar contexto 29 ("select 4.4.5 Testar contexto * from contatos"); 29 ResultSet rs = stmt.executeQuery(); 4.5 Bibliotecas Servlet 29 4.6 Testar seus servlets contatos = new ArrayList<Contato>(); 30 List<Contato> 4.7 Testar seus JSPs 31 while (rs.next()) { Contato contato = new Contato(); 4.8 Logs 31 contato.setNome(rs.getString("nome")); 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

while (rs.next()) { } JDBC rs.close(); Banco de Dados Relacional stmt.close(); JDBC Java Database Connectivity con.close();

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

15 1 11

Java WEB

Sumrio 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC Java Database Connectivity java.sql.DriverManager Fbrica de Conexes Criar Banco de Dados e Tabelas Classes Javabeans Entidades Inserindo Dados Fechando a Conexo PreparedStatement ou Statement Design Patterns DAO Data Access Object Pesquisando Recurso avaando: O Cursor Alterao Excluso Introduo a Java Enterprise Edition Porque Java EE tem sido to utilizado? O que Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Continers Deployment de aplicaes Anlise de arquiteturas Arquitetura Fsica e Arquitetura Lgica Tipos de aplicaes na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual verso de JDK utilizar JAVA_HOME Instalar Tomcat Qual verso de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como servio Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretrios Criar contexto de aplicao web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variveis de Ambiente 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 12

Todos os direitos reservados a 3Way Networks

Seja um Profissional Aprendendo com Profissionais www.3way.com.br

Java JavaWEB WEB

Sumrio

1 JDBC 8 } 1.1 Banco de Dados Relacional 8 rs.close(); 1.2 JDBC Java Database Connectivity 8 stmt.close(); return contatos; 1.2.1 java.sql.DriverManager 8 } 1.3 Fbrica de Conexes 9 1.4 Criar Banco de Dados e Tabelas 10 Vamos usarJavabeans o mtodogetLista() 1.5 Classes Entidadesagora para listar todos os contatos do nosso banco de dados. Crie uma 10 classe chamada TestaListaDAO com um mtodo main : Crie um ContatoDAO: 1.6 Inserindo Dados 11 1.7 Fechando a Conexo 12 ContatoDAO dao = new ContatoDAO(); 1.8 PreparedStatement ou Statement 12 1.9 Design Patterns 13 Liste os contatos com o DAO: 1.9.1 DAO Data Access Object 13 1.9.2 List<Contato> Pesquisando contatos = dao.getLista(); 14 1.9.3 Recurso avaando: O Cursor 15 1.9.4 Itere Alterao 16 nessa lista e imprima as informaes dos contatos: 1.9.5 Excluso 16 2 a Java Enterprise Edition 17 forIntroduo (Contato contato : contatos) { System.out.println("Nome: 2.1 Porque Java EE tem sido to utilizado? " + contato.getNome()); 17 System.out.println("Email: " + contato.getEmail()); 2.2 O que Java Enterprise Edition? 18 System.out.println("Endereo: " + contato.getEndereco() + "\n"); 2.3 A plataforma Java Enterprise Edition 18 } 2.3.1 APIs 19 2.3.2 Continers 19 1.9.4 Alterao 2.3.3 Deployment de aplicaes 21 Agora que voc j sabe usar o PreparedStatement para executar qualquer tipo de cdigo SQL e ResultSet 3 Anlise de arquiteturas 21 para receber os dados retornados da sua pesquisa fica simples, porm maante, escrever o cdigo de diferentes 3.1 Arquitetura Fsica e Arquitetura Lgica 21 mtodos de uma classe tpica de Dao. 3.2 Tipos de aplicaes na WEB 21 Veja primeiro o mtodo altera, que recebe um contato cujos valores devem ser alterados: 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens arquitetura MVC contato) throws SQLException { 22 public void da altera(Contato 4 Ambiente de desenvolvimento 23 PreparedStatement stmt = (PreparedStatement) connection.prepareStatement( 4.1 Tomcat 23 contatos set nome=?, email=?, endereco=? where id=?"); 4.1.1 Instalar Java"update JSE SDK (JDK) 24 stmt.setString(1, 4.1.2 Qual verso de JDK utilizar contato.getNome()); 24 stmt.setString(2, contato.getEmail()); 4.1.2.1 JAVA_HOME 24 stmt.setString(3, contato.getEndereco()); 4.2 Instalar Tomcat 25 stmt.setLong(4, contato.getId()); 4.2.1 Qual verso de Tomcat utilizar 25 stmt.execute(); stmt.close(); 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 } [Windows] Tomcat como servio 25 4.2.2.2 Tomcat como processo 26 1.9.5 Excluso 4.3 Testar Tomcat 26 NoCriar existe nada dede novo nas linhas acima. Uma execuo de query! Simples, no? 4.4 contexto desenvolvimento 26 o cdigo para remoo: comea com uma query baseada em um contato, mas usa somente o id dele 4.4.1 Agora Estrutura de diretrios 26 para executar a query do tipo delete : 4.4.2 Criar contexto de aplicao web 27 4.4.3 Configurar contexto: web.xml 27 public void remove(Contato contato) throws SQLException { 4.4.4 Ativar contexto 29 PreparedStatement stmt = (PreparedStatement) 4.4.5 Testar contexto 29 Connection.prepareStatement("delete from contatos where id=?"); 4.5 Bibliotecas Servlet 29 stmt.setLong(1, contato.getId()); stmt.execute(); 4.6 Testar seus servlets 30 stmt.close(); 4.7 Testar seus JSPs 31 } 4.8 Logs 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

contato.setEmail(rs.getString("email")); contato.setEndereco(rs.getString("endereco")); contatos.add(contato);

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

16 1 13

Java JavaWEB WEB

Sumrio 2 Introduo a Java Enterprise Edition 1 JDBC 2.1 Porque Java EE tem sido to utilizado? 1.1 Banco de Dados Relacional Alm de ter uma vantagem numrica, pois no elimina parte do 1.2 JDBC Java Database Connectivity mercado que usa um sistema operacional especfico, tambm aumenta a 1.2.1 java.sql.DriverManager integrabilidade da aplicao, ou seja, permite que s empresas integrem os 1.3 Fbrica de Conexes sistemas que esto rodando em diferentes 1.4 Criar Banco de Dados e Tabelas plataformas, como por exemplo o sistema Web, os sistemas que nos MainFrames, os sistemas que so 1.5 Classes Javabeans esto Entidades executados na mquina do usurio. 1.6 Inserindo Dados EstaFechando uma agrande vantagem para grandes corporaes que 1.7 Conexo 1.8 PreparedStatement ou de Statement enfrentam a batalha da integrao sistemas. 1.9 Design Patterns Outro fator fundamental no sucesso da plataforma a participao 1.9.1 DAO Data Access Object de grandes empresas na especificao das APIs no Java Community Process, 1.9.2 Pesquisando como Oracle, IBM, Apple , que O atuam no s na especificao, mas tambm 1.9.3 Recurso avaando: Cursor no desenvolvimento de produtos como Continers, IDEs, frameworks, que 1.9.4 Alterao agregam ainda mais confiabilidade a tecnologia. 1.9.5 assim Excluso 2 Introduo a Java Enterprise Edition Certamente a existncia de diversos Continers Open-Source e/ou 2.1 Porque Java EE tem sido to utilizado? Gratuitos, tambm colabora com o alto ndice de adoo da tecnologia. 2.2 O que Java Enterprise Edition? Alm destes fatores, elencamos aqui alguns pontos que podem ser 2.3 A plataforma Java Enterprise Edition atingidos com Java EE, considerados fundamentais para a arquitetura dos 2.3.1 APIs sistemas desenvolvidos 2.3.2 Continers atualmente:

12 13 13 14 15 16 16 17 17 18 18 19 19 2.3.3 Deployment de aplicaes 21 Escalabilidade 3 Anlise de arquiteturas 21 Trata-se de umFsica dos e ades da engenharia e 3.1 Arquitetura Arquitetura Lgica de software que pertence nova economia globalizada21 3.2 Tipos de aplicaes na WEB 21 conectada. Uma campanha de marketing pode fazer com que uma pequena empresa cresa de forma abrupta do 3.3para a noite. Arquitetura MVC para asua Web 21 dia necessrio que a soluo seja capaz de acompanhar o crescimento do negcio. 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 Disponibilidade 4.1 Tomcat 23 Com uma linguagem e plataforma confiveis, podemos contar com sistemas que rodam simultaneamente 4.1.1 Instalar Java JSE SDK (JDK) 24 em mais de Qual um servidor para preveno 4.1.2 verso de JDK utilizar de falhas. Sistemas conhecidos como cluster de servidores permitem que 24 aplicativos fiquem distribudos e prova de falha no data-center hospedeiro. 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 4.2.1 Qual verso de Tomcat utilizar 25 Performance 4.2.2 Quando Iniciar parar o Tomcat 25 oe assunto computao distribuda, Java tem uma performance muito boa em comparao a 4.2.2.1 [Windows] Tomcat como servio 25 outras tecnologias. Podemos dizer, por exemplo, que Fortran mais rpido que Java para resolver um algoritmo 4.2.2.2 isoladamente, Tomcat como processo 26 complexo mas Java, quando distribudo entre servidores, no possui concorrente. 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 Baixo de manuteno 4.4.1 custo Estrutura de diretrios 26 Cdigo bem escrito, objetos bem definidos e documentados, herana, polimorfismo, interfaces da 4.4.2 Criar contexto de aplicao web 27 orientao a objeto e outros aspectos tcnicos tornam um software simples de ser mantido no decorrer do tempo, 4.4.3 Configurar contexto: web.xml 27 quando bem planejado e escrito em Java. Sabemos que os aplicativos tendem a ter um ciclo de vida cada vez mais 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 duradouro na empresa, por isto o custo de manuteno do software se torna cada vez mais importante. 4.5 Bibliotecas Servlet 29 4.6 Testar seus servlets 30 4.7 Testar seus JSPs 31 4.8 Logs 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Java EE multi-plataforma, 8 ou seja, uma soluo que 8 pode ser utilizada 8 computadores com sistema 8 operacional Unix, com Linux,9 10 com Windows, com Apple e 10 tambm pode ser utilizada11 12 com MainFrames.

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

17 1 14

Java JavaWEB WEB

Sumrio 2.2 O que Java Enterprise Edition? JavaJDBC Enterprise Edition uma plataforma de desenvolvimento de componentes para aplicaes em multi1 8 camada, que disponibiliza uma srie de servios de infra-estrutura de alto nvel , evitando o desenvolvimento de 1.1 Banco de Dados Relacional 8 cdigo os desenvolvedores do negcio em si. 1.2 complexo JDBC e aproximando Java Database Connectivity 8 1.2.1 Algumas java.sql.DriverManager das especificaes de componentes mais importantes da plataforma Java Enterprise Edition so: 8 1.3 Fbrica de Conexes 9 - JavaServer Pages (JSP): utilizadas para criar pginas Web; 1.4 Criar Banco de Dados e Tabelas 10 - Servlets: geralmente utilizado para construir a camada de controle da aplicao, viabilizando a integrao 1.5 Classes Javabeans Entidades 10 entre as pginas JSP e a camada de negcios; 1.6 Inserindo Dados 11 - Enterprise JavaBeans : utilizados para criar componentes distribudos, representando dados ou regras 12 de 1.7 Fechando a Conexo 1.8 PreparedStatement ou Statement 12 negcio. 1.9 Design Patterns 13 1.9.1 Nenhum DAO Data Access Object 13 destes componentes foi idealizado para ser executado diretamente pela mquina virtual, todos 1.9.2 Pesquisando eles devem ser executados e controlados por um Continer especfico como podemos observar na figura abaixo: 14 1.9.3 Recurso avaando: O Cursor 15 1.9.4 Alterao 16 1.9.5 Excluso 16 2 Introduo a Java Enterprise Edition 17 2.1 Porque Java EE tem sido to utilizado? 17 2.2 O que Java Enterprise Edition? 18 2.3 A plataforma Java Enterprise Edition 18 2.3.1 APIs 19 2.3.2 Continers 19 2.3.3 Deployment de aplicaes 21 3 Anlise de arquiteturas 21 3.1 Arquitetura Fsica e Arquitetura Lgica 21 3.2 Tipos de aplicaes na WEB 21 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 4.1.1 Instalar Java JSE SDK (JDK) 24 4.1.2 Qual verso de JDK utilizar Figura 2.1 Java EE servidores e continers 24 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25  Web Continer: hospeda Servlets, ); 4.2.1 Qual verso de Tomcat utilizar JSPs (Java Server Pages) e arquivos estticos (HTMLs, JavaScript, XML 25 qualquer classe Java como, por exemplo, APIs de envio de e-mail ou acesso a banco de dados. 4.2.2 utiliza Iniciar e parar o Tomcat 25  EJB Continer: hospeda Enterprise JavaBeans (EJB) que, por sua vez, tambm pode utilizar uma srie 25 de 4.2.2.1 [Windows] Tomcat como servio APIs Java, tais como envio de e-mail e acesso a banco de dados. 4.2.2.2 Tomcat como processo 26  Database: Representamos aqui um banco de dados, mas poderamos, a partir de uma arquitetura Java EE , 4.3 Testar Tomcat 26 acessar arquivos, sistemas legados, ERPs, fila de mensagens e qualquer outra fonte de dados. 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretrios 26 4.4.2 Criar contexto de aplicao web 27 2.3 A plataforma Java Enterprise Edition 4.4.3 Configurar contexto: web.xml 27 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 Item Descrio 4.5 Bibliotecas Servlet 29 4.6 Testar seus servlets 30 Blueprints Design Padres de codificao e modelagem desenvolvidos por tcnicos altamente 4.7 Testar seus 31 Guidelines for Java EE JSPs capacitados, reunindo em documentos e exemplos de cdigo, as melhores prticas de 4.8 Logs 31 desenvolvimento de aplicao Java EE. 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Seja um Profissional Aprendendo com Profissionais Seja um Profissional Aprendendo com Profissionais www.3way.com.br www.3way.com.br

18 1 15

Java WEB

Sumrio 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC Java Database Connectivity java.sql.DriverManager Fbrica de Conexes Criar Banco de Dados e Tabelas Classes Javabeans Entidades Inserindo Dados Fechando a Conexo PreparedStatement ou Statement Design Patterns DAO Data Access Object Pesquisando Recurso avaando: O Cursor Alterao Excluso Introduo a Java Enterprise Edition Porque Java EE tem sido to utilizado? O que Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Continers Deployment de aplicaes Anlise de arquiteturas Arquitetura Fsica e Arquitetura Lgica Tipos de aplicaes na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual verso de JDK utilizar JAVA_HOME Instalar Tomcat Qual verso de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como servio Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretrios Criar contexto de aplicao web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variveis de Ambiente 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 16

Todos os direitos reservados a 3Way Networks

Seja um Profissional Aprendendo com Profissionais www.3way.com.br

Java JavaWEB WEB

Processo formal de teste de compatibilidade de Application Server Java EE, garantindo a padronizao entre os servidores de diferentes fabricantes. 1 JDBC 8 Reference Implementation A plataforma inclui um servidor chamado de R.I. (Reference Implementation) 1.1 Banco de Dados Relacional 8 1.2 JDBC Java Database Connectivity 8 implementado com 100% das funcionalidades especificadas. Pode ser utilizado para 1.2.1 java.sql.DriverManager 8 validar aplicaes Java EE, sendo 100% gratuito e com cdigo fonte disponvel. 1.3 Fbrica de Conexes 9 APIs Enterprise JavaBeans, Java Servlets API, Java Server Pages, XML e Messaging. 1.4 Criar Banco de Dados e Tabelas 10 1.5 Classes Javabeans Entidades 10 1.6 Inserindo Dados 11 2.3.1 APIs 1.7 Fechando a Conexo 12 O conjunto de APIs Java EE definido, em sua maioria, por interfaces que podem ser empregadas pelos 1.8 PreparedStatement ou Statement 12 desenvolvedores das aplicaes corporativas. Tais APIs possuem vnculos com o ncleo (kernel) do servidor que 1.9 Design Patterns 13 executa voltadas para o Object gerenciamento de recursos e infra-estrutura. 1.9.1 tarefas DAO Data Access 13 1.9.2 Podemos Pesquisando 14 dizer que, ao desenvolvermos aplicaes Java EE atravs do uso de APIs disponibilizadas no Java 1.9.3 Recurso(Reference avaando: O Cursor 15 Enterprise Edition Implementation), elas podem ser executadas nos servidores de aplicaes que 1.9.4 Alterao 16 tenham implementado as especificaes tcnicas dos servidores JAVA EE. 1.9.5 Excluso 16 Contamos com as seguintes APIs na plataforma Java EE: 2 Introduo a Java Enterprise Edition 17 2.1 Porque Java EE tem sido to utilizado? 17 2.2 O que Java Enterprise Edition? 18 API Descrio 2.3 A plataforma Java Enterprise Edition 18 JDBC Extension Extenso da API JDBC. 2.3.1 APIs 19 Enterprise JavaBeans (EJB) Componentes gerenciados pelo EJB Continer , que oferece servios de 2.3.2 Continers 19 transao, multi-threading, persistncia automtica, entre outros para 21 os 2.3.3 Deployment de aplicaes 3 Anlise de arquiteturas componentes. 21 3.1 Servlets Arquitetura Fsica e Arquitetura Lgica frequentemente utilizados para integrao entre as pginas 21 Java Componentes 3.2 Tipos de aplicaes na WEB 21 Web e a camada de negcio. 3.3 Arquitetura MVC para a Web 21 JavaServer Pages (JSP) API utilizada principalmente para construo de pginas dinmicas . 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 Java Message Service (JMS) API para tratamento de mensagens assncronas. 4.1 Tomcat 23 Java API (JTA) 4.1.1Transaction Instalar Java JSE SDK (JDK)API para controle manual de transaes. 24 4.1.2 Qual verso de JDK utilizar 24 JavaMail Utilizada para envio e recebimento de e-mails. 4.1.2.1 JAVA_HOME 24 Java API for XML Processing ( JAXP) Processamento de XML. 4.2 Instalar Tomcat 25 4.2.1 Naming Qual verso Tomcat utilizar 25 Java and de Directory API que oferece acesso a Catlogo de Objetos. 4.2.2 Iniciar e parar o Tomcat 25 Interface ( JNDI) 4.2.2.1 [Windows] Tomcat como servio 25 Java Connector Architecture API que padroniza os conectores para integrao de aplicaes. 4.2.2.2 Tomcat como processo 26 APIs para construo e utilizao de Web Services . Java API for XML Web Services (JAX4.3 Testar Tomcat 26 WS) 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretrios 26 4.4.2 Criar contexto de aplicao web 27 4.4.3 Configurar contexto: web.xml 27 2.3.2 Continers 4.4.4 Continers Ativar contexto 29 so servidores de objetos, tambm chamados de servidores de aplicao que oferecem 4.4.5 Testar contexto 29 servios e infra-estrutura para a execuo de componentes. O conceito de Continer independente da plataforma 4.5 Bibliotecas Servlet 29 Java EE, utilizado em outras linguagens e plataformas. 4.6 Testar seus servlets 30 Existem outros tipos de Continer utilizados em Java, considera-se a seguinte diviso de perfil 31 de 4.7 Testar seus JSPs Continers Java 4.8 Logse Java EE: 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Sumrio Compatibility Test Suite

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

19 1 17

Java JavaWEB WEB

Sumrio Tipo

Descrio / Exemplo

1 JDBCResponsvel pelo ciclo de vida da aplicao, gerenciamento de eventos, bibliotecas, entre outros. 8 Exemplos: 1.1 Banco de Dados Relacional 8 Applet ContinerConnectivity - para painis grficos desenvolvidos com AWT/Swing controlados por browser; 8 1.2 JDBC Java Database Client-side 1.2.1 java.sql.DriverManager 8 Application client Continer aplicaes standalone (AWT/Swing), podendo, opcionalmente, ser 1.3 Fbrica de Conexes 9 por Java Web Start. 1.4 Criardistribudas Banco de Dados e Tabelas 10 1.5 Classes Javabeans Entidades gerencia, alm do ciclo de vida de componentes, recursos e meios de 10 Um Continerserver-side, 1.6 Inserindo Dados 11 acesso. Configuramos no Continer os recursos que desejamos disponibilizar para que nossas 1.7 Fechando a Conexo aplicaes os acessem atravs de APIs de servios, como no caso de um pooling de Conexes12 a 1.8 PreparedStatement ou Statement 12 Banco de Dados. 1.9 Design Patterns 13 Server-side 1.9.1 DAO Data Access Object 13 Exemplos: 1.9.2 Pesquisando 14 Web Continer - para objetos dirigidos por HTTP (Servlets e JSP); 1.9.3 Recurso avaando: O Cursor 15 1.9.4 Alterao 16 EJB Continer - para objetos de negcio server-side. 1.9.5 Excluso 16 2 Introduo a Java Enterprise Edition 17 Alm da definio dassido interfaces na API, Java Enterprise Edition 2.1 Porque Java EE tem to utilizado? 17 tambm especifica como o Continer deve ser, quais recursos ele deve 2.2 O que Java Enterprise Edition? 18 2.3 A plataforma Java Enterprise Edition 18 obrigatoriamente implementar, quais servios ele deve oferecer. Permitindo Aplicaes desenvolvidas de 2.3.1 APIs 19 assim que diversas empresas implementem seus prprios Continers. acordo com a especificao 2.3.2 Continers 19 Veja a seguir uma pequena amostra de empresas e organizaes que podem ser instaladas em 21 2.3.3 Deployment de aplicaes desenvolvem Continers Java EE: 3 Anlise de arquiteturas qualquer Continer. 21 Sun (GlassFish) 3.1 Arquitetura Fsica e Arquitetura Lgica 21 - IBM (WebSphere) 3.2 Tipos de aplicaes na WEB 21 - Oracle (OAS) MVC para a Web 3.3 Arquitetura 21 - BEA Systems (WebLogic) 3.4 Vantagens da arquitetura MVC 22 - Red Hat (JBoss) 4 Ambiente de desenvolvimento 23 Apache (Geronimo) 4.1 Tomcat 23 4.1.1 - Adobe Instalar Java JSE SDK (JDK) 24 (Jrun) 4.1.2 - Borland Qual verso de JDK utilizar 24 (AppSever) 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 A lista completa de empresas licenciadas em Java EE e o teste de 4.2.1 Qual verso de Tomcat utilizar 25 compatibilidade associado pode ser encontrada em http://java.sun.com/j2ee/licensees.html. 4.2.2 Iniciar e parar o Tomcat 25 Como j vimos, a plataforma Java EE est fortemente baseada em Continers, como o foco do nosso curso 4.2.2.1 [Windows] Tomcat como servio 25 o desenvolvimento aplicaes Java para Web, nosso alvo so os Web Continers. Alguns dos servios oferecidos 4.2.2.2 Tomcat de como processo 26 pelos Web Continers so: 4.3 Testar Tomcat 26 - Gerenciamento dos utilizados pelos componentes, como pool de conexes; 4.4 Criar contexto de recursos desenvolvimento 26 do ciclo de vida dos componentes (Servlets, JSPs e Custom Tags); 4.4.1 - Gerenciamento Estrutura de diretrios 26 4.4.2 - Gerenciamento Criar contexto de aplicao 27 de sesses de web usurios; 4.4.3 - Controle Configurar contexto: web.xml 27 de acesso. 4.4.4 Ativar contexto 29 4.4.5 As duas Testar contexto APIs suportadas por um Continer Web so: Java Servlets e Java Server Pages.29 principais A 4.5 Bibliotecas Servlet 29 implementao de referncia de Continer Web o Tomcat. Observe que h alguns servidores que se denominam 4.6 Testar seus servlets 30 compatveis com o JAVA EE, mas que no passaram pelo teste de compatibilidade. Em caso de dvidas, pode-se 4.7 Testar seus JSPs 31 encontrar uma lista dos Continers JAVA EE na seguinte URL: http://java.sun.com/j2ee/compatibility.html 4.8 Logs 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

20 1 18

Java Java WEB WEB

Normalmente a estrutura de diretrios utilizada em desenvolvimento no a mesma estrutura utilizada 1 JDBC 8 dentro do servidor. Alm disto, nos diretrios de desenvolvimento temos os arquivos fonte, enquanto no servidor 1.1 Banco de Dados Relacional 8 temos apenas os arquivos compilados. 1.2 JDBC Java Database Connectivity 8 de mover os arquivos estticos da estrutura de desenvolvimento para o Continer Web, assim 1.2.1 O trabalho java.sql.DriverManager 8 como, o da compilao das classes Java, conhecido como deployment e existem duas opes para a realizao 1.3 Fbrica de Conexes 9 desta um empacotamento WAR para o nosso aplicativo, ou ento, copiar diretamente10 os 1.4 operao. Criar Podemos Banco de gerar Dados e Tabelas arquivos para dentro do Continer, seguindo uma estrutura de diretrios conforme ser apresentada mais adiante 1.5 Classes Javabeans Entidades 10 (deployment aberto ou expandido). 1.6 Inserindo Dados 11 EsteFechando trabalho pode ser feito: 1.7 a Conexo 12 - Manualmente: copiando arquivos e organizando dentro do Continer na estrutura necessria; 1.8 PreparedStatement ouos Statement 12 1.9 Design Patterns 13 - Atravs de ferramentas oferecidas pelo prprio Continer; 1.9.1 - Por DAO Datade Access Object 13 ambiente desenvolvimento (IDE); 1.9.2 - Por Pesquisando 14 ferramentas especficas como Ant e Maven. 1.9.3 Recurso avaando: O Cursor 15 1.9.4 Alterao 16 1.9.5 Excluso 16 3 Anlise de arquiteturas 2 Introduo a Java Enterprise Edition 17 2.1 Porque Java EE tem sido to utilizado? 17 3.1 Arquitetura Fsica e Arquitetura Lgica 2.2 O que Java Enterprise Edition? 18 Os servidores podem todosEdition fisicamente na mesma mquina, apesar de existir a diviso conceitual 18 de 2.3 A plataforma Java estar Enterprise 2.3.1 APIs 19 responsabilidades e processamento, ou podem estar separados fisicamente, cada um em uma mquina separada. 2.3.2 vezes Continers 19 Muitas no necessrio separar os servidores fisicamente, mas a diviso conceitual garante a escalabilidade 2.3.3 Deployment de aplicaes e a flexibilidade da arquitetura, permitindo e facilitando a separao fsica dos servidores no momento em que 21 for 3 Anlise de arquiteturas 21 necessrio. 3.1 Arquitetura Fsica e Arquitetura Lgica 21 3.2 Tipos de aplicaes na WEB 21 3.3 Arquitetura MVC para a Web 21 3.4 Vantagens da arquitetura MVC 22 4 Ambiente de desenvolvimento 23 4.1 Tomcat 23 4.1.1 Instalar Java JSE SDK (JDK) 24 4.1.2 Qual verso de JDK utilizar 24 4.1.2.1 JAVA_HOME 24 4.2 Instalar Tomcat 25 4.2.1 Qual verso de Tomcat utilizar 25 4.2.2 Iniciar e parar o Tomcat 25 4.2.2.1 [Windows] Tomcat como servio 25 4.2.2.2 Tomcat como processo 26 4.3 Testar Tomcat 26 4.4 Criar contexto de desenvolvimento 26 4.4.1 Estrutura de diretrios 26 4.4.2 Criar contexto de aplicao web 27 4.4.3 Configurar contexto: web.xml 27 Figura 3.1 Aplicaes em Camadas 4.4.4 Ativar contexto 29 4.4.5 Testar contexto 29 4.5 Bibliotecas Servlet 29 3.2 Tipos de aplicaes na WEB 4.6 Testar seus servlets 30 4.7 Testar seus JSPs 31 Podemos enquadrar as aplicaes na Web em um dos seguintes tipos: 4.8 Logs 31 4.9 Variveis de Ambiente 32
Todos os direitos reservados a 3Way Networks

Sumrio 2.3.3 Deployment de aplicaes

Seja Sejaum umProfissional ProfissionalAprendendo Aprendendocom comProfissionais Profissionais www.3way.com.br www.3way.com.br

21 1 19

Java WEB

Sumrio 1 1.1 1.2 1.2.1 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 3 3.1 3.2 3.3 3.4 4 4.1 4.1.1 4.1.2 4.1.2.1 4.2 4.2.1 4.2.2 4.2.2.1 4.2.2.2 4.3 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.5 4.6 4.7 4.8 4.9 JDBC Banco de Dados Relacional JDBC Java Database Connectivity java.sql.DriverManager Fbrica de Conexes Criar Banco de Dados e Tabelas Classes Javabeans Entidades Inserindo Dados Fechando a Conexo PreparedStatement ou Statement Design Patterns DAO Data Access Object Pesquisando Recurso avaando: O Cursor Alterao Excluso Introduo a Java Enterprise Edition Porque Java EE tem sido to utilizado? O que Java Enterprise Edition? A plataforma Java Enterprise Edition APIs Continers Deployment de aplicaes Anlise de arquiteturas Arquitetura Fsica e Arquitetura Lgica Tipos de aplicaes na WEB Arquitetura MVC para a Web Vantagens da arquitetura MVC Ambiente de desenvolvimento Tomcat Instalar Java JSE SDK (JDK) Qual verso de JDK utilizar JAVA_HOME Instalar Tomcat Qual verso de Tomcat utilizar Iniciar e parar o Tomcat [Windows] Tomcat como servio Tomcat como processo Testar Tomcat Criar contexto de desenvolvimento Estrutura de diretrios Criar contexto de aplicao web Configurar contexto: web.xml Ativar contexto Testar contexto Bibliotecas Servlet Testar seus servlets Testar seus JSPs Logs Variveis de Ambiente 8 8 8 8 9 10 10 11 12 12 13 13 14 15 16 16 17 17 18 18 19 19 21 21 21 21 21 22 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 29 29 29 30 31 31 32 1 20

Todos os direitos reservados a 3Way Networks

Seja um Profissional Aprendendo com Profissionais www.3way.com.br

Siga-nos tambm no Twitter! twitter.com/3waynet