material java

Upload: joaopaulo36003554

Post on 08-Jul-2015

731 views

Category:

Documents


0 download

TRANSCRIPT

COMPETNCIAS E HABILIDADES: - Conhecer os conceitos das principais linguagens de programao para web. - Conhecer as ferramentas de programao web mais utilizadas no mercado. - Capacitar seleo de Linguagens e ferramentas para serem utilizadas em um projeto web. - Conhecer a linguagem de programao Java. - Configurar um ambiente de programao Java. - Conhecer a IDE Eclipse para desenvolver aplicaes web em Java. - Acessar banco de dados atravs da API JDBC. - Manipular JSP e Servers. -Desenvolver uma aplicao Web em Java utilizando banco de dados. Contedo Programtico: UNIDADE I: o Conhecendo a famlia Java o Apresentao da IDE Eclipse para desenvolvimento Java o Lingugem Java Apresentao da linguagem e orientao objeto bsica (Classe, Objeto, atributos de acesso e ArrayList ). o Classe e Objetos e atributos de acesso o ArrayList o Polimorfismo e herana. o Controle de Erro UNIDADE II: o JDBC - java.sql - acesso a banco de dados (MYSQL) o o o Conceitos bsicos sobre Java EE Servlet Containers e o Apache Tomcat Configurando o Eclipse Europa para desenvolvimento WEB

o Principais TAGs HTML o o JSP Java Server Pages Padro DAO Data Access Object

o

Construindo um projeto web passo a passo utilizando JSP, DAO e MYSQL

o Conhecendo alguns frameworks Hibernate e JFS. o Apresentao de outras linguagens de programao para web DotNet, PHP, Ruby. Bibliografia Bsica: 1. Kurniawan, Bubi. Java para Web com Servlest, JSP e EJB. Cincia Moderna, 2002. 2. Basha, Jeelani. Professional Java Web services. Wrox Press, 2002. 3. Deitel. Java TM : como programar. 6 Ed. Pearson Prentice Hall, 2007. Bibliografia complementar: 4. Shepherd, George. Microsoft ASP.NET 2.0: passo a passo. Bookman, 2007. 5. Marcondes, Christian. HTML 4.0 fundamental: a base da programao para web. rica, 2005.

UNIDADE I:

Nessa unidade iremos conhecer um pouco sobre a famlia Java, suas funes e reas de atuao de um desenvolvedor. Vamos estudar a linguagem de programao Java, nos aperfeioando no paradigma Orientao Objeto Classes, objetos, atributos de acesso e ArrayList (vetores de objetos), e manipular uma IDE de programao muito utilizada no mercado, que o Eclipse. Ao finalizar essa unidade, vamos conhecer as reas de programao da famlia Java, estando aptos para discutir sobre qual caminho devemos seguir nessa tecnologia. De igual forma, poderemos desenvolver pequenas aplicaes utilizando a linguagem Java e a IDE Eclipse.

1. Conhecendo a famlia Java

Java uma linguagem de programao orientada a objeto desenvolvida e mantida pela Sun (HTTP://www.sun.com); uma linguagem free, multiplataforma e uma das linguagens mais utilizadas no Brasil e no mundo. Por este motivo, existem vrias comunidades brasileiras que compartilham materiais, discutem temas e dvidas sobre Java em fruns - os mais acessados so: http://www.Guj.com.br, http://www.javafree.org/. Sempre que possvel, vamos acessar esses fruns, pois neles encontramos solues para problemas que acabam acontecendo com freqncia, quando estamos estudando um novo paradigma. Com Java, podemos desenvolver para diversas reas, como para: Desktop (sistemas que so executados na mquina local), WEB e sistemas que acessam aplicativos mveis, p.ex. celular, palm, pocket. Para desenvolvimento Desktop no Java, temos o J2SE Java Standard Edition, que onde existem todas as bibliotecas necessrias para o desenvolvimento e execuo dos cdigos Java. Normalmente, quando

desenvolvemos para Desktop em Java, utilizamos Swing (Tollkit), o qual utiliza uma interface (lembra um pouco a guia do Dephi) com alguns componentes que interagem com o usurio.

Para desenvolvimento em multi-camadas e servidores, utilizamos o J2EE Java Enterprise Edition, que possui todas as funcionalidades do J2SE e mais outras bibliotecas para desenvolvimento com banco de dados e sistemas distribudos. Ser nessa parte da famlia Java que desenvolveremos nossas aplicaes WEB com JSP. Para desenvolvimento em dispositivos mveis, utilizamos o J2ME Java Micro editional, que possui uma arquitetura especial com uma srie de APIs Application Programming Interface, a qual possui funes acessveis somente para programao do Java.

Figura 1.1 Ilustra a famlia Java

1.1. Mquina Virtual - JVM

Diferente do Pascal e outras linguagens cujo cdigo fonte compilado para um determinado sistema Operacional, o Java possui uma JVM Java Virtual Machine, que uma camada existente entre o sistema operacional e a aplicao, responsvel pelo gerenciamento dos aplicativos e converso dos bytecodes - cdigo gerado pelo compilador Java em cdigo executvel de mquina. Em virtude dessa mquina virtual, os programas escritos em Java podem ser executados em qualquer plataforma que possua uma verso da JVM; por isso os cdigos Java so independentes de plataforma.

1.2. Instalando Java

Antes de comearmos a estudar sobre a instalao do Java importante destacar que comum errar algum passo da instalao do Java. Por isso, sempre que isso acontecer ou se no entender algo, nunca deixe de entrar em contato com o seu professor. Para desenvolvermos em Java, preciso ter o compilador, sua Mquina virtual e bibliotecas. Para isso, devemos instalar o JDK- Java Development Kit, em que o compilador e as bibliotecas Java so encontrados. Encontramos o JDK no site da Sun, onde deve ser feito o download da verso 1.6, que a mais atual no momento, tambm conhecida como Java SE 6.0. Para download, acesse o seguinte Link:

http://java.sun.com/javase/downloads/index.jsp. Ao acessar o endereo, clique em Get the JDK download; depois, na caixa de checagem (checkBox) Accept e faa a escolha da plataforma Windows. Feito o download, s executar o arquivo baixado e instal-lo. Depois de instalado e devidamente configurado, vamos testar para saber se as configuraes foram concludas com sucesso. Para efetuar o teste, devemos abrir o Prompt de comando do Windows (Iniciar-Programas Acessrios Prompt de comando), digitar Java version e clicar na tecla enter (nesse processo, ir

aparecer, no console, qual a verso do Java que est instalado em sua mquina).

Figura 1.2 Ilustra a verso do Java

2. Apresentao da IDE Eclipse para desenvolvimento Java

Existem vrias IDEs de programao Java: JBuilder, NetBeans, JDEV, Eclipse e outros. Nesse curso, iremos abordar o Eclipse, que alm de gratuita, IDE lder no mercado. O eclipse foi desenvolvido pela IBM e depois liberada para as comunidades, as quais fazem melhoras na ferramenta e constroem plugins que auxiliam no nosso desenvolvimento. Podemos encontrar essa ferramenta no endereo

www.eclipse.org. Para fazer o download da verso do Windows, escolha o link download e a verso Eclipse for J2EE ou a verso mais completa do eclipse, que, na atualidade, a 3.3.3.1. Para usar o eclipse, basta descompact-lo em um diretrio desejado e executar o arquivo eclipse.exe. Ao iniciar o eclipse, podemos escolher onde ficar nosso workspace (diretrio de todos nossos projetos).

Figura 2.1 Ilustra o workspace do eclipse

Quando acessamos o eclipse, aparece uma tela de bem vindo, que chamada de view Welcome. Quando fechamos essa tela, estamos no WorkBench, que a interface onde vamos criar nossos projetos Java no eclipse. O eclipse dividido em vrias partes: Barra de ttulo, ferramentas, perspectiva, menu, status, painel do editor e views. Barra de ttulo: Exibe a perspectiva atual. Barra de Ferramenta: a barra onde encontraremos vrios plugins e funcionalidades do eclipse. Barra de perspectiva: Exibir qual ambiente o usurio est no momento. Barra de menu: Barra geral do Eclipse, em que podemos encontrar todas as tarefas do eclipse. Barra de status: Exibe informaes do item que estiver selecionado no momento. Painel do editor: Ambiente onde podemos editar e construir nossos cdigos fontes. Views: Exibe os grupos de objetos selecionados e existentes nos nossos projetos. Para certificar que o Eclipse esteja funcionado de maneira correta, vamos criar um projeto chamado HelloWorld, seguido os passos a seguir: Clique em File New Project JavaProject

Crie o projeto Java, o mesmo ficar no diretrio do workspace criado anteriormente.

Clique em Finish O projeto deve ficar igual imagem abaixo

Clique com o boto direto do mouse e escolha a opo new class

Coloque o nome da classe HelloWorld e clique na caixa de checagem public static void main (String[] args), j que nossa

classe ser principal. Esse assunto ser melhor explicado mais adiante.

Clique em finish e coloque o cdigo abaixo.

public class HelloWorld { public static void main(String[] args) { System.out.println("Ol Mundo"); } }

Para executar, s clicar com o boto direto em cima da classe e escolher a opo Run as Java Application.

Aparecer no console a mensagem:

No decorrer do curso, vamos aprender mais algumas funcionalidades do eclipse.

3. Lingugem Java Apresentao da linguagem e orientao objeto bsica (Classe, Objeto, atributos de acesso e ArrayList ). Nesse tpico, iremos aprender a sintaxe bsica do Java: Informaes bsicas do Java Declarao e controle de varveis Operadores Controles condicionais Instrues de Laos

3.1. Informaes bsicas do Java

Quando estamos desenvolvendo para desktop, os cdigos devem comear no mtodo main, que , e sempre ser, o primeiro mtodo a ser executado. Esse mtodo tem um padro a ser seguido:

public static void main (String[] args) { } Entre as chaves que iremos iniciar com os cdigos Java, a primeira ({) indica o incio do mtodo e a segunda (}) o fim. Depois da maioria das instrues Java, deve ser colocado ponto-e-vrgula para informar a finalizao de uma linha de cdigo.

System.out.println(Hello World);

Tambm pode ser feito comentrio em Java atravs das formas:

// Comentrio em Java /* Comentrio em Java 1 Comentrio em Java 2 Comentrio em Java 3 */

3.2. Declarao e controle de varveis

As variveis em Java podem ser declaradas a qualquer momento do cdigo fonte. Toda varivel tem um tipo que no pode ser mudado uma vez declarado. A sintaxe para declarao de variveis a seguinte:

TipoDaVaravel NomeDaVarivel;

As variveis mais conhecidas so int, Double, char, boolean. Seguem alguns cdigos desses tipos de variveis:

public class ExemploJava { public static void main(String[] args) { int num; num = 5; num = 5 + 4; System.out.println(num); } }

Lembrar que Java uma linguagem Case Sensitive, isto , a varivel dever ser chamada exatamente da mesma forma que foi escrita. Caso seja declarada uma varivel com letra maiscula, essa varivel dever ser chamada com letra maiscula.

3.3. Operadores

Em Java, h um conjunto de tipos de operadores aritmticos, relacionais e lgicos.

Operadores + * / ++ -Tabela 3.1 Ilustra os operadores aritmticosPublic class ExemploJava {

Significado Soma Subtrao Multiplicao Diviso Incrementa uma varivel Decrementa uma varivel

public static void main(String[] args) { int num; num = 5 + 5; num ++; System.out.println(num); } }

Operadores == != > >= < = 5){ System.out.println("num maior ou igual a cinco"); } } }

Operadores &&

Significado E lgico (and)

! || Tabela 3.3 Ilustra os operadores Lgicos

No (negao) Ou Lgico (or)

public class ExemploJava { public static void main(String[] args) { int num; num = 5; if ((num >= 5) && (num < 10)) { //Concatenao de strings, devido a quebra de linha System.out.println("num maior ou igual a cinco e "+ "menor que dez"); } } }

3.4.Controles condicionais

As estruturas de controle funcionam como a maioria das linguagens de programao, mas com algumas modificaes na sua sintaxe. Nesse tipo de estrutura, podemos utilizar alguns operadores e sua sintaxe a que segue:

if (condio){ cdigo }

Podemos tambm utilizar a clausula else:

public class ExemploJava { public static void main(String[] args) { int num; num = 11; if ((num >= 5) && (num < 10)) { //Concatenao de strings, devido a quebra de linha System.out.println("num maior ou igual a cinco e "+ "menor que dez"); }else{ System.out.println("num no est entre dez e cinco"); } } }

public class ExemploJava { public static void main(String[] args) { int num;

num = 11; boolean ok = true; if (!ok) { System.out.println("Varivel boleana false"); } else if ((ok) || (num > 10)) { System.out .println("Varivel boleana true ou num maior que dez"); } } }

Existe a estrutura switch, que tambm conhecida como case. muito utilizada em seqncias de testes:

switch (key) { case value: break; default: break; }

public class ExemploJava { public static void main(String[] args) { int num; num = 111; switch (num) { case 5: System.out.println("Num igual a cinco"); break; case 1: System.out.println("Num igual a um"); break; case 100: System.out.println("Num igual a cem"); break; case 11: System.out.println("Num igual a onze"); break; default: System.out.println("Num diferente de todos " + "valores anteriores"); break; } } }

3.5.Instrues de Laos

Os Laos mais utilizados em Java so o For e While, sendo que o funcionamento o mesmo das outras linguagens que conhecemos, a sintaxe, contudo, muda um pouco: No caso do For.for (inicializao;condio;incremento) { cdigo }

public class ExemploJava { public static void main(String[] args) { for (int i = 0; i < 10; i++) { System.out.println(i); } } }

No caso do While.while (condio) { cdigo }

public class ExemploJava { public static void main(String[] args) { int num = 0; while (num < 10) { System.out.println(num); num++; } } }

3.6. Mtodo

Mtodos em Java so similares a funes e procedimentos em Pascal. Crie uma classe chamada ExemplosMetodos e adicione o mtodo principal.

public class ExemplosMetodos { void primeiroMetodo() { System.out.println("Mtodo sem parmetro e sem retorno"); } String segundoMetodo() { System.out.println("Mtodo sem parmetro e com retorno"); return "fabio";

} String terceitoMetodo(String nome, String sobreNome) { System.out.println("Mtodo com parmetro e com retorno"); return nome + " " + sobreNome; } public static void main(String[] args) { //Instanciando a classe ExemplosMetodos exMet = new ExemplosMetodos(); //Fazendo chamada dos mtodos exMet.primeiroMetodo(); System.out.println(exMet.segundoMetodo()); System.out.println(exMet.terceitoMetodo("Fbio", "Coriolano")); } }

3.7. TypeCast

Em Java, existe converso de valores; por enquanto, sero exibidos exemplos mais simples, mas, no decorrer do curso, veremos exemplos mais complexos. String para int -> Integer.parseInt(String s) String para float -> Float.parseFloat(String s) int ou float para String -> String.valueOf(int i) ou String.valueOf(float f)

public class typeCast{ public static void main(String[] args) { String num = "1"; String num2 = "2"; //Concatenando strings System.out.println(num + num2); //Convertendo de string para inteiro (Soma) System.out.println(Integer.parseInt(num) + Integer.parseInt(num2)); int x = 523; //Transformando de inteiro para String String y = String.valueOf(x); } }

Exerccios de fixao

Escreva um programa que leia dois nmeros e calcule a soma e o produto entre eles, a subtrao e a diviso do primeiro valor com o segundo. Sobre o salrio bruto de um funcionrio so descontados 8% de INSS, 10% de IR (imposto de renda) e sobre o restante, 0,5% referente filiao sindical. Escreva um programa que retorne o salrio lquido do funcionrio. Faa um programa que calcule o valor de um nmero Fatorial (Exemplo: 5! = 5x4x3x2x1 = 120) Faa um programa que imprima no console todos os nmeros mltiplos de trs e cinco que seja menor que duzentos e maior que cem. Desenvolva os seguintes mtodos e faa chamada: o float soma (float num1,float num2) {} o float subtrao (float num1,float num2) {}o o float diviso (float num1,float num2){} float multiplicao (float num1,float num2) {}

Obs.: Para fazer chamada dos mtodos dentro do mtodo principal a classe tem que ser instanciada. (Verifique o item 3.6 do nosso material - Mtodo) 4. Classe e Objetos e atributos de acesso (Orientao Objeto Bsica)

Programao orientada a objeto tem por finalidade definir os objetos dentro de certo domnio, junto com sua finalidade e seu comportamento. As caractersticas destes objetos vo determinar os procedimentos que se aplicaro a eles durante a execuo do programa OO, por essa razo uma classe chamada de frma, e atravs dela, iremos criar vrios objetos com atributos iguais, mas de caractersticas diferentes. Objetos so conjuntos de dados genricos com funes bem definidas; essas funes e dados so encapsulados pelo objeto de maneira a expor somente o que for necessrio a outros objetos. Uma classe uma frma que descreve de forma genrica grupos de objetos com caractersticas similares. Uma instncia de classe um objeto real. A classe representa a descrio genrica de um objeto, enquanto uma instncia uma representao concreta deste objeto.

CarroMarca Cor Ano KM

instancia objetos

Carro do FbioMarca: Ferrari Cor: Preto Ano: 2005 KM: 3000

Carro do JoaoMarca: Corsa Cor: Azul Ano: 2000 KM: 50000

Carro da MariaMarca: Fusca Cor: branco Ano: 1989 KM: 500000

classe

objetos

Imagem 4.1 Ilustra vrias instancias de uma classe

Uma classe possui atributos e mtodos (procedimento e funes). Os atributos descrevem as caractersticas dos objetos que sero criados e so identificados por um nome e um tipo. Os mtodos definem as funcionalidades do objeto. Existem tambm os modificados de visibilidade que podem ser usados tanto nos atributos, como nos mtodos. Os mais conhecidos so: Public: Pode ser acessado por qualquer outro objeto. Private: No pode ser acessado por nenhum outro objeto. Protected: Poder ser acessado somente por objetos que forem herdados pela mesma classe. Vamos desenvolver nossa classe Java seguindo os passos abaixo: Crie um projeto no eclipse com os nome de PrjCarro. Crie uma classe principal chamada de appCarro. Clique com o boto direito do mouse em cima do projeto e depois escolha a opo new - class. (lembrar de clicar na caixa de checagem public static void main (String[] args))

Crie uma classe com o nome Carro e adicione os atributos: modelo, cor e motorLigado.

public class carro { String modelo; String cor; boolean motorLigado; }

Ainda na classe carro, ser criado um mtodo que se chama mostraAtributos, que serve para exibir no console o valor de cada atributo. Esse mtodo ser criado com void, pois no possui retorno (serio o procedimento do pascal).

public class carro { String modelo; String cor; boolean motorLigado; public void mostreAtributos(){ System.out.println("O dono do carro : "+ dono); System.out.println("O modelo do carro : "+ modelo); System.out.println("A cor do carro : "+ cor); if (motorLigado){ System.out.println("O motor do carro est ligado"); }else{ System.out.println("O motor do carro est "+ "desligado"); } System.out.println("---------------------------------"); } }

Na classe principal, vamos criar instncias de vrios carros com a mesma forma. Para desenvolvermos com mais eficincia, vamos utilizar a combinao do teclado Ctrl + Space, para obtermos a lista de possveis cdigos.

public class appCarro {

public static void main(String[] args) { //Criando uma instancia de um carro Carro carFabio = new Carro(); //setando os atributos carFabio.dono = "Fbio"; carFabio.modelo = "Ferrari"; carFabio.cor = "preto"; carFabio.motorLigado = false;

Carro carJoao = new Carro(); carJoao.dono = "Joo"; carJoao.modelo = "corsa"; carJoao.cor = "azul"; carJoao.motorLigado = false; Carro carMaria = new Carro(); carMaria.dono = "Maria"; carMaria.modelo = "fusca"; carMaria.cor = "branco"; carMaria.motorLigado = true; carJoao.mostreAtributos(); carMaria.mostreAtributos(); carFabio.mostreAtributos(); } }

Na programao orientada a objeto, no intuito de organizar os atributos, so criados mtodos de acesso, que so os gets e sets. Utilizaremos o exemplo anterior e colocaremos os atributos como private (s a classe que o atributo pertence tem acesso ao ele) e adicionaremos os gets e sets para cada atributo. Para criar os gets e sets no eclipse basta clicar no boto direto do mouse dentro do cdigo da classe desejada e clicar na opo Source Generate Getters and Setters. Depois s selecionar os atributos desejados e clicar em OK.

Imagem 4.1 Ilustra como adicionar os gets e sets de forma automtica.

Na classe carro, sero feitas as seguintes alteraes.

public class Carro { private private private private String dono; String modelo; String cor; boolean motorLigado;

public void mostreAtributos(){ System.out.println("O dono do carro : "+ dono); System.out.println("O modelo do carro : "+ modelo); System.out.println("A cor do carro : "+ cor); if (motorLigado){ System.out.println("O motor do carro est ligado"); }else{ System.out.println("O motor do carro est " + "desligado"); } System.out.println("-------------------------------"); }

public String getDono() { return dono; }

public void setDono(String dono) { this.dono = dono; }

public String getModelo() { return modelo; }

public void setModelo(String modelo) { this.modelo = modelo; }

public String getCor() { return cor; }

public void setCor(String cor) { this.cor = cor; }

public boolean isMotorLigado() { return motorLigado; }

public void setMotorLigado(boolean motorLigado) { this.motorLigado = motorLigado; } }

Na classe appCarro, os atributos dos objetos do tipo Carro s sero acessados atravs dos gets e sets.

public class appCarro {

public static void main(String[] args) { //Criando uma instancia de um carro Carro carFabio = new Carro(); //setando os atributos carFabio.setDono("Fbio"); carFabio.setModelo("fiesta") ; carFabio.setCor("preto"); carFabio.setMotorLigado(false); Carro carJoao = new Carro(); carJoao.setDono("Joo"); carJoao.setModelo("corsa"); carJoao.setCor("azul"); carJoao.setMotorLigado(false);

Carro carMaria = new Carro(); carMaria.setDono("Maria"); carMaria.setModelo("fusca"); carMaria.setCor("branco"); carMaria.setMotorLigado(true); //Fazendo chamada dos mtodos mostra Atributos carJoao.mostreAtributos(); carMaria.mostreAtributos(); carFabio.mostreAtributos(); } }

Exerccio de fixao Crie uma classe chamada Aluno como ilustra a tabela. Atributos Nome Sexo Idade Curso Numero da Matcula Crie uma classe com o mtodo principal, instancie trs alunos e faa chamado do seu mtodo mostreAtributos(). Mtodos Todos os gets e stes mostreAtributos()

4.1. Ler do Teclado

Ler uma determinada instruo do teclado em Java pode ser realizado de vrias maneiras. Aqui iremos utilizar o jOptionPane.showInputDialog. Para utilizar essa funo, basta colocar uma mensagem para o usurio (o parmetro da funo) e a funo dar um retorno, que a mensagem digitada. Quando utilizarmos o mtodo JOptionPane, necessrio fazer o import do cdigo javax.swing.JOptionPane , pois atravs dele que o Java ir encontrar a funo. Caso no consiga fazer o import dessa funo, acione a tecla Ctrl + O (ir importar todas as funes da classe) ou utilize Ctrl + Space em cima do cdigo que deseja ser importado.

import javax.swing.JOptionPane;

public class LerDoTeclado {

public static void main(String[] args) { String nome; nome = JOptionPane .showInputDialog("Entre com o nome"); System.out.println(nome); } }

5. Herana.

Herana uma estrutura que permite que caractersticas comuns entre classes sejam compartilhadas a partir de uma superclasse (Classe Pai). Atravs de uma classe base, outras subclasses iro herdar suas caractersticas (atributos e mtodos).

Classe A Classe B Classe CImagem 5.1 Ilustra uma herana de classes.

Classe D

Classe E

A imagem 5.1 ilustra o seguinte mecanismo: Classe A super-classe de B Classe B subclasse de A Classe B super-classe de C, D, e E Classes C, D, e E so subclasses de B

Para entendermos melhor a herana, vamos desenvolver o exemplo a seguir:

Veculo

Motorizado

N_Motorizado

Moto

Carro

Bicicleta

Patins

Crie um novo Projeto no eclipse chamado PrjVeiculo. Crie uma classe chamada veculo com os atributos: String tipoDoVeiculo; String modelo; String cor. Gere seus gets e sets. Crie o mtodo void mostreAtributos(). Esse mtodo imprime no console o valor de todos os atributos da classe.

public class Veiculo private String private String private String

{ tipoDoVeiculo; modelo; cor;

public String getTipoDoVeiculo() { return tipoDoVeiculo; } public void setTipoDoVeiculo(String tipoDoVeiculo) { this.tipoDoVeiculo = tipoDoVeiculo; } public String getModelo() { return modelo; } public void setModelo(String modelo) { this.modelo = modelo; } public String getCor() { return cor; } public void setCor(String cor) { this.cor = cor; }

public void mostreAtributos() { System.out.println("O veiculo " + tipoDoVeiculo + " do "+ "modelo " + modelo + " e da cor " + cor); } }

Crie uma classe chamada Motorizado, que herda de veiculo.

Sintaxe para herana: class Motorizado extends Veiculo{....} Crie o atributo MotorLigado do tipo boolean e gere seus get e set. Crie o mtodo mostreAtributos(), que exibe todas as caractersticas do Objeto do tipo motorizado (inclusive sua herana). Se o motor estiver ligado, dever aparecer no console motor ligado, se no, motor desligado.

public class motorizado extends Veiculo { private boolean motorLigado; public boolean isMotorLigado() { return motorLigado; } public void setMotorLigado(boolean motorLigado) { this.motorLigado = motorLigado; } /** * Exibe todas as caractersticas do veiculo motorizado */ public void mostreAtributos() { //Faz chamada do mtodo mostreAtributos da classe Pai super.mostreAtributos(); if (motorLigado) { System.out.println("Seu motor est ligado"); } else { System.out.println("Seu motor est desligado"); } } }

Obs.: A classe motorizado uma extenso de veculo. Ela um veculo com mais uma caracterstica, que o motorLigado. Como motorizado herda de veculo, a classe motorizado pode acessar todos os mtodos pblicos de veculo. Crie uma classe carro que herda de motorizado Utilize o atributo reEngatada do tipo boolean e gere seu get e set

Crie uma mtodo mostreAtributos, que exibe todas as caractersticas do Objeto do tipo carro(inclusive sua herana). Se a r estiver engatada dever aparecer no console r engatada, se no, normal.

public class Carro extends motorizado { private boolean reEngatada; public boolean isReEngatada() { return reEngatada; } public void setReEngatada(boolean reEngatada) { this.reEngatada = reEngatada; } public void mostreAtributos(){ super.mostreAtributos(); if (isReEngatada()){ System.out.println("Sua r est engatada"); }else{ System.out.println("Sua r est Normal"); } } }

Crie uma classe chamada AppVeiculo com o mtodo principal e crie uma instncia de carro.

6.ArrayList

O ArrayList uma coleo que permite inserir objetos em determinada ordem (normalmente os elementos so encontrados em ordem de insero). O ArrayList membro do List, que uma classe que guarda dados os quais podem ser acessados atravs de ndices. Para criar um ArrayList basta chamar o construtor: ArrayList nome da Lista = new ArrayList(); sempre possvel abstrair a lista atravs da Interface (Define um tipo que descreve o comportamento visvel de uma classe, atravs de assinaturas das suas operaes) List: List mesmaLista = lista; O ArrayList possui dois mtodos add, um que recebe o objeto a ser inserido e o coloca no final da lista e o outro que permite adicionar o elemento em qualquer posio da mesma. O mtodo get(int) retorna o elemento na posio especificada como parmetro, iniciando na posio zero, assim como trabalha uma array comum.

Atravs dele e do mtodo size (retorna o tamanho da array), fica fcil percorrer uma ArrayList. No eclipse, vamos criar um projeto com mtodo principal e fazer um exemplo utilizando ArrayList.

import java.util.ArrayList; public class Listas { public static void main(String[] args) { // Instanciando uma ArrayList ArrayList lista = new ArrayList(); // Adicionando Objetos na lista lista.add("Brasil"); lista.add("Japo"); lista.add("Argentina"); /* Intanciando Listas para poder utilizar o mtodo ListaArray*/ Listas l = new Listas(); // Chamada do mtodo l.listaArray(lista); // Removendo um objeto da lista lista.remove(1); System.out.println("------------"); // Listando todos objetos da array l.listaArray(lista); // Limpando a lista lista.clear(); System.out.println("------------"); // Listando todos objetos da array l.listaArray(lista); } /** * Lista todos objetos de uma ArrayList * @param arg: ArrayList passado por parmetro */ public void listaArray(ArrayList arg){ //Listando todos objetos da lista for (int i = 0; i < arg.size(); i++) { //Retorna o objeto da posio "i" System.out.println(arg.get(i)); } } }

Exerccio de aprendizado Vamos seguir os passos para desenvolvermos um mini-sistema utilizando ArrayList. Defina uma superclasse pessoa, que herdam dela duas subclasses: aluno, professor. Siga os atributos e operaes a seguir e construa suas classes com seus respectivos mtodos.

Pessoa Atributos Nome Sexo Idade Estado Civil Nmero da matrcula Aluno (Pessoa) Atributos Ano de Entrada Ano previsto para sada Bolsista (percentual da bolsa) Operaes Listar Operaes Listar

Professor (Pessoa) Atributos Operaes Quantidade de horas de trabalho na Listar - Mostrar no console o salrio do instituio professor Quanto ganha por hora aula Aplicao AppPessoa Atributos Alunos (ArrayList) Operaes Cadastrar N alunos. (usar ArrayList).

Professores (ArrayList)

Cadastrar N professores. (usar ArrayList). Fazer edio dos Alunos (1 faz a pesquisa de um determinado aluno e depois edita o mesmo) Fazer edio dos Professores (1 faz a pesquisa de um determinado professor e depois edita o mesmo) Listar todos os alunos Listar todos os alunos do sexo Feminino Listar aluno bolsista e o percentual da bolsa Exibir o professor que tem o maior salrio

1 Passo Construa a classe Pessoa. 2 Passo Adicione todos os atributos e seus gets e sets. 3 Passo Construa a classe Aluno que herda de Pessoa. (Lembre de utilizar extends) 4 Passo Adicione todos os atributos e seus gets e sets.

5 Passo Construa o mtodo listar. (Semelhante ao MostaAtributos feito em exerccios anteriores) 6 Passo Construa a classe Professor que herda de Pessoa. (Lembre de utilizar extends) 7 Passo Adicione todos os atributos e seus gets e sets. 8 Passo Construa o mtodo listar. (Semelhante ao MostaAtributos feito em exerccios anteriores) 8 Passo Construa a classe AppPessoa e adicione o mtodo main. 9 Passo Para cada operao da classe AppPessoa desenvolva um mtodo como segue no exemplo.

import java.util.ArrayList; import javax.swing.JOptionPane; public class AppPessoa { public ArrayList alunos; public ArrayList professores; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub AppPessoa pessoa = new AppPessoa(); pessoa.alunos = new ArrayList(); pessoa.professores = new ArrayList(); String op = JOptionPane .showInputDialog("Deseja cadastrar outro aluno s/n"); /* * Comprar String utilize o mtodo equals. Se for igual * retorna true seno flase */ while (op.equals("s")) { /* * Faz chamada do mtodo que retorna um Objeto aluno * e o adiciona no ArrayList */ pessoa.alunos.add(pessoa.cadastrarAluno()); /* Pergunta se o usario deseja cadastrar outro aluno */ op = JOptionPane .showInputDialog("Deseja cadastrar "+ "outro aluno s/n"); } op = JOptionPane.showInputDialog("Deseja editar algum "+ "aluno s/n"); while (op.equals("s")) { /* Faz chamada do mtodo que edita um aluno do ArrayList */ pessoa.editarAluno(); /* Pergunta se o usario deseja editar outro aluno */

op = JOptionPane.showInputDialog("Deseja editar "+ "outro aluno s/n"); } pessoa.listarAluno(); } /** * Lista todos os alunos do ArrayList */ private void listarAluno() { for (int i = 0; i < alunos.size(); i++) { /* * O mtodo get retorna um objeto aluno na posio * "i", com isso chamamos o mtodo listar desse * objeto / alunos.get(i).listar(); } } /** * Fazer edio dos Alunos (1 faz a pesquisa de um determinado * aluno e depois edita o mesmo) * */ private void editarAluno() { int mat = Integer.parseInt(JOptionPane .showInputDialog("Entre com a matrcula do "+ "aluno")); /* Cria objeto aluno */ Aluno aluno = new Aluno(); for (int i = 0; i < alunos.size(); i++) { /* Aluno recebe o aluno do indici "i" da ArrayList */ aluno = alunos.get(i); /* * Se a matricula entrada pelo usurio for igual ao * do aluno da ArrayList e feita a edio */ if (mat == aluno.getNum_mat()) { /* * O segundo parmetro para exibir o valor do * atributo corrente na caixa de texto */ aluno.setAnoDeEntrada(JOptionPane.showInputDialog( "Entre com o ano de entrada", aluno.getAnoDeEntrada())); aluno.setNome(JOptionPane.showInputDialog("Entre com o nome", aluno.getNome())); aluno.setAnoSaida(JOptionPane.showInputDialog("Ano Saida", aluno.getAnoSaida())); aluno.setBolsista(Double.parseDouble(JOptionPane .showInputDialog("Bolsista", aluno.getBolsista()))); aluno.setEstadoCivil(JOptionPane.showInputDialog(

"Entre com o Estado Civil", aluno.getEstadoCivil())); /* Necesrio fazer o typeCast, pois o atributo do tipo inteiro */ aluno.setIdade(Integer.parseInt(JOptionPane.showInputDialog( "Entre com a idade", aluno.getIdade()))); aluno.setNum_mat(Integer.parseInt(JOptionPane.showInputDialog( "Entre com a matrcula", aluno.getNum_mat()))); } } } /** * Cadastrar um aluno * * @return Retorna um aluno */ private Aluno cadastrarAluno() { Aluno aluno = null; // Instancia o aluno aluno = new Aluno(); // Setar seus Atributos aluno.setAnoDeEntrada(JOptionPane .showInputDialog("Entre com o ano de "+ "entrada")); aluno.setNome(JOptionPane.showInputDialog("Entre com o "+ "nome")); aluno.setAnoSaida(JOptionPane.showInputDialog("Ano "+ "Saida")); aluno.setBolsista(Double.parseDouble(JOptionPane .showInputDialog("Bolsista"))); aluno.setEstadoCivil(JOptionPane .showInputDialog("Entre com o Estado Civil")); /* Necessrio fazer o typeCast, pois o atributo do tipo inteiro*/ aluno.setIdade(Integer.parseInt(JOptionPane .showInputDialog("Entre com a idade"))); aluno.setNum_mat(Integer.parseInt(JOptionPane .showInputDialog("Entre com a matrcula"))); return aluno; } }

7. Controle de Erro

Em Java, possvel controlar erro atravs das excees. Podemos proteger o cdigo que est dentro da estrutura Try e caso ocorra alguma exceo, ele automaticamente desviado para clusula catch.import java.util.ArrayList; public class AppExcecao {

public static void main(String[] args) { try { ArrayList lista = new ArrayList(); lista.get(3); } catch (Exception e) { /* Ocorre quando acessado um elemento inexistente */ System.out.println("Erro de "+ "ArrayIndexOutOfBoundsException"); } } }

Exerccio sugerido para atividade extra 1. Nessa questo, iremos desenvolver um mini-sistema de compras. Para isso, definiremos uma superclasse pessoa que herda dela duas subclasses: cliente, funcionrio. Construiremos tambm as classes: Produto, que conter as caractersticas dos produtos da loja; Compra que definir o produto vendido, o cliente que comprou o produto e o funcionrio que efetuou a compra. Siga os atributos e operaes a seguir e construa as classes com seus respectivos mtodos. (Utilize Get e Set para todos os atributos das classes) Pessoa Atributos String nome String sexo Int Codigo *Cada pessoa dever possuir um nico cdigo.

Operaes Listar

Cliente (Pessoa) Atributos Operaes String Profissao Listar Float Descontos String tipoPessoa * O cliente s ter desconto caso o tipoPessoa for Jurdica Funcionrio (Pessoa) Atributos String cargo float salario Produto Atributos Integer codigo float preo String descricao Operaes showProduto(exibe os valores dos atributos da classe) Operaes Listar

String Marca *Descrio: o nome do produto. Por Exemplo: descrio: = Televiso; *Cada produto dever possuir um nico cdigo. Compra Atributos Funcionrio funcionrio; Operaes showCompa (exibe o funcionrio que efetuou a compra, o cliente que comprou o produto, os produtos que foram vendidos e o preo total da compra com desconto)

Cliente cliente; ArrayList Produtos; *Caso o cliente tenha algum desconto, exibir no showCompra o preo total com desconto. *Produtos: conter todos os produtos que forem vendidos por um determinado funcionrio e comprados por um determinado cliente. Aplicao Atributos Operaes ArrayList funcionarios = Cadastrar N funcionrio new ArrayList () ArrayList Cadastrar N Cliente clientes = new ArrayList ArrayList Cadastrar N Compra produtos = new ArrayList () ArrayList Cadastre N Produtos compras= new ArrayList() Listar o funcionrio que possua mais venda (fazer busca pelo cdigo) Listar todos os produtos que foram vendidos por um determinado funcionrio e essa venda tenha sido efetuada com desconto. Listar todos os produtos de uma determinada marca. *S podero ser cadastrados os produtos que estiverem na lista de produto OBS. 1. Faz parte da questo a forma correta de definio de atributos e mtodos nas classes, e o melhor uso possvel do paradigma Orientao Objeto. 2. No se preocupem com a organizao das telas. 3. Utilizem arrays para cadastros. Dica:

Ao cadastrar uma compra faa pesquisa na lista de funcionrios (funcionrio que ir fazer a venda) pelo cdigo e a mesma coisa para o cliente. Ao cadastrar os produtos de um cliente siga os seguintes passos: 1. Crie um mtodo escolheProduto que retorne uma lista de produtos; 2. Dentro do mtodo busque o produto que o cliente deseja pelo seu cdigo;

3. Lembre que s podero ser cadastrados os produtos que estiverem na lista de produtos. Lembre que ser inserido o objeto Cliente, Funcionrio e uma lista de objetos do tipo produto na classe Compra.

UNIDADE II:

Nessa unidade iremos estudar uma parte importante do Java Enterprise Edition, que o Java Server Pages - JSP. Nessa tecnologia podemos desenvolver pginas web com o uso de servidores e banco de dados. No fim dessa unidade sero apresentados conceitos de framework, um pouco mais sobre a J2EE e outras linguagens de desenvolvimento web, tambm, muito utilizadas no mercado. 8. Conceitos bsicos sobre Java Enterprise Edition

O J2EE uma tecnologia que foi criada no fim dos anos noventa (com o lanamento do JDK 1.2) e tem finalidade de desenvolver aplicaes Web integradas corporativamente. Essa parte da famlia Java traz um conjunto de APIs e servios para facilitar o desenvolvimento dessas aplicaes. As APIs a seguir so disponibilizadas pelo Java Enterprise Edition atravs de sua especificao: Javax.transaction: controle de transao para qualquer recurso; Javax.activation: gerncia do uso de recursos e de memria; Javax.sql: mecanismos de persistncia de objetos; Javax.rmi: conexo para sistemas distribudos; Javax.ejb: componentes de negcios distribudos; Javax.security: implementao de segurana e controle de acesso de usurios; Javax.servlet.jsp: desenvolvimento de componentes de controle para aplicaes Web; Javax.mail: desenvolvimento para acesso de e-mails; Javax.xml: desenvolvimento para controle de arquivos XML (Padro para criao de documentos com dados organizados de forma hierrquica);

9. Servlet Containers e o Apache Tomcat

Para que as aplicaes Web funcionem, necessrio um Servlet Containers. O Container o componente responsvel para dar suporte para as API`s de servlet e jsp (assunto ser estudado mais na frente). Atualmente existem diversos no mercado como: Tomcat, JBoss, IBM WebShere e outros. As principais funes de um container so compilar os jsps em tempo de execuo e servir de servidor para aplicaes web. Neste Curso iremos utilizar a verso seis do Tomcat. O download deste Container encontra-se no site http://tomcat.apache.org/. Vamos fazer o download da verso seis na seo downloads. Para instalar o Tomcat, basta descompact-lo e escolher o diretrio de destino. No Eclipse deve ser setado o caminho de origem do Tomcat como os passos abaixo. Clique em Windows Preferences;

Clique em Server - Installed Runtimes; Clique em ADD;

Escolha Apache Tomcat v6.0 e clique em Next;

Sete o caminho do Tomcat em sua mquina e clique em Finish;

10. Criando a primeira aplicao web no Eclipse Europa

Nesse item vamos testar se as configuraes do eclipse foram concludas com xito. Para isso ser criada uma aplicao Hello World: Clique em File New Project;

Escolha a opo Web - Dynamic web project e clique em Next;

Entre com o nome do projeto na caixa de texto Project Name; Escolha as opes Apache Tomcat v6.0 em Target Runtimes e configurations e clique em finish;

O projeto dever ficar da seguinte maneira

Clique em WebContent New File;

Entre com o nome da pgina Web helloWorld.jsp na caixa de texto File name e clique em finish;

No arquivo helloWorld.jsp entre com o cdigo;

Ol Mundo...

Ol Mundo!!!

Para executar, aperte o boto direito do mouse em cima do arquivo helloWorld.jsp e clique em Run As Run on Server.

Caso d algum erro, procure a guia Servers, apague todos os servidores, crie um novo, clicando com o boto direito do mouse e depois clique em New Server; (Alm da guia Servers todo projeto tem uma pasta Servers no Project Explorer)

11. Principais TAGs HTML (HyperText Markup Language)

Para desenvolver para Web, necessrio que o programador conhea algumas Tags HTML, no intuito de a pgina poder interagir com o usurio. Atravs de Tags que inserimos caixas de texto, caixa de checagem, fontes, quebra de linha, tabelas, formulrios, botes e outras marcaes HTML nas pginas Web. Essas marcaes consistem do sinal menor . Uma estrutura bsica de um HTML seria a que segue.

ttulo do documento Corpo da mensagem (imagens, textos, links,..)

Head - Contm informaes sobre o documento e tambm a tag . Body - Tudo que estiver dentro dessa Tag ser exibido na janela principal do documento. Quebra de linha Utiliza a tag
. Pargrafo Utilize a tag . Texto em Negrito Utilize a tag . Texto em Itlico Utilize a tag . Links Utilize a tag anchor .

Utilizando Link

Tabelas Servem para organizar as informaes na pgina. Utilize a tag para criar a tabela e para criar linha para coluna e para cabealho.

Cabealho Clula 1 Cabealho Clula 2 Clula 1 Clula 2

Formulrios So estruturas que permitem que o usurio submeta dados. Utilizamos a tag , a qual contm tambm alguns atributos. o Method: envia dados atravs de Get e Post. O primeiro Passa os valores pela URL, ou seja, podemos ver as variveis passadas na Url da pgina destino definida no campo action. O segundo Passa as variveis de maneira transparente para o usurio. o mtodo mais aconselhvel. o Action: Local onde os dados sero submetidos.

Elementos do form: Input: Tem um atributo type, que pode receber seis tipos diferentes na entrada de dados. Alguns exemplos.

Input text: Senha:
Nome do arquivo:

CheckBox (caixas de checagem): Como o nome j diz, caixa de checagem com inmeras opes.

opo 1
opo 2
opo 3

CompoBox: Lista de opes em uma caixa de texto.

-- escolha -- Um Dois

Image: Adicionar uma imagem no documento.

Imagem

input type="submit|reset|button": Submit, envia dados ao servidor. Reset, limpar o formulrio. Button, usados para fazer chamadas de scripts.

12. JSP Java Server Pages

JSP uma pgina html comum que contm cdigo Java e possui extenso jsp. Vamos criar um jsp. Com a declarao de uma varivel do tipo String.

Para escrever cdigo Java nas pginas, basta escrever entre as tags: . Esse cdigo chamado de scriptlet. Para escrever algo na tela, podemos fazer de duas formas diferentes: Duas formas diferente na hora de imprimir:


Para facilitar o desenvolvimento WEB, a tecnologia JSP disponibiliza conjunto de objetos que podem ser usados dentro de um JSP sem a necessidade de declarao: Session: Define uma referncia do objeto do tipo

javax.servelet.http.HttpSession, que representa a sesso do usurio, onde,

programaticamente, podemos armazenar contedos de dados somente visveis para um usurio. Request: Define uma referncia de objeto do tipo

javax.servelet.http.httpServeletRequest que representa a requisio do usurio, de que, programaticamente, podemos recuperar dados enviados pelo usurio. Response: Define uma referncia de objeto do tipo

javax.servelet.http.HttpServeletResponse, que representa a resposta ao usurio, em que, programaticamente, podemos inserir contedos de texto como resultado do processamento. Application: Define uma referncia de objeto do tipo

javax.servelet.Servelet.Context, que representa o contexto da aplicao, em que, programaticamente, podemos armazenar contedos de dados que sero compartilhados e visveis a todas as sesses da aplicao. Exception: Define uma referncia de objeto do tipo java.lang.throwable, que representa uma exceo e est presente nas pginas de erro. Out: Define uma referncia de objeto do tipo javax.servelet.jsp.JspWriter, que representa a sada do contedo de texto do objeto de resposta(response). Config: Define uma referncia de objeto do tipo

javax.servelet.ServeletConfig, que representa o objeto de configurao do Servelet gerado pelo JSP e pode ser configurado pelo descritor de publicao (deploy) web.xml. pageContext: Define uma referncia de objeto do tipo

javax.servelet.jsp.PageContext, que encapsula os objetos existentes durante uma nica requisio.

Para entendermos melhor os objetos intrnsecos do JSP, vamos analisar o exemplo abaixo de sesso. (Para os exemplos a seguir crie um novo projeto no eclipse e teste cada JSP)

session.jsp (Mais a frente veremos exemplos mais complexas de sesso).

Teste dos objetos intrnsecos do JSP Nova sesso do usurio
Mesma Sesso
Info do Server

As diretivas de compilao () definem informaes que interferem no funcionamento do JSP dentro do WEB Container. Os principais elementos so: Import: Define um conjunto de classes ou pacotes. EX.: Session: Este valor define que o JSP tem acesso a um objeto de sesso. O valor pode ser true (default) ou false Buffer: Define o tamanho do buffer que ser usado para devolver o contedo gerado ao cliente. O valor pode ser none ou nkb e o padro 8 kb. Ex.: buffer=8kb Info: Define uma informao textual para o JSP, geralmente, uma descrio. erroPage: Este atributo indica um outro JSP que ser responsvel por exibir as excees de Runtime deste JSP. Ex.: erroPage=erro.jsp ou erroPage=error/formErrors.jsp IsErroPage: Define que o JSP uma pgina que exibe excees. O valor padro false, porm, quando est em true, significa que o objeto intrnseco exception ser preenchido com uma exceo, se ela acontecer. pageEncoding: Define a pgina de cdigo dos caracteres usados na sada de dados. O padro ISSO-8859-1.

Para entendermos melhor as diretivas de compilao do JSP, vamos analisar os exemplos. Criaremos um index com cabealho, banner e rodap, de forma que seja desenvolvido um cabealho.jsp, que servir de cabealho para index.jsp, o

banner.jsp, que servir de redirecionamento de mensagens e o rodap.jsp, que ser o rodap do index.jsp. index.jsp


cabecalho.jsp Meu Web Site

banner.jsp

rodape.jsp Hora atual :
Tecnologia JSP

Os JSPs podem redirecionar uma requisio para outro componente. Fornecendo mecanismos de navegao atravs de ao. ) Tambm podemos adicionar parmetros no objeto Request. .

Segue exemplo de redirecionamento de requisio e trabalho com navegao, que um menu no qual faz passagem de parmetro para um JSP de controle.

menu.jsp Menu Cadastro
Consulta

controle.jsp

cadastro.jsp Cadastro CADASTRO DO MEU SITE

Menu

consulta.jsp Consulta Consulta DO MEU SITE

Menu

No JSP podemos recuperar um parmetro enviado por formulrios ou URLs. Esse objeto o request.

Segue exemplo de converso de valores em JSP que recupera dados de um formulrio.

conversor.jsp Conversor de moedas Utilizando Scriplet valor:
Taxa:

13. JDBC - java.sql - acesso a banco de dados (MYSQL)

JDBC uma API utilizada para acessar qualquer Sistema Gerenciador de Banco de Dados (SGBD). Com o JDBC, possvel enviar instrues SQL para qualquer SGBD, permitindo que as aplicaes sejam independentes de banco de dados.

Aplicao

JDBC

DriverPostgreSQL

Driver SQL Server

Driver MySql

PostgreSQL

SQL Server

MySql

Imagem 13.1 Ilustra o esquema de uma arquitetura de uma aplicao utilizando JDBC.

Nesse material utilizaremos o MySql como SGBD para nossas aplicaes JSP, porque free e referncia no mercado. Os passos a seguir exibem como encontrar e instalar o MySql e ambiente para modelagem de dados. Faa o download da verso no-install do mysql no site www.mysql.com. Essa verso no precisa instalar. Para iniciar o MySql, s rodar o arquivo mysqld-nt, que se encontra na pasta BIN da verso no-install. Para criar um Diagrama de entidade relacionamento e testar se o MySql est funcionando, devemos fazer o download do DBDesigner no site http://fabforce.net/downloads.php. Instale o DBDesigner e abra o arquivo DBDesigner4.exe. Crie uma conexo no DBDesigner, click em new Database Connection.

No campo Connection Name entre com o nome da conexo; Drive: MySql; HostName: localhost; DataBase Name: test(default do mySql); username: root e password fica vazio.

Clique em NewTable para criar uma tabela na base de dados e entre com os seguintes dados:

Depois de criada a tabela, clique em DataBase synchronisation para que seja concectada com o MySql, a qual adicionada na base de dados.

Para uma aplicao acessar algum SGBD, necessrio que o programador obtenha a API JDBC implementada para determinado SGBD. Para realizar uma conexo, necessrio 4 parmetros: Driver URL classe, que representa o driver do banco; url, que define a localizao do banco, como tambm o

database a ser acessado (semelhante URL de Internet); Usurio Senha usurio para autenticao; senha para reconhecimento do usurio.

No caso do MySql utilizaremos os seguintes parmetros: Driver = com.mysql.jdbc.Driver; URL= jdbc:mysql://localhost/test; Usurio =root;

Senha =; Importe o Driver do banco (MySQL Connector) no projeto que encontraremos para download no prprio site do MySql http://dev.mysql.com/downloads/;

Para importar o Driver: Clique com o boto direito do mouse em cima do projeto, depois properties Java Build Path e, por fim, Add JARS;

Escolha a opo mysql-connector-java-5.0.3-bin.jar e clique OK;

Segue cdigo Java para conectar com o MySql; para testar os cdigos, crie um novo projeto no eclipse, utilizando Console, copie e cole o driver do MySql (mysql-connector-java-5.0.3-bin) na pasta do projeto Java e d uma refresh no projeto do eclipse.

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class jdbc { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost/test", "root", ""); System.out.println("Conectado!"); con.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }

Existem duas classes que podem ser utilizadas para realizar consultas:

Java.sql.Statement Sentenas simples que no possuem parmetros; Ex: select * from usuario;

Java.sql.PreparedStatement So sentenas que permitem passagem de parmetros para o comando sql; Permite agilizar o processo de execuo atravs de um recurso que deixa o comando sql pr-compilado.

Aps a execuo do comando de consulta, o resultado acessado em uma outra classe chamada java.sql.ResultSet. O ResultSet possui mtodos para obter o dado da consulta de acordo com o seu tipo.

Ex: ResultSet rs; rs.getString(Nome_Coluna); rs.getInt(Nome_coluna); rs.getDate(Nome_coluna);

Segue exemplo de consulta utilizando Statement; cuidado com os imports, pois devemos importar java.sql e no java.MySql.

import import import import import

java.sql.Connection; java.sql.DriverManager; java.sql.ResultSet; java.sql.SQLException; java.sql.Statement;

public class jdbc { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", ""); System.out.println("Conectado!");

// criando a sentena de execuo SQL Statement stmt = con.createStatement(); // Comando sql String sql = "select * from usuario order by nome"; // Executando o comando de consulta ResultSet rs = stmt.executeQuery(sql);

if (rs.next()) { System.out.println("Possui resultado!"); } else { System.out.println("No possui resultado!"); } con.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }

Exemplo de consulta utilizando PreparedStatement.

import import import import import

java.sql.Connection; java.sql.DriverManager; java.sql.PreparedStatement; java.sql.ResultSet; java.sql.SQLException;

public class jdbc { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", ""); System.out.println("Conectado!"); // Comando sql String sql = "select * from usuario where codigo=?"; // criando a sentena de execuo SQL PreparedStatement ps= con.prepareStatement(sql); // passando o parmetro para o comando sql. O valor 1 a posio da ? e o 10 o valor que deve ser colocado no lugar; ps.setInt(1, 10); // Executando o comando de consulta ResultSet rs = ps.executeQuery(); if (rs.next()) { System.out.println("Possui resultado!"); } else { System.out.println("No possui resultado!"); } con.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }

Para exibir os dados, a consulta pode retornar vrias linhas, logo, suficiente trocar o if pelo while, que exibir as informaes de todas as linhas.

Ex:ResultSet rs = ps.executeQuery(); while (rs.next()) { System.out.println(rs.getString("nome")); }

A insero de dados semelhante consulta, sendo preciso apenas a modificao do comando sql e o mtodo que deve ser chamado. Para inserir na base:

Insert into TABELA (campo1, campo2, ...) values (valor1, valor2, ...)

O mtodo que deve ser executado :

executeUpdate();

Segue exemplo de insero.

import import import import

java.sql.Connection; java.sql.DriverManager; java.sql.PreparedStatement; java.sql.SQLException;

public class jdbc { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", ""); System.out.println("Conectado!"); /* Comando sql. O campo cdigo auto incremento, no necessitando ser informado no comando de insert */ String sql = "insert into usuario (nome, login, senha) values (?, ?, ?)"; // criando a sentena de execuo SQL PreparedStatement ps= con.prepareStatement(sql); // passando o parmetro ps.setString(1, "Fbio Coriolano"); ps.setString(2, "FCoriolano"); ps.setString(3, "1234"); /* Executando o comando de insero e retorna o nmero de linhas afetadas pelo comando */

int valor = ps.executeUpdate (); con.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }

A excluso semelhante insero, sendo necessria apenas a modificao do comando sql. Para excluir algo da base:

Delete from TABELA [ where campo1=valor1 and campo2=valor2]

Igualmente ao insert, o mtodo que deve ser executado :

executeUpdate();

Segue exemplo para excluir uma informao do banco de dados.

import import import import

java.sql.Connection; java.sql.DriverManager; java.sql.PreparedStatement; java.sql.SQLException;

public class jdbc { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", ""); System.out.println("Conectado!"); // Comando sql de excluso. String sql = "delete from usuario where codigo=?"; // criando a sentena de execuo SQL PreparedStatement ps= con.prepareStatement(sql); /* passando o parmetro. Primeiro parmetro equivale a primeira interrogao e o segundo ao valor que ser substitudo */ ps.setInt(1, 1); /* Executando o comando de excluso e retorna o nmero de linhas afetadas pelo comando */ int valor = ps.executeUpdate (); con.close();

} catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }

A alterao de uma informao semelhante excluso, sendo necessria apenas a modificao do comando SQL. Para alterar algo da base de dados:

update TABELA set campo1=valor1, campo2=valor2, ... where campo3=valor3 Para o update, o mtodo que deve ser executado :

executeUpdate();

Segue cdigo para alterar uma determinada informao.

import import import import

java.sql.Connection; java.sql.DriverManager; java.sql.PreparedStatement; java.sql.SQLException;

public class jdbc { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost/jdbc", "root", ""); System.out.println("Conectado!"); // Comando sql de alterao. String sql = "update usuario set nome=?, login=? where codigo=?"; // criando a sentena de execuo SQL PreparedStatement ps = con.prepareStatement(sql); // passando o parmetro ps.setString(1, "Fbio Sobreira Coriolano"); ps.setString(2, "Fcori"); /* Primeiro parmetro equivale a terceira interrogao e o segundo o valor que ser subistituido pela interrogao*/ ps.setInt(3, 1); /* Executando o comando de alterao e retorna o nmero de linhas

afetadas pelo comando */ int valor = ps.executeUpdate(); con.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } }

14. Padro DAO Data Access Object

O DAO um padro para persistncia e consulta de informaes nos bancos de dados e serve para retirar o cdigo SQL das pginas JSP, deixando, assim, os cdigos mais organizados e com fcil acesso. Os desenvolvedores utilizam bastante esse padro, que inclui tipicamente mtodos para inserir, selecionar, atualizar e excluir. necessrio que se construa um DAO para cada classe de objeto da aplicao. Para facilitar a conexo com banco de dados, construiremos uma classe connectionFactory, que servir para fazer conexo com banco de dados.

import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;

public class ConnectionFactory { private static final String URL = "jdbc:mysql://localhost/test"; private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String USUARIO = "root"; private static final String SENHA = ""; public static Connection getConnection() throws SQLException { try { Class.forName(DRIVER); System.out.println("Conectando ao banco"); return DriverManager.getConnection(URL, USUARIO, SENHA); } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); } } }

15. Construindo um projeto web passo-a-passo utilizando JSP, DAO e MYSQL Nesse tpico desenvolveremos um projeto WEB passo-a-passo, utilizando JSP, DAO e MYSQL. 1. Faa o download do eclipse MySql verso no-install, DBDesigner, mysqlconnector-java-5.0.3-bin (drive do mysql). 2. Setar o caminho do TOMCAT no eclipse 2.1 Clique em Window preferences 2.2 Clique em Server 2.2.1 Clique em Installed Runtimes 2.3 Clique em ADD 2.4 Escolha Apache Tomcat v6.0 e clique em Next 2.5 Sete o caminho do Tomcat em sua mquina e clique em Finish 3. Instale o DBDesigner. 4. Inicie o Mysql Para iniciar o MySql s rodar o arquivo mysqld-nt, que se encontra na pasta BIN da verso no-install. 5. Abra o eclipse e crie um projeto web. 5.1 File Project Web Dynamic Web Project 6. Todo cdigo Java dever ser criado dentro do src. 7. Copie e cole o arquivo mysql-connector-java-5.0.3-bin, que o driver do mysql, na pasta lib que est dentro da pasta webContent Web INF. 8. Atualize o Projeto do eclipse 9. Sua aplicao dever estar conforme a Ilustrao:

10. Dentro de src crie uma package chamada br.com.NomeDoProjeto.JDBC. Package uma pasta que contm classes; para cri-la, s clicar com o boto direito do mouse em cima de src e escolher a opo new package. 11. Insira a classe chamada ConnectionFactorynessa Package.import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;

public class ConnectionFactory { private static final String URL = "jdbc:mysql://localhost/test"; private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String USUARIO = "root"; private static final String SENHA = ""; public static Connection getConnection() throws SQLException { try { Class.forName(DRIVER); System.out.println("Conectando ao banco"); return DriverManager.getConnection(URL, USUARIO, SENHA); } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); } } }

12. Abra o DBDesigner. 13. Clique em DataBase Connect To DataBase 14. Escolha MySQL Localhost e clique em new Database Connection.

15. No campo Connection Name entre com o nome da conexo; Drive: MySql; HostName: localhost; DataBase Name: test(default do mySql); username: root e password fica vazio.

16. Click em NewTable para criar uma tabela na base de dados e entre com os seguintes dados:

17. Depois de criada a tabela, clique em DataBase - DataBase synchronisation. 18. Volte para o eclipse e dentro de src, crie uma package chamada: br.com.NomeDoProjeto.Modelo. 19. Dentro da package modelo, crie uma classe chamada Aluno, como abaixo.public class Aluno { private String nome; private String sexo; private int idade; private String curso; public String getCurso() { return curso; } public void setCurso(String curso) { this.curso = curso; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; }

public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; } }

20. Na pasta src crie uma package chamada br.com.NomeDoProjeto.Dao. 21. Dentro da package, crie uma classe AlunoDao, como abaixo:

import java.sql.Connection; import java.sql.SQLException; import br.com.NomeDoProjeto.JDBC.ConnectionFactory; public class AlunoDao { // conexo com o banco de dados private Connection connection; // construtor que recebe a conexo public AlunoDao(Connection con) { this.connection = con; } public AlunoDao() throws SQLException { this.connection = ConnectionFactory.getConnection(); } }

22. Dentro da classe AlunoDao, vamos criar um mtodo cadastraAluno e listaAluno.

public void cadastraAluno(Aluno aluno) throws Exception { // prepared statement para insero PreparedStatement stmt = this.connection .prepareStatement("insert into aluno(nome,sexo,idade,curso) values (?, ?, ?, ?)"); // seta os valores stmt.setString(1, aluno.getNome()); stmt.setString(2, aluno.getSexo()); stmt.setInt(3, aluno.getIdade()); stmt.setString(4,aluno.getCurso() ); // executa stmt.execute(); stmt.close(); } public List listaAluno() throws SQLException { String sql = "select * from aluno"; PreparedStatement stmt =

this.connection.prepareStatement(sql); ResultSet rs = stmt.executeQuery(); // Criando uma lista de aluno List list = new ArrayList(); //Criando um aluno //Aluno aluno = new Aluno(); ERRO AQUI //Fazendo uma laco para setar os atributos de aluno while (rs.next()) { Aluno aluno = new Aluno(); aluno.setNome(rs.getString("nome")); aluno.setIdade(rs.getInt("idade")); aluno.setSexo(rs.getString("sexo")); aluno.setCurso(rs.getString("curso")); // adicionando o objeto lista list.add(aluno); } rs.close(); stmt.close(); return list; }

23. Dentro da pasta WebContent, crie um arquivo chamado testando.jsp. (No cdigo abaixo cuidado com a nomenclatura dos imports, pois nele estaro as nomes das Package que criaremos e outras bibliotecas que a aplicao utiliza)

24. Execute o projeto Clique com o boto direito do mouse no jsp e depois clique em Run As - Run on Server.

25. Escolha a opo tomcat 6 e depois clique em finish.

Exerccio de fixao 1. Desenvolva uma aplicao web que resolva o seguinte problema: Uma faculdade precisa matricular os alunos na faculdade; Faa uma aplicao web para: Inserir, excluir e alterar um Aluno ; Faa uma tela para pesquisar Aluno por nome; Segue exemplo resolvido; Crie uma Package chamada br.comWebJsp.Modelo; Dentro da Package, crie uma classe chamada Aluno, a qual deve conter todos os atributos de um aluno;public class Aluno { private String nome; private int codigo; private String sexo; private int idade; private String curso; public String getCurso() { return curso; } public void setCurso(String curso) { this.curso = curso; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getSexo() { return sexo; } public void setSexo(String sexo) { this.sexo = sexo; } public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; }

}

Crie uma Package chamada br.comWebJsp.JDBC. Dentro da Package, construa uma classe chamada ConnectionFactory.

package br.com.WebJsp.JDBC; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectionFactory { private static final String URL = "jdbc:mysql://localhost/test"; private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String USUARIO = "root"; private static final String SENHA = ""; public static Connection getConnection() throws SQLException { try { Class.forName(DRIVER); System.out.println("Conectando ao banco"); return DriverManager.getConnection(URL, USUARIO, SENHA); } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); } } }

No DBDesigner, crie a tabela Aluno conforme imagem a seguir (lembre de conectar o Mysql e sincronizar a tabela a uma base de dados).

Crie uma Package chamada br.com.WebJsp.DAO. Dentro da Package, construa uma classe chamada AlunoDAO, a qual possuir todos os cdigos SQL possveis.

package br.com.WebJsp.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import br.com.WebJsp.JDBC.ConnectionFactory; import br.com.WebJsp.Modelo.Aluno; public class AlunoDao { // conexo com o banco de dados private Connection connection; // construtor que recebe a conexo public AlunoDao(Connection con) { this.connection = con; } public AlunoDao() throws SQLException { this.connection = ConnectionFactory.getConnection(); } /** * Cadastra um aluno no banco * * @param aluno -

* Aluno passado por Parmetro * @throws Exception */ public void cadastraAluno(Aluno aluno) throws Exception { // prepared statement para insero PreparedStatement stmt = this.connection .prepareStatement("insert into aluno(nome,sexo,idade,curso) values (?, ?, ?, ?)"); // seta os valores stmt.setString(1, aluno.getNome()); stmt.setString(2, aluno.getSexo()); stmt.setInt(3, aluno.getIdade()); stmt.setString(4, aluno.getCurso()); // executa stmt.execute(); stmt.close(); } /** * Altera um aluno passado por Parmetro * * @param aluno * Aluno passado por Parmetro * @throws Exception */ public void alteraAluno(Aluno aluno) throws Exception { // prepared statement para insero PreparedStatement stmt = this.connection .prepareStatement("update aluno set nome=?,sexo=?,idade=?,curso=? where codAluno=?"); // seta os valores stmt.setString(1, aluno.getNome()); stmt.setString(2, aluno.getSexo()); stmt.setInt(3, aluno.getIdade()); stmt.setString(4, aluno.getCurso()); stmt.setInt(5, aluno.getCodigo()); // executa stmt.executeUpdate(); stmt.close(); } /** * Retorna uma lista de todos os alunos contidos no banco * * @return * @throws SQLException */ public List listaAluno() throws SQLException { String sql = "select * from aluno"; PreparedStatement stmt = this.connection.prepareStatement(sql); ResultSet rs = stmt.executeQuery(); // Criando uma lista de aluno List list = new ArrayList(); // Fazendo uma lao para setar os atributos de aluno

while (rs.next()) { // Criando um aluno Aluno aluno = new Aluno(); aluno.setCodigo(rs.getInt("codAluno")); aluno.setNome(rs.getString("nome")); aluno.setIdade(rs.getInt("idade")); aluno.setSexo(rs.getString("sexo")); aluno.setCurso(rs.getString("curso")); // adicionando o objeto lista list.add(aluno); } rs.close(); stmt.close(); return list; } /** * Retorna um aluno cujo cdigo foi passado por parmetro * * @param cod * codigo do aluno passado por Parmetro * @return * @throws SQLException */ public Aluno getAluno(int cod) throws SQLException { PreparedStatement stmt = this.connection .prepareStatement("select * from aluno where aluno.codAluno= " + cod); ResultSet rs = stmt.executeQuery(); // criando o objeto aluno Aluno aluno = new Aluno(); rs.next(); aluno.setNome(rs.getString("nome")); aluno.setIdade(rs.getInt("idade")); aluno.setSexo(rs.getString("sexo")); aluno.setCurso(rs.getString("curso")); aluno.setCodigo(rs.getInt("codAluno")); rs.close(); stmt.close(); return aluno; } /** * Retorna uma coleo de alunos cujo nome foi passado por *parmetro * @param cod * cdigo do aluno passado por Parmetro * @return * @throws SQLException

*/ public List getAluno(String nome) throws SQLException { PreparedStatement stmt = this.connection .prepareStatement("select * from aluno where aluno.nome LIKE '" + nome + "%'"); ResultSet rs = stmt.executeQuery(); // Criando uma lista de aluno List list = new ArrayList(); // Fazendo uma laco para setar os atributos de aluno while (rs.next()) { // Criando um aluno Aluno aluno = new Aluno(); aluno.setCodigo(rs.getInt("codAluno")); aluno.setNome(rs.getString("nome")); aluno.setIdade(rs.getInt("idade")); aluno.setSexo(rs.getString("sexo")); aluno.setCurso(rs.getString("curso")); // adicionando o objeto lista list.add(aluno); } rs.close(); stmt.close(); return list; } /** * Deleta um aluno cujo cdigo foi passado por Parmetro * * @param cod * cdigo do aluno passado por Parmetro * @throws Exception */ public void deleteAluno(int cod) throws Exception { // prepared statement para excluso PreparedStatement stmt = this.connection .prepareStatement("delete from aluno where aluno.codAluno=" + cod); // executa stmt.execute(); stmt.close(); } }

Agora vamos desenvolver os JSPs. Crie uma pgina chamada index.jsp e controle.jsp, a qual ir fazer chamada para outras trs pginas (addAluno.jsp, consultaAluno.jsp e

pesquisaAluno.jsp).

index.jsp Menu Cadastro
Consulta
Pesquisa

controle.jsp

Agora, vamos desenvolver uma pgina para adicionar os alunos no banco de dados. O JSP far chamada classe Aluno e ao AlunoDAO. Esta para adicionar os dados no banco e aquela para guardar as informaes na memria.

addAluno.jsp

Adicionando e Consultando no Banco Utilizando Scriplet

nome:
sexo:
curso:
idade:



Menu

Agora, vamos construir um JSP para fazer consulta e excluso de dados. Para excluir determinada informao, utilizaremos checkBox - caso o usurio o acione e clique no boto delete, ser chamado o cdigo para deletar um registro no banco de dados. Para isso, o JSP far chamada ao mtodo deleteAluno, que se encontra na classe AlunoDAO. Ainda nessa pgina, passado um link com o cdigo do aluno como parmetro para fazer chamada pgina alterarAluno.jsp; atravs do parmetro acionado um cdigo para alterar os dados do aluno.

consulta.jsp

Consulta Consulta






Menu

Nessa pgina, iremos alterar os dados do aluno, lembrando que esse JSP recebe um parmetro (cdigo do aluno) de consulta.jsp; atravs dele, podemos alterar os dados por meio de um UpDate, o qual se encontra no mtodo alteraAluno da classe AlunoDao.

alteraAluno.jsp

Adicionando e Consultando no Banco Utilizando Scriplet nome:
sexo:
curso:
idade:



Menu
redirecionando a pgina-->

Por fim, vamos desenvolver um JSP que faa pesquisa por nome de aluno.

pesquisa.jsp

Pesquisa Pesquisa

nome:





Menu

Agora s executar a aplicao no servidor.

Exerccio proposto para Atividade Extra Desenvolva a aplicao abaixo seguindo o exemplo do Aluno.

1) Crie uma tabela no banco chamada Funcionrio. 2) A tabela possuir os seguintes atributos: cdigo (Auto Incremento), nome, sexo, cargo, salrio. 3) Crie um Projeto web Java, utilizando o Tomcat no eclipse. 4) Crie as seguintes Package: br.com.Nome_do_Projeto.Modelo br.com.Nome_do_Projeto.Dao br.com.Nome_do_Projeto.JDBC 5) Crie uma classe ConnectionFactory dentro da Package

br.com.Nome_do_Projeto.JDBC e faa suas devidas implementaes. 6) Crie uma classe funcionrio dentro da Package br.com.Nome_do_Projeto.Modelo e faa suas devidas implementaes. 7) Crie uma classe funcionarioDao dentro da Package

br.com.Nome_do_Projeto.Dao e faa suas devidas implementaes. 8) Copie e cole o arquivo jar contendo a implementao do mysql dentro da pasta lib e depois o importe ao projeto. 9) Dentro da pasta web, crie um arquivo menu.jsp, o qual contm dois links: controle.jsp?pagina=cadastro e controle.jsp?pagina=consulta. 10) Dentro da pasta web, crie um arquivo controle.jsp, que serve para fazer as chamadas das pgina cadastro.jsp e consulta.jsp. 11) Dentro da pasta web, crie um arquivo cadastro.jsp, que serve para fazer interao com usurio e cadastrar um funcionrio no banco. 12) Dentro da pasta web, crie um arquivo consulta.jsp, que serve para retornar todos os funcionrios do banco. 13) No arquivo consulta.jsp, crie um checkBox para cada nome. 14) No arquivo consulta.jsp, crie um boto que apague todos os funcionrios selecionados pelo usurio. 15) No arquivo consulta.jsp, o usurio ao clicar o nome do funcionrio, vai abrir uma pgina chamada altera.jsp. Dica: passe o cdigo do funcionrio por parmetro. 16) Dentro da pasta web, crie um arquivo altera.jsp, que serve para alterar um funcionrio.

17) Dentro da pasta web, crie um arquivo pesquisa.jsp, que serve para pesquisar se existe determinado funcionrio no banco. Utilize a clusula Like no sql.

16. Conhecendo alguns frameworks Hibernate e JFS.

O JSF (Java Server Faces) um framework de desenvolvimento web que tem como objetivo aumentar a produtividade no desenvolvimento das aplicaes. Uma aplicao Java Server Faces formada por componentes da prpria API (boto, caixa de texto, link, dentre outros), o qual dispara eventos quando estimulados pelo usurio. Podemos implementar mtodos para estes estmulos e ento tratar as aes do usurio numa classe Java separada dos cdigos HTML. Esse framework baseado em MVC - arquitetura de software - que separa os dados da interface, de maneira que as alteraes nas interfaces no alteram a manipulao dos dados. Para maiores informaes sobre JSF, faa o download do seguinte material: http://www.guj.com.br/content/articles/misc/myfaces.pdf. O Hibernate um framework desenvolvido em Java e utilizado para realizar mapeamento Objeto/Relacional. Usando o Hibernate, quase no h nescessidade de escrever cdigo SQL, pois utiliza sua prpria HQL (Hibernate Query Language), acelerando o desenvolvimento da aplicao. Para conhecer mais sobre o Hibernate, procure por tutoriais no frum: http://www.guj.com.br/.

17. Apresentao de outras linguagens de programao para web DotNet, PHP, Ruby.

Podemos desenvolver para WEB em outras linguagens, como: DotNet, PHP, Ruby, entre outras. O .Net uma ferramenta criada pela Microsoft para desenvolvimento de softwares para web. Com essa tecnologia, podemos desenvolver em vrias linguagens, p. ex: Delphi (Object Pascal), Visual Basic, c#, c++, j# (similar ao Java). O .Net oferece um ambiente Orientada a objeto, possui suporte total de XML e Web Services. Essa ferramenta utiliza o CLR (Common Language RunTime), aplicao similar a mquina virtual do Java, que se encarrega de executar os cdigos

fontes produzidos por ela e o .NET Framework Class Library, que proporciona um ambiente de execuo gerenciado, simplificando o desenvolvimento, a publicao e a integrao com vrias linguagens de programao. Embora se possa desenvolver aplicaes .NET utilizando somente o notepad e o compilador .NET, o ambiente de desenvolvimento mais comum o visual Studio .NET, j que possui caractersticas que facilitam o trabalho do programador, como os componentes visuais para criao de formulrios de pginas Web. O PHP (Hypertext Preprocessor) uma linguagem de programao de uso free utilizada para desenvolvimento WEB. Essa tecnologia uma linguagem de elaborao de script e orientada a objeto. O Ruby uma linguagem de programao criada em 1994, com vastas semelhanas s linguagens Perl, SmallTalk e Pyton. Ruby 100% orientada a objeto e multiplataforma; o software mais famoso dessa linguagem o Ruby on Rails, que um framework free utilizado para desenvolvimento web, cuja filosofia velocidade e praticidade.