Вы находитесь на странице: 1из 45

Java web

@bhpachulski

Bibliografia
Use a cabea ! Jsp e Servlets

Roteiro
Java Java EE
Servidor de Aplicao e Servlet Container

Preparao do Ambiente
Instalando o NetBeans Configurando o Tomcat

Primeiro Projeto
Estrutura do Projeto Criado

Servlets Banco de Dados


Instalao do MySql Criando a Primeira Base de Dados

JSP
Scriptlets Expression Language e TagLibs

Java
Linguagem de programao da dcada de 90. No incio conhecida como lenta e processo de desenvolvimento lento. Slogan: Write once, run anywhere. (Escreva uma vez, execute em qualquer lugar) Sintaxe semelhante ao C, C++, php ... Vamos utilizar para desenvolver para Android (Google). Linguagem simples.

Orientao a Objetos
aqui que a coisa complica. A orientao a objetos complicada ? NO ! Entretanto necessrio mergulhar neste mundo, necessrio quebrar o paradigma.

Classe
Vamos comear a pensar orientado a objetos !
A Palavra classe vem da biologia, todos os seres tem uma srie de atributos e comportamentos. Entretanto no so iguais !

Todos temos conta bancria ? Quais so os dados de uma conta ?


1. 2. 3. 4. 12333 Bruno 5.000.000,00 1.000.000,00

1. 2. 3. 4.

Conta Nmero Cliente Saldo Limite

1. 2. 3. 4.

13322 Fabio 500,00 1,00

O que uma receita de Bolo, tem haver com uma classe ?


Voc como uma receita de bolo ? Eu no =X ...

Eu como o bolo
Para orientao a objetos a classe (Receita) uma especificao do Objeto. Assim possvel criar centenas de bolos a partir dessa classe.

Variveis primitivas
A linguagem Java oferece diversos tipos de dados com os quais podemos contar. Os tipos primitivos correspondem a dados mais simples. So eles:
boolean char byte short int long float double

Variveis primitivas e Wrappers


Os tipos Wrappers so classes que envolvem os tipos primitivos. Ou seja, o tipo se torna um objeto com todos os benefcios. So eles:
Boolean

Char
Byte Short Int

Long
Float Double

Estruturas de Controle
Java possui algumas estruturas que so utilizadas para tomada de deciso ou iterao. So elas:
For While

Do while
If else Switch, break Try, catch, finaly

Continue

Java EE
Java Enterprise Edition, consiste em um conjunto de especificaes bem detalhadas, que nada mais so do que uma receita de como deve ser implementado um software. Algumas Especificaes:
JavaServer Pages (JSP), Java Servlets, JSTL;
Java Persistence API (JPA); Dentre outras.

Servidor de Aplicao e Servlet Container (Java EE)


Como dito o JEE um conjunto de especificaes, ento como fazer download ? Na realidade o JEE um grande arquivo PDF ou seja um texto detalhado cotendo quais epecificaes fazem parde dele. Para utilizarmos necessrio utilizar uma de suas umplementaes. Que chamado de Servidor de Aplicao. Um Exemplo o Jboss e o Glassfish. Entretanto existem servidores que no oferecem grande parte das implementaes do JEE, desta forma so chamados de Application server web profile, Servlet Container.

Servlet Container (Java EE)


um servidor funcionalidades:
Servlets

que

suporta

as

seguintes

JSP Java Server Pages

JSTL Java Server Pages Standard Tag Library


JSF Java Server Faces

Um dos servlets container mais famosos do mercado o Apache Tomcat, entretanto existem outros;

Instalando os Softwares Necessrios

O Bsico do Netbeans

Primeiro Projeto
Criar projeto
Novo Projeto Java Web Aplicao Web

Estrutura
Pginas Web Todo o contedo web (css, imagens) Pacotes de Cdigo-fonte (cdigo Java) Bibliotecas (Frameworks) Arquivos de Configurao (Arquivos de Configurao do Netbeans)

Servlets
Em Ingls Servidorzinho ! Foi desenvolvido para gerar pginas dinmicas, recebendo requisies HTTP; Cada Servlet uma classe Java que extende HttpServlet; Recebe requisies e devolve uma resposta; possivel gerar HTML e devolver respostas dinmicas para o browser;

Como criamos ? E a Estrutura do projeto ?


Arquivo
Novo Arquivo (Ctrl + N) Web Servlet

Mtodos
doGet Intercepta requisies GET doPost Intercepta requisies POST Parametros Request Response

Nosso primeiro Servlet


Aps criado nosso primeiro Servlet, vamos testa-lo. Vamos apagar todo o contedo que no seja os mtodos:
doGet doPost

Utilizando o objeto PrintWriter vamos escrever duas sadas (HTML) distintas para os mtodos citados acima; Exemplo: Ol Mundo GET e Ol Mundo POST

Exerccio Servlet 01
Com o projeto criado, crie dois arquivos JSP, formularioSvt01.jsp e RecebePostSvt01
No primeiro arquivo crie um formulrio HTML, que passe um nome e dois valores numricos (nota do primeiro e segundo bimestre); Receba os valores e apresente: Nome do individuo entre a tag h1; Valor do Primeiro e Segundo bimestre (SE > 7.0 na cor Azul Se no na cor Vermelha); Mdia do Aluno; SE > 7.0 Apresente Reprovado; Aprovado SE menor

Exerccio Servlet 02
Com o projeto criado, crie dois arquivos JSP, formularioSvt02.jsp e RecebePostSvt02
No primeiro arquivo crie um formulrio HTML, que passe o salrio do indivduo;

No Servlet receba os valores e apresente:


O Salrio do Sujeito; O valor do INSS; Qual a faixa do INSS que o salrio se encaixa;

De acordo com o salrio, mostre o carro compatvel;


http://www.mps.gov.br/conteudoDinamico.php?id=313

Exerccio Servlet 02 (Reviso)


Durante o desenvolvimento de alguns cdigos Java, podemos encontrar alguns problemas ou defeitos no cdigo. Podemos citar como exemplo:
Se um campo que vem normalmente na POSTAGEM deixar de vir, o que acontece ? Ou se estivermos esperando um nmero e vier a22, esta String pode ser convertida para um inteiro ?

Como resolvemos esta situao ?

Mysql e o Workbench
Registre o Servidor no Mysql Workbench
Crie uma base de dados; Crie uma tabela chamada Aluno com os seguintes atributos: idAluno Integer, AutoIncrement Nome Varchar(50) Email Varchar(50) Nascimento Date

Insira um registro para teste

Java com o Mysql (Conexo)


Implementao do Padro de Projeto (Design Pattern) Singleton Utilizao do driver JDBC do Mysql;

Exerccio Servlet 03
Com o projeto criado, crie dois arquivos JSP, formularioSvt03.jsp e RecebePostSvt03
No primeiro arquivo crie um formulrio HTML, que represente o cadastro de Aluno: idAluno Nome Email Nascimento Receba os dados e monte o insert para cadastrar o Aluno no Banco de dados, utilizando o mtodo doPost Instancie o Objeto de Conexo com o Banco de dados Envie o SQL para o Banco de dados

Melhorando o Cdigo do Exerccio 03


Analisando o cdigo do exerccio anterior, perceptvel que o cdigo no amigvel tem uma leitura confusa. Pode-se citar tambm: Problemas com palavras com apostrofo. Exemplo: Copo Dagua; No caso de gravar uma data, ela deve ser String; Como soluo ser utilizado o PreparedStatement;

Exerccio Servlet 04
Utilizando o Servlet que foi criado no Exerccio 03, implemente no mtodo doGet a listagem de todos os Alunos cadastrados no Banco de dados. Siga os seguintes passos:
Recupere o objeto de conexo com o banco de dados Use o mtodo executeQuery(String) : ResultSet da Statement para enviar a classe
Passe por todos os registros utilzando o metodo next() da classe ResultSet

Java Beans
Java Beans so classes que possuem um construtor sem argumentos e mtodos de acesso (gets e sets). Pode-se utilizar Java Beans por vrios motivos, normalmente as classes de modelo, ou seja, classes que representam dados a serem persistidos. Link para especificao do Java http://java.sun.com/products/javabeans Beans:

Data Access Object (DAO)


Misturar SQL com cdigo de lgica no elegante e no recomendado quando se precisa manter se cdigo. A ideia retirar todo o cdigo de acesso e manipulao de banco e coloca-los em apenas um lugar.

Java Server Pages - JSP


O grande objetivo do JSP no misturar cdigo JAVA com HTML. Assim aumentar a legibilidade do cdigo e consequentemente melhorar a manutenabilidade.

Em um arquivo JSP pode-se escrever HTML, JavaScript e JAVA.


No JSP deve ser escrito todo o cdigo HTML de um sistema WEB.

Objetos Implcitos (JSP)


Esses objetos so instanciados automaticamente e esto disponveis para o uso em um arquivo JSP. So eles:
page config pageContext request response out session application

Veremos no decorrer da disciplina como utilizar e para que utilizar cada um desses objetos.

Vamos praticar ? Exerccio 01 (Scriplet)


Utilizando o projeto j criado, crie um arquivo JSP.
Novo Arquivo Web

JSP (hello.jsp)

Defina uma varivel chamada msgOla do tipo String; Atribua o valor Hello World a varivel; Apresente a varivel entre a tag HTML h1;

Vamos praticar ? Exerccio 02 (Scriplet)


Com o projeto criado, crie dois arquivos JSP, formulario01.jsp e recebePost01.jsp
No primeiro arquivo crie um formulrio HTML, que passe dois nmeros;

E no segundo arquivos iremos apresentar os dois nmeros que foram passados e ainda apresentar o resultado da soma dos dois.

Vamos praticar ? Exerccio 03 (Scriplet)


Crie um arquivo nomeado exe03Scriptlet.jsp Defina e d valores as seguintes variveis:
Nome

Usuario
Email

Apresente os valores entre uma lista HTML (<ul>), utilizando o mesmo metodo que utilizavamos nos Servlets (println(String str));

Atalho para out.println(String str)


Assim como outras linguagens existe um atalho ao mtodo de sada;

Vamos praticar ? Exerccio 04 (Scriplet)


Com o projeto criado, crie dois arquivos JSP, formularioEl04.jsp e recebePostEl04.jsp
No primeiro arquivo crie um formulrio HTML, que passe nome (input text) e sexo (input radio);

No segundo arquivo receba os dados e apresenteos.


SE for passado sexo masculino o nome deve ser exibido na cor azul. SE feminino apresente na cor pink.

Expression Language
Desenvolvido para diminuir a quantidade de cdigo digitado no JSP. A EL interpretada pelo ServletContainer. Entretanto com limitaes tais como:
No instancia objetos; No executa operaes condicionais; Iteraes; Etc

Exemplo de EL: ${param.nome}

TagLibs
Para ter e executar os comportamentos citados no slide anterior temos algumas TAG`s. As TagLibs se assemelham com as tags do HTML; Por que foram criadas ? Exatamente por que os programadores estavam codificando muito nos JSP. E no esse o foco; Assim criou as tag librarys ou TagLibs, algo mais parecido com a aparncia do contedo de um JSP; possvel executar laos de repetio, condicionais, criar objetos. Para utilizar uma TagLig necessrio definir qual ser utilizada e seu prefixo. Ex: <%@ taglib
uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

core e fmt
As taglibs core e fmt so duas das tags mais utilizadas no jsp. Tem as seguintes funcionalidades: Core
If Catch Foreach Choose e When ParseDate FormatDate SetTimeZone ParseNumber

Fmt

Vamos praticar ? Exerccio 01 (EL + Taglibs)


Com o projeto criado, crie dois arquivos JSP, formularioEl01.jsp e recebePostEl01.jsp
No primeiro arquivo crie um formulrio HTML, que passe dois nmeros;

E no segundo arquivos iremos apresentar os dois nmeros que foram passados e ainda apresentar o resultado da soma dos dois.
Utilize a tag catch

Vamos praticar ? Exerccio 02 (EL + Taglibs)


Com o projeto criado, crie dois arquivos JSP, formularioEl02.jsp e recebePostEl02.jsp
No primeiro arquivo crie um formulrio HTML, que passe nome (input text) e sexo (input radio);

No segundo arquivo receba os dados e apresenteos.


SE for passado sexo masculino o nome deve ser exibido na cor azul. SE feminino apresente na cor pink.

Vamos praticar ? Exerccio 03 (EL + Taglibs)

JSP + Servlet
Vamos comear a separar o HTML do cdigo. O Servlet vai tratar da lgica de negcio e o JSP vai ser a interface com o usurio. Utilizaremos para isso o Objeto ResquestDispatcher, que nos ajudar a integrar as duas tecnologias, ou seja, tornar possvel intercambio de informaes.

Objeto RequestDispatcher
Afim de aliar as funcionalidades entre Servlet e JSP, o objeto em questo, trabalha para transportar dados entre as tecnologias citadas. Para utiliza-lo necessrio recuperar sua instancia do objeto HttpServletRequest com o mtodo getRequestIspatcher, passando o arquivo JSP que receber os dados.

Вам также может понравиться