Anda di halaman 1dari 86

14/02/13

Desenvolvimento de Aplicaes Web


Profo. Anderson

Profo Anderson
Experincia Acadmica
Graduao em Engenharia de Computao pelo InsAtuto Militar de Engenharia (IME) 1993 - 1997 Bolsista do InsAtuto de MatemAca Pura e Aplicada (IMPA) 1995-1997 Sistemas Dinmicos e Computao Grca Doutorado no Laboratrio Nacional de Computao CienUca 2002 2009 Segurana da Informao Ataques Distribudos de Negao de Servio

Experincia Prossional
Projeto e Implantao de uma Rede de Computadores Supervisor do Projeto de Estruturao da Pesquisa CienUca de Defesa CibernAca

14/02/13

Desenvolvimento de Aplicaes Web


Profo. Anderson asantos@unicarioca.edu.br

OBJETIVOS
Capacitar os alunos a desenvolver aplicaes com interface Web. Os alunos utilizaro HTML e ferramentas de desenvolvimento para Web, na construo de aplicaes Servlets e JSP.

14/02/13

EMENTA
Criao de Servlets criao de JSP Aplicao em Camadas Uso de Padres de Projeto Servidor de Aplicao Framework JSF Estratgias de implementao.

CONTEDO PROGRAMTICO
CONTEDO PROGRAMTICO: Unidade 1 A linguagem HTML
1.1 Introduo Linguagem HTML 1.2 Edio e publicao de documentos 1.3 O documento bsico e seus componentes 1.4 Formatao de textos, cores e fontes 1.5 Ligaes (Uso de links) 1.6 Utilizao de imagens, tabelas e frames 1.7 Formulrios

Unidade 2 Modelo de Programao Web

2.1 Servidor de Aplicao e Aplicao em Camadas 2.2 Servlets e Componentes de Servidor 2.3 Estrutura de uma aplicao Web 2.4 Arquivo de configurao web.xml

14/02/13

CONTEDO PROGRAMTICO
Unidade 3 Interfaces Web com JSP Unidade 4 Uso de Padres de Projeto
3.1 JSP 3.2 Interao com Servlets

4.1 Integrao com Banco de Dados no Servidor 4.2 Classes de Negcio

BIBLIOGRAFIA
Livro-Texto:
BASHAN, B.; SIERRA, K.; BATES, B. Use a Cabea! Servlets & JSP. Alta Books. DEITEL. Java como Programar. 6. ed. GEARY, D. M. Dominando Java Server Pages avanado. Rio de Janeiro: Cincia Moderna, 2002. TODD, N.; SZOLKOWSKI, M. JavaServer Pages - Guia do Desenvolvedor. Rio de Janeiro: Campus.

Bibliograa Complementar:

14/02/13

Sistema de Avaliao
Composio das notas de AV1 e AV2
AV1: Prova escrita AV2: Prova Escrita(5,0 pontos) e Atividade Supervisionada (5,0 pontos) AVF: Prova escrita 2 chamada: Prova Escrita

Datas das Provas Escritas AV1: 11 de Abril de 2013 AV2: Prova Escrita: 20 de Junho de 2013 Atividade Supervisionada: Entrega dia 20 de Junho de 2013, pelo 28 horas, at s 23:55. AVF: 04 de Julho de 2013 2 chamada em 27 de Junho de 2013

Sistema de Avaliao
Atividade Supervisionada (Vale 5,0 pontos) Trabalhos prticos Entrega de Relatrios de Acompanhamento Previso de Matria para as Provas AV1: Unidade 1, 2 e item 3.2 Prova Escrita: Todas as unidades Segunda chamada: Todas as unidades AVF: Todas as unidades

10

14/02/13

Observaes Importantes

Observaes Importantes 1. As provas so individuais e realizadas na unidade.


2. Ser OBRIGATRIO o comparecimento no dia da prova correspondente para assinatura da folha de presena. 3. A segunda chamada, para os alunos faltosos, para apenas uma das provas AV1 ou AV2 e a abrange toda a matria. 4. O controle das notas responsabilidade do aluno e responsvel pela verificao da necessidade de realizao da AVF de acordo com a mdia alcanada. 5. As dvidas relacionadas matria devero ser esclarecidas exclusivamente pelo 28 horas, atravs do envio de mensagens.

Sistema de Avaliao

So condies para aprovao em cada disciplina, alm de alcanar o mnimo de frequncia: Para aprovao direta ou por mdia > 7,00 (sete)
Se: Mdia (M) =

Se: Mdia (M) < 3,0 aluno reprovado

AV 1 + AV 2 7, 0 2

aluno aprovado

Para aprovao por mdia inferior a 7,00 (sete) e > 3,0 (trs)
Se: 3,0 < M < 7,0 aluno em prova final - AV3

o aluno s ser considerado aprovado na disciplina se alcanar mdia final (MF) entre a prova final (AVF) e mdia aritmtica das duas avaliaes anteriores (AV1 e AV2) igual ou superior (M) a 6,0 (seis).

Se: Mdia Final =

( M + AVF ) 6, 0 aluno aprovado 2


( M + AVF ) < 6, 0 2
aluno reprovado

Se: Mdia Final =

14/02/13

AV1 Contedos estudados at a data da AV1.

AV2

2 C H A M A D A / A V F Todos os contedos estudados Todos os contedos estudados no semestre le4vo. no semestre le4vo.

I - Prova (Obrigatria - presencial, individual e I Prova (Obrigatria e compe 50% da nota da I Prova (Obrigatria - sem consulta. Compe 100% na nota). AV2) presencial, individual e sem consulta. Compe 100% na A Prova presencial e individual ser aplicada para Prova Colegiada para disciplinas selecionadas. As nota). todas as turmas, exceto NDC e disciplinas disciplinas sem prova colegiada aplicaro provas denidas pela coordenao de curso. presenciais e individuais. Sero provas discursivas Segunda Chamada permiAda e/ou objeAvas. Se objeAvas, devero ser somente para uma nica Sero provas discursivas e/ou objeAvas. Se aplicadas pelo 28H, no mesmo padro de prova avaliao (AV1 ou AV2), desde objeAvas, devero ser aplicadas pelo 28H, no colegiada. que por moAvo devidamente mesmo padro de prova colegiada. jusAcado. O b s e r v a o : A S e g u n d a II - AAvidade PrAca Supervisionada (Obrigatria Chamada aplica-se AV1 ou e compe at 50% da nota da AV2, a critrio do AV2 como um todo e no, somente a uma das partes que professor) compem essas avaliaes. Ou III Outras AAvidades (Opcional. A critrio de seja, no existe Segunda cada professor, outras formas de avaliao Chamada de provas, aAvidades podero ser uAlizadas para completar a nota de prAcas e outras aAvidades de AV2). forma isolada. O aluno com direito a Segunda Chamada aquele que obteve nota zero por no ter realizado a AV 1 ou AV2 ( e no, nota zero numa prova, ou numa aAvidade supervisionada ou numa outra aAvidade).

AV1 Contedos estudados at a data da AV1.

AV2

2 C H A M A D A / A V F Todos os contedos estudados Todos os contedos estudados no semestre le4vo. no semestre le4vo.

I - Prova (Obrigatria - presencial, individual e I Prova (Obrigatria e compe 50% da nota da I Prova (Obrigatria - sem consulta. Compe 100% na nota). AV2) presencial, individual e sem consulta. Compe 100% na A Prova presencial e individual ser aplicada para Prova Colegiada para disciplinas selecionadas. As nota). todas as turmas, exceto NDC e disciplinas disciplinas sem prova colegiada aplicaro provas denidas pela coordenao de curso. presenciais e individuais. Sero provas discursivas Segunda Chamada permiAda e/ou objeAvas. Se objeAvas, devero ser somente para uma nica Sero provas discursivas e/ou objeAvas. Se aplicadas pelo 28H, no mesmo padro de prova avaliao (AV1 ou AV2), desde objeAvas, devero ser aplicadas pelo 28H, no colegiada. que por moAvo devidamente mesmo padro de prova colegiada. jusAcado. O b s e r v a o : A S e g u n d a II - AAvidade PrAca Supervisionada (Obrigatria Chamada aplica-se AV1 ou e compe at 50% da nota da AV2, a critrio do AV2 como um todo e no, somente a uma das partes que professor) compem essas avaliaes. Ou III Outras AAvidades (Opcional. A critrio de seja, no existe Segunda cada professor, outras formas de avaliao Chamada de provas, aAvidades podero ser uAlizadas para completar a nota de prAcas e outras aAvidades de AV2). forma isolada. O aluno com direito a Segunda Chamada aquele que obteve nota zero por no ter realizado a AV 1 ou AV2 ( e no, nota zero numa prova, ou numa aAvidade supervisionada ou numa outra aAvidade).

14/02/13

AV1 Contedos estudados at a data da AV1.

AV2

2 C H A M A D A / A V F Todos os contedos estudados Todos os contedos estudados no semestre le4vo. no semestre le4vo.

I - Prova (Obrigatria - presencial, individual e I Prova (Obrigatria e compe 50% da nota da I Prova (Obrigatria - sem consulta. Compe 100% na nota). AV2) presencial, individual e sem consulta. Compe 100% na A Prova presencial e individual ser aplicada para Prova Colegiada para disciplinas selecionadas. As nota). todas as turmas, exceto NDC e disciplinas disciplinas sem prova colegiada aplicaro provas denidas pela coordenao de curso. presenciais e individuais. Sero provas discursivas Segunda Chamada permiAda e/ou objeAvas. Se objeAvas, devero ser somente para uma nica Sero provas discursivas e/ou objeAvas. Se aplicadas pelo 28H, no mesmo padro de prova avaliao (AV1 ou AV2), desde objeAvas, devero ser aplicadas pelo 28H, no colegiada. que por moAvo devidamente mesmo padro de prova colegiada. jusAcado. O b s e r v a o : A S e g u n d a II - AAvidade PrAca Supervisionada (Obrigatria Chamada aplica-se AV1 ou e compe at 50% da nota da AV2, a critrio do AV2 como um todo e no, somente a uma das partes que professor) compem essas avaliaes. Ou III Outras AAvidades (Opcional. A critrio de seja, no existe Segunda cada professor, outras formas de avaliao Chamada de provas, aAvidades podero ser uAlizadas para completar a nota de prAcas e outras aAvidades de AV2). forma isolada. O aluno com direito a Segunda Chamada aquele que obteve nota zero por no ter realizado a AV 1 ou AV2 ( e no, nota zero numa prova, ou numa aAvidade supervisionada ou numa outra aAvidade).

AV1 Contedos estudados at a data da AV1.

AV2

2 C H A M A D A / A V F Todos os contedos estudados Todos os contedos estudados no semestre le4vo. no semestre le4vo.

I - Prova (Obrigatria - presencial, individual e I Prova (Obrigatria e compe 50% da nota da I Prova (Obrigatria - sem consulta. Compe 100% na nota). AV2) presencial, individual e sem consulta. Compe 100% na A Prova presencial e individual ser aplicada para Prova Colegiada para disciplinas selecionadas. As nota). todas as turmas, exceto NDC e disciplinas disciplinas sem prova colegiada aplicaro provas denidas pela coordenao de curso. presenciais e individuais. Sero provas discursivas Segunda Chamada permiAda e/ou objeAvas. Se objeAvas, devero ser somente para uma nica Sero provas discursivas e/ou objeAvas. Se aplicadas pelo 28H, no mesmo padro de prova avaliao (AV1 ou AV2), desde objeAvas, devero ser aplicadas pelo 28H, no colegiada. que por moAvo devidamente mesmo padro de prova colegiada. jusAcado. O b s e r v a o : A S e g u n d a II - AAvidade PrAca Supervisionada (Obrigatria Chamada aplica-se AV1 ou e compe at 50% da nota da AV2, a critrio do AV2 como um todo e no, somente a uma das partes que professor) compem essas avaliaes. Ou III Outras AAvidades (Opcional. A critrio de seja, no existe Segunda cada professor, outras formas de avaliao Chamada de provas, aAvidades podero ser uAlizadas para completar a nota de prAcas e outras aAvidades de AV2). forma isolada. O aluno com direito a Segunda Chamada aquele que obteve nota zero por no ter realizado a AV 1 ou AV2 ( e no, nota zero numa prova, ou numa aAvidade supervisionada ou numa outra aAvidade).

14/02/13

AV1 Contedos estudados at a data da AV1.

AV2

2 C H A M A D A / A V F Todos os contedos estudados Todos os contedos estudados no semestre le4vo. no semestre le4vo.

I - Prova (Obrigatria - presencial, individual e I Prova (Obrigatria e compe 50% da nota da I Prova (Obrigatria - sem consulta. Compe 100% na nota). AV2) presencial, individual e sem consulta. Compe 100% na A Prova presencial e individual ser aplicada para Prova Colegiada para disciplinas selecionadas. As nota). todas as turmas, exceto NDC e disciplinas disciplinas sem prova colegiada aplicaro provas denidas pela coordenao de curso. presenciais e individuais. Sero provas discursivas Segunda Chamada permiAda e/ou objeAvas. Se objeAvas, devero ser somente para uma nica Sero provas discursivas e/ou objeAvas. Se aplicadas pelo 28H, no mesmo padro de prova avaliao (AV1 ou AV2), desde objeAvas, devero ser aplicadas pelo 28H, no colegiada. que por moAvo devidamente mesmo padro de prova colegiada. jusAcado. O b s e r v a o : A S e g u n d a II - AAvidade PrAca Supervisionada (Obrigatria Chamada aplica-se AV1 ou e compe at 50% da nota da AV2, a critrio do AV2 como um todo e no, somente a uma das partes que professor) compem essas avaliaes. Ou III Outras AAvidades (Opcional. A critrio de seja, no existe Segunda cada professor, outras formas de avaliao Chamada de provas, aAvidades podero ser uAlizadas para completar a nota de prAcas e outras aAvidades de AV2). forma isolada. O aluno com direito a Segunda Chamada aquele que obteve nota zero por no ter realizado a AV 1 ou AV2 ( e no, nota zero numa prova, ou numa aAvidade supervisionada ou numa outra aAvidade).

18

Profo. Anderson asantos@unicarioca.edu.br

14/02/13

19

28 Horas
rea dos fruns rea de comunicao da turma e para sanar dvidas gerais e sobre a Atividade Supervisionada.

Profo. Anderson asantos@unicarioca.edu.br

20

28 Horas
Sobre o professor Informaes sobre o professor, como currculo Lattes, email e reas de interesse.

Profo. Anderson asantos@unicarioca.edu.br

10

14/02/13

21

28 Horas
Midiateca Local onde sero disponibilizados links e apostilas de interesse do aluno para o aprendizado

Profo. Anderson asantos@unicarioca.edu.br

22

28 Horas
Material Didtico Local onde est: Transparncias Plano de Ensino Plano de Estudos/Aula

Profo. Anderson asantos@unicarioca.edu.br

11

14/02/13

23

28 Horas
Atividades para compor a primeira avaliao informaes sobre a AV1

Profo. Anderson asantos@unicarioca.edu.br

24

28 Horas
Atividades para compor a segunda avaliao informaes sobre a AV2 informaes sobre a atividade supervisionada

Profo. Anderson asantos@unicarioca.edu.br

12

14/02/13

25

28 Horas
Segunda Chamada informaes sobre a segunda chamada

Profo. Anderson asantos@unicarioca.edu.br

26

28 Horas
Avaliao Final informaes sobre a avaliao final

Profo. Anderson asantos@unicarioca.edu.br

13

14/02/13

27

28 Horas
Atividade Supervisionada informaes sobre a atividade supervisionada

Profo. Anderson asantos@unicarioca.edu.br

28

Atividade Supervisionada
A atividade supervisionada tem a caracterstica de ser um trabalho acompanhado pelo Professor, assim, quaisquer dvidas devero ser sanadas ou nas aulas ou atravs de mensagens no 28 horas que sero verificadas com at uma semana da sua postagem. Implementar uma calculadora em um portal que realize as seguintes contas:
a) soma b) subtrao c) multiplicao d) diviso

CONDIES DE EXECUO:

- Trabalho dever ser entregue pelo 28 horas, seguindo a norma de trabalhos de TCC da UniCarioca. Na capa deste trabalho dever ter o nome completo e matrcula de todos os componentes dos grupos. - Os grupos podero ter at 5 pessoas. - Trabalhos iguais sero consideradas cpias e tero o grau ZERO. - Entrega: 20 de Junho de 2013, at s 23:55h.

Profo. Anderson asantos@unicarioca.edu.br

14

14/02/13

CONTROLE DA PRESENA DO ALUNO. Importante lanar a presena dos alunos as aulas. Cobrar o documento que justifique a falta.

Justificativa de faltas: - Atestado mdico: prprio(a) ou de familiar - Atestado da empresa

Dever conter: nome completo, data e hora. Pode enviar por e-mail, informando o nome da disciplina.

COBRANA DE TRABALHOS NOS MOLDES ACADMICOS (Normas ABNT). Ateno especial ao solicitar resumos e resenhas. Indicar tipos e exemplos, principalmente, para alunos que no cumpriram Metodologia Cientfica.

15

14/02/13

31

Plano de Aula

07/02: Apresentao da disciplina 14/02: Carnaval 21/02: Unidade 1 A linguagem HTML; 1.1 Introduo Linguagem HTML; 1.2 Edio e publicao de documentos; 1.3 O documento bsico e seus componentes; 28/02: 1.4 Formatao de textos, cores e fontes; 1.5 Ligaes (Uso de links); 1.6 Utilizao de imagens, tabelas e frames; 1.7 Formulrios

Profo. Anderson asantos@unicarioca.edu.br

32

Plano de Aula

07/03: Unidade 2 Modelo de Programao Web; 2.1 Servidor de Aplicao e Aplicao em Camadas 14/03: 2.2 Servlets e Componentes de Servidor 21/03: 2.3 Estrutura de uma aplicao Web; 2.4 Arquivo de configurao web.xml 28/03: 3.2 Interao com Servlets
Profo. Anderson asantos@unicarioca.edu.br

16

14/02/13

33

Plano de Aula

04/04: 3.2 Interao com Servlets 11/04: AV1 18/04: Vista e Resoluo da Prova AV1 25/04: 3.2 Interao com Servlets
Profo. Anderson asantos@unicarioca.edu.br

34

Plano de Aula

02/05: 3.1 JSP 09/05: 3.1 JSP 16/05: Semana UniCarreira 23/05: 3.1 JSP 30/05: Feriado
Profo. Anderson asantos@unicarioca.edu.br

17

14/02/13

35

Plano de Aula

06/06: Unidade 4 Uso de Padres de Projeto; 4.1 Integrao com Banco de Dados no Servidor; 4.2 Classes de Negcio 13/06: Unidade 4 Uso de Padres de Projeto; 4.1 Integrao com Banco de Dados no Servidor; 4.2 Classes de Negcio 20/06: AV2 27/06: 2a Chamada
Profo. Anderson asantos@unicarioca.edu.br

36

Plano de Aula

04/07: AVF

Profo. Anderson asantos@unicarioca.edu.br

18

14/02/13

Unidade 1 A linguagem HTML


1.1 Introduo Linguagem HTML

Sir Tim Berners-Lee

http://www.w3.org/People/Berners-Lee/

Unidade 1 A linguagem HTML


1.1 Introduo Linguagem HTML

19

14/02/13

Unidade 1 A linguagem HTML


1.1 Introduo Linguagem HTML

tags
so comandos do html o documento renderizado pelo navegados atravs da formatao dos tags so case insensitive so sempre precedidos do sinal de menor (<) e seguidos de um sinal de maior (>)

40

Unidade 1 A linguagem HTML


1.2 Edio e publicao de documentos

Profo. Anderson asantos@unicarioca.edu.br

20

14/02/13

Unidade 1 A linguagem HTML


1.3 O documento bsico e seus componentes

estrutura bsica:
<html> <head> </head> <body> </body> </html>

Unidade 1 A linguagem HTML


1.4 Formatao de textos, cores e fontes

atributos <tag atributo=x>texto</tag> comentrios <!-- texto --> a denio da cor formada por 3 valores hexadecimais, onde cada valor corresponde uma quanAdade de vermelho, verde e azul (RGB) exemplos (#RRGGBB): #000000 (preto), #FFFFFF (branco) e #FF0000 (vermelho).

21

14/02/13

Unidade 1 A linguagem HTML


1.4 Formatao de textos, cores e fontes

Header: indica que o texto influenciado um header (cabealho) tm 6 nveis, sendo que o nvel 1 <h1> o que tm o maior tamanho de fonte formato:
<h1>texto</h1> <h2>texto</h2>

Sua correta aplicao importante para acessibilidade e sistemas de busca

Unidade 1 A linguagem HTML


1.4 Formatao de textos, cores e fontes

Paragraph: indica que o texto influenciado um pargrafo. Cria um espao entre o pargrafo e o prximo elemento. formato: <p align=tipo>texto</p> atributo align=center | left | right | justify Bold/Strong: indica que o texto influenciado deve ficar em negrito formato: <b>texto</b> no possui atributo <strong>texto</strong> alm do efeito visual, aplica nfase ao texto que influenciado pelo marcador).

22

14/02/13

Unidade 1 A linguagem HTML


1.4 Formatao de textos, cores e fontes

Italic: indica que o texto influenciado deve ficar em itlico formato: <i>texto</i> no possui atributo <em>texto</em> alm do efeito visual, aplica nfase ao texto que influenciado pelo marcador.

Underline: indica que o texto influenciado deve ficar sublinhado formato: <u>texto</u> no possui atributo

Unidade 1 A linguagem HTML


1.4 Formatao de textos, cores e fontes

Strike: indica que o texto influenciado deve ser apresentado com um trao cortando-o formato: <strike>texto</strike> no possui atributo

Preformatted :indica que o texto influenciado deve ser apresentado exatamente como est no cdigo fonte html formato: <pre>texto</pre> no possui atributo o browser usa uma fonte diferente da que estiver sendo usada

23

14/02/13

Unidade 1 A linguagem HTML


1.4 Formatao de textos, cores e fontes

Font: permite escolher a fonte a ser utilizada em uma determinada parte do texto formato: <font face=tipodafonte color=#RRGGBB size=valor>texto </font>

Horizontal Row: insere uma linha horizontal na tela formato: <hr align=tipo size=valor width=valor noshade>

Breakline: quebra de linha formato: <br>

Unidade 1 A linguagem HTML


1.5 Ligaes (uso de links)

Anchor: tag utilizado para criar links, seja internos ou externos formato: <a href =pgina, rea de uma pgina ou endereo de e-mail name =nome title=descrio do link> texto, imagem, som, etc </a>

Anchor: link para uma determinada parte de uma pgina formato: <a name=#nome></a> (posicione este TAG na posio do documento que deseja criar um link) <a href=#nome> texto do link que apontar para o link interno </a>

24

14/02/13

Unidade 1 A linguagem HTML


1.5 Ligaes (uso de links)

Anchor: link para um endereo de e-mail, onde uma vez clicado, abrir o programa de e-mail configurado na mquina formato: <a href =mailto:none@nowhere.com> texto do link </a>

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Imagens: tag utilizado para inserir uma imagem serve para todos os formatos de arquivos (jpg, gif, png) formato: formato: <img src=arquivo width=valor height=valor border=valor align=tipo hspace=valor vspace=valor alt=texto>

25

14/02/13

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Tabelas <TABLE>...</TABLE> delimita uma tabela. <CAPTION>...</CAPTION> define o ttulo da tabela <TR>...</TR> delimita uma linha <TH>...</TH> define um cabealho para colunas ou linhas (dentro de <TR>) <TD>...</TD> delimita um elemento ou clula (dentro de <TR>) Uma tabela simples: <TABLE BORDER=4> <CAPTION>Primeiro exemplo</CAPTION> <TR><TH>Coluna 1</TH><TH>Coluna 2</TH></TR> <TR><TD>linha1, coluna 1</TD><TD> linha 1, coluna 2</TD></TR> <TR><TD>linha 2, coluna 1</TD><TD>linha 2, coluna 2</TD></TR> </TABLE>

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Clulas compreendendo mais de uma coluna ou linha possvel englobar colunas e linhas, atravs dos atributos COLSPAN (para colunas) e ROWSPAN (para linhas): <TABLE BORDER=1>
<TR><TD>linha1, coluna 1</TD><TD> linha 1, coluna 2</TD></TR> <TR><TD>linha 2, coluna 1</TD><TD>linha 2, coluna 2</TD></TR> <TR><TD colspan=2>duas colunas</TD></TR>

</TABLE>

26

14/02/13

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

As linhas e clulas podem ter alinhamentos definidos atravs dos atributos: <TD ALIGN=alin_horizontal>Texto da clula</TD> <TD VALIGN=alin_vertical>Texto da clula</TD>

ALIGN=LEFT ALIGN=CENTER ALIGN=RIGHT VALIGN=TOP VALIGN=MIDDLE VALIGN=BOTTOM

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Para apresentar uma tabela ocupando determinado espao disponvel na linha, usamos o atributo WIDTH. Esse atributo pode ser aplicado tambm a linhas e clulas. Tabela ocupando 50% do espao disponvel, com uma coluna de 60% do espao disponvel na tabela <TABLE BORDER=1 width=50%> <TR> <TD>janeiro</TD><TD width=60%>fevereiro</TD><TD>maro</TD> </TR> <TR> <TD>abril</TD><TD width=60%>maio</TD><TD>junho</TD> </TR> </TABLE>

27

14/02/13

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Dois atributos permitem o controle de espaamento em tabelas: CELLPADDING - espao entre o texto e as bordas da clula CELLSPACING - espao entre clulas
Ex.1: Espao entre o texto e as bordas

<TABLE BORDER=1 CELLPADDING=20>


Ex.2: Espao entre clulas

<TABLE BORDER=1 CELLSPACING=20>

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Cor de fundo <TABLE BORDER=5 CELLSPACING=5 CELLPADDING=10 BGCOLOR="#E1FFD9"> <TD BGCOLOR="#E1FFD9"> Cor de borda <TABLE BORDER=5 CELLSPACING=5 CELLPADDING=10 BGCOLOR="#E1FFD9" BORDERCOLOR="#00FF00"> Imagem de fundo <TD BACKGROUND="imagem">

28

14/02/13

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Frames: Os frames so divises da tela do browser em diversas telas (ou quadros). Com isso, torna-se possvel apresentar mais de uma pgina por vez: por exemplo, um ndice principal em uma parte pequena da tela, e os textos relacionados ao ndice em outra parte. Nem todos os usurios gostam de frames, pois nem sempre a navegao fcil, alm de problemas para a impresso e a marcao dos documentos interiores aos frames nos bookmarks. A alternativa natural para os frames so as tabelas. <FRAMESET COLS="20%, 80%"> <FRAME SRC="indice1.html"> <FRAME SRC="apresenta.html" NAME="principal"> <NOFRAME> <BODY> <H2>Bem-vindo pgina do assunto X!</h2> </BODY> </NOFRAME> </FRAMESET>

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Sempre que se aciona um link dentro de uma pgina, o default (isto , o comportamento padro) que a pgina referente a esse link seja carregada na mesma janela da pgina anterior. No exemplo visto com frames, seguir um link dentro da janela direita faz com que a pgina apontada seja mostrada ocupando a janela da direita (coluna de 80%): Veja no cdigo que o frame associado a apresenta.html tem um atributo NAME. Nomear um frame permite que direcionemos o frame em que ser apresentado o documento de destino de um link. No exemplo visto, o arquivo indice1.html tem um link da seguinte forma: <a href="apresenta2.html" target=principal>Exemplo n.2</a>. Isto indica que se est definindo (pelo atributo target) o frame em que a pgina de destino do link (apresenta2.html) ser mostrada.

29

14/02/13

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Dois frames em coluna <FRAMESET COLS="x, y"> <FRAME SRC="col1.html"> <FRAME SRC="col2.html"> </FRAMESET> Dois frames em linha <FRAMESET ROWS="x, y"> <FRAME SRC="lin1.html"> <FRAME SRC="lin2.html"> </FRAMESET>

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Tres frames <FRAMESET COLS="x, y"> <FRAME SRC="col1.html"> <FRAMESET ROWS="x, y"> <FRAME SRC="lin1.html"> <FRAME SRC="lin2.html"> </FRAMESET> </FRAMESET> Tres Frames <FRAMESET ROWS="x, y"> <FRAME SRC="lin1.html"> <FRAMESET COLS="x, y"> <FRAME SRC="col1.html"> <FRAME SRC="col2.html"> </FRAMESET> </FRAMESET>

30

14/02/13

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

At este ponto, vimos os atributos COLS e ROWS (para FRAMESET), SRC e NAME (para FRAME). Eliminao das bordas dos frames: <FRAMESET COLS="20%, 80%" FRAMEBORDER="no"> <FRAME SRC="indice4.html"> <FRAME SRC="apresenta4.html" NAME="principal"> </FRAMESET> Frame sem barra de rolagem: <FRAMESET COLS="20%, 80%"> <FRAME SRC="indice4.html" SCROLLING="no"> <FRAME SRC="apresenta4.html" NAME="principal"> </FRAMESET>

Unidade 1 A linguagem HTML


1.6 UAlizao de imagens, tabelas e frames

Frames so interessantes para apresentar conjuntos de pginas com um ndice fixo para a navegao. Alm disso, torna-se possvel mostrar diversas pginas e/ou mdias em uma nica janela do browser. Um cuidado procurar controlar bem a navegao, evitando que o acionamento de links no leve o leitor a ver seu browser criar frames dentro de frames, gerando uma grande confuso (veja item seguinte, sobre "limpar" a tela).

31

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

Formulrios: formulrios so controles que permitem a troca de

informaes entre o usurio e o servidor http


o usurio preenche os vrios tipos de controles de formulrios e os envia para o servidor atravs do protocolo http atravs dos vrios tipos de controles de formulrios (radiobutton, checkbox, text area, etc), o usurio preenche o formulrio com as opes vlidas para o mesmo e, atravs do controle BUTTON, as envia para o servidor que processa as informaes recebidas. todos os controles que estiverem dentro da rea de influncia do tag <form> tero as suas informaes enviadas ao servidor em um pacote de dados tem como funo definir a rea de influncia dos controles de formulrios pode tambm, dentro de sua rea de influncia, receber quaisquer outros tipos de tags html

Unidade 1 A linguagem HTML


1.7 Formulrios

Formulrios:

formato: <form action=url method=tipo> <controles ...> <tags html...> </form>

32

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

Formulrios:

formato: <form action=url method=tipo> <controles ...> <tags html...> </form>

Unidade 1 A linguagem HTML


1.7 Formulrios

Formulrios:

formato: <form action=url method=tipo> <controles ...> <tags html...> </form>

tag utilizado para a insero de controles de formulrio html insere :


textfield password radiobutton, checkbox submit e reset buttons

33

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

formato:
<input type=tipo {!-- aps escolher o tipo, os atributos restantes sero referentes a este tipo --} >

Unidade 1 A linguagem HTML


1.7 Formulrios

cria uma rea de somente uma linha onde poder ser digitado um texto formato:
<input type=text name=texto value=texto size=valor>

34

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

<input type=text ...>

type=text define formulrio tipo text name=texto nome lgico do campo value=texto - texto que aparece dentro do campo size=valor - tamanho do campo, em caracteres
<form> First name: <input type="text" name="firstname" /><br /> Last name: <input type="text" name="lastname" /> </form>

Unidade 1 A linguagem HTML


1.7 Formulrios

cria uma rea de uma linha onde poder ser digitado uma senha formato:
<input type=password name=texto size=valor maxlenght=valor>

<form> Password: <input type="password" name="pwd" /> </form>

35

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

cria um controle radiobutton formato:


<input type=radio name=texto value=texto checked> texto identificador

<form> <input type="radio" name="sex" value="male" /> Male<br /> <input type="radio" name="sex" value="female" /> Female </form>

Unidade 1 A linguagem HTML


1.7 Formulrios

cria um controle checkbox formato:


<input type=checkbox name=texto value=texto checked> texto identificador

<form> <input type="checkbox" name="vehicle" value="Bike" /> I have a bike<br /> <input type="checkbox" name="vehicle" value="Car" /> I have a car </form>

36

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

cria um boto de submit, reset ou outro qualquer formato:


<input type=tipo name=texto value=texto>

Unidade 1 A linguagem HTML


1.7 Formulrios

<input type=submit ...>


type=submit cria um boto que serve para enviar os dados do formulrio para o servidor name=texto nome lgico do campo

37

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

<input type=reset ...>


type=reset cria um boto que serve para apagar os dados de todos os campos do formulrio name=texto nome lgico do campo
<form name="input" action="html_form_action.asp" method="get"> Username: <input type="text" name="user" /> <input type="submit" value="Submit" /> </form>

Unidade 1 A linguagem HTML


1.7 Formulrios

cria uma rea de x linhas por y colunas para insero de texto <textarea name=nome rows=valor cols=valor> texto que aparece dentro </textarea>

<textarea rows="10" cols="30"> The cat was playing in the garden. </textarea>

38

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

select cria um controle onde pode ser escolhido um (list ou menu) ou mais itens dentro (list) de uma lista

Unidade 1 A linguagem HTML


1.7 Formulrios

cria um controle onde podem ser escolhidos um ou mais itens dentro de uma lista <select name=select size=valor multiple> <option>texto</option> </select>

39

14/02/13

Unidade 1 A linguagem HTML


1.7 Formulrios

cria um controle onde pode ser escolhido um item dentro de uma lista

<select name=select> <option>texto</option> </select>


<form action=""> <select name="cars"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="fiat" selected="selected">Fiat</ option> <option value="audi">Audi</option> </select> </form>

80

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

INTEGRIDADE: propriedade de proteger a exaAdo e a completeza de aAvos.


Recursos que permitem que se saiba se a informao foi, ou no, alterada, como o Hash, so necessrios para que se oferea essa garanAa;

Profo. Anderson asantos@unicarioca.edu.br

40

14/02/13

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Introduzido em Junho 1999 JSE Java Standard Edition


http://java.sun.com/javase/index.jsp

Java para desktop / workstation

JME Java Micro Edition


http://java.sun.com/javame/index.jsp

Java para pequenos dispositivos

JEE Java Enterprise Edition


Java para servidor
http://java.sun.com/javaee/index.jsp

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Todas as plataformas consistem de uma mquina virtual java (JVM) e uma API (Application Programming Interface).

41

14/02/13

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Arquiteturas em Camadas
Arquitetura centralizada
At 80s

Arquitetura 2 camadas

Camada Cliente Aplicaes Desktop


2.1 Servidor de Aplicao e Aplicao em Camadas

Unidade 2 Modelo de Programao WEB

Camada Servidora Servidor de Banco de Dados

Arquitetura 3 camadas
Camada Apresentao

Camada Aplicao
Servidor de Aplicao

Camada de Dados

Aplicaes Desktop

Servidor de Banco de Dados

42

14/02/13

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Arquitetura 3/4 camadas

Camada Apresentao

Aplicaes Web

Servidor de Web de Aplicao

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Arquitetura n camadas

Camada Aplicao

Camada de Dados
Servidor de Banco de Dados

Camada Apresentao

Camada de Aplicao

Camada de Dados

Camada Web

Clientes

Servidor de Web

Servidor de Aplicao

Servidor de Banco de Dados

43

14/02/13

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Camada de Aplicao

Camada Apresentao

Camada de Dados

Camada Web

Clientes

Servidor de Web Servidor de Aplicao Servidor de Banco de Dados

Os seguintes componentes podem existir na camada de apresentao: "Application client" (cliente no-Web) T ipicamente usa Swing como User Interface (UI) Tambm chamado "Console Application" Applets

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Camada de Aplicao

Camada Apresentao

Camada de Dados

Camada Web

Clientes

Servidor de Web Servidor de Aplicao Servidor de Banco de Dados

Componentes da camada Web podem incluir vrios mdulos, incluindo: Pginas HTML/XML estticas Servlets Programas em Java que rodam no servidor Web e que processam pedidos gerando respostas dinmicas Java Server pages (JSP) Templates HTML mais fceis de criar, mas contendo "scriplets" (trechos em Java) para a gerao de contedo dinmico So convertidas em servlets quando acessadas pela primeira vez JavaBeans Componentes tradicionais em Java que podem ser usados em servlets e JSPs

44

14/02/13

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Camada de Aplicao

Camada Apresentao

Camada de Dados

Camada Web

Clientes

Servidor de Web Servidor de Aplicao Servidor de Banco de Dados

Componentes da camada de aplicao so chamados Enterprise Java Beans (EJB)

Unidade 2 Modelo de Programao WEB


2.1 Servidor de Aplicao e Aplicao em Camadas

Camada Apresentao

Camada de Aplicao

Camada de Dados

Camada Web

Clientes

Servidor de Web

Servidor de Aplicao

Servidor de Banco de Dados

Observe que a camada de chamamos "de dados" pode ser um banco de dados ou outra coisa: Por exemplo, pode ser um sistema ERP, CRM ou outro sistema legado

45

14/02/13

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

A API de Servlet um conjunto de classes Java que define uma interface padro entre o cliente web e o servidor web.

java.lang.Object | +----javax.servlet.GenericServlet implements javax.servlet.Servlet | +----javax.servlet.http.HTTPServlet

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

javax.servlet.Servlet
destroy() Mtodo chamado pelo container onde o servlet est sendo executado para indicar que o servlet terminou. getServletConfig() Mtodo que retorna um objeto ServletConfig, que contm os parametros de inicializacao passados no arquivo web.xml getServletInfo() Retorna informaes sobre a aplicao, como autor, verso e copyright. init(ServletConfigconfig) Metodo chamado na inicializao do servlet. service(ServletRequestreq, ServletResponseres)
Mtodo que trata as requisies feitas a um servlet bem como a criao das respostas.

46

14/02/13

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

javax.servlet.http.HttpServlet
Deve-se estender os 2 mtodos abaixo para tratar requisies do tipo POST e GET.
doGet doPost

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

Tratador de requisies HTTP

Trata mtodos HTTP especficos: doGet(HttpServletRequestreq, HttpServletResponseresp) doPost(HttpServletRequestreq, HttpServletResponseresp)

doGet e doPost so chamados pelo mtodo service() da interface Servlet.

Subclasses reescrevem os mtodos doGet, doPost e podem reescrever os mtodos init() e destroy()

47

14/02/13

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

HttpServletRequest e HttpServletResponse

Os mtodos doGet(), doPost() recebem dois parmetros:


HttpServletRequest encapsula os parmetros da requisio HttpServletResponse encapsula a resposta ao cliente

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

HttpServletRequest

Interface que encapsula a requisio feita pelo cliente atravs do protocolo HTTP

Possui mtodos que permitem recuperar os dados da requisio:


cabealho dados de formulrios ou parmetros enviados informaes sobre a sesso do cliente

48

14/02/13

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor HttpServletRequest
Alguns mtodos definidos em HttpServletRequest
Manipulao de Parmetros
java.util.Enumeration getParameterNames()
Obtm listagem, contendo nomes de parmetros da requisio

java.lang.String[] getParameterValues(java.lang.String name)


Obtm valores do parmetro name da requisio

java.lang.String getParameter(java.lang.String name)


Obtm valor do parmetro name da requisio

Manipulao de Atributos
void setAttribute( java.lang.String name, java.lang.Object)
Coloca ou sobreescreve atributo no request identificado por name

java.util.Enumeration getAttributesNames()
Obtm listagem, contendo nomes de atributos da requisio

java.lang.String getAttribute(java.lang.String name)


Obtm valor do atributo name da requisio

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

HttpServletResponse
Interface que encapsula a resposta ao cliente

Possui um mtodo responsvel por recuperar o canal de resposta com o cliente


getWriter()
retorna um PrintWriter Ex: PrintWriter out = response.getWriter(); out.println( Escrevendo no cliente );

Tambm possvel configurar qual o tipo dos dados que esto sendo enviados de volta ao cliente
setContentType( String type ) Os tipos mais comuns so text/html, text/xml O mtodo setContentType deve ser chamado antes do mtodo getWriter

49

14/02/13

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

Hello World!

Unidade 2 Modelo de Programao WEB


2.2 Servlets e Componentes de um Servidor

Hello World!
Camada Cliente

index.html
Camada Servidora Servidor Web

Aplicaes Desktop

helloworld.java

50

14/02/13

Unidade 2 Modelo de Programao WEB


2.3 Estrutura de uma Aplicao WEB

JEE Deployment
Deployment de Aplicaes
Deployment o processo de instalar e customizar mdulos numa plataforma JEE Envolve vrias etapas:
Copiar o arquivo apropriado no servidor de aplicaes Configurar a aplicao atravs do deployment descriptor
O deployment descriptor contm informao que pode variar entre duas instalaes Exemplos: nomes de bancos de dados, de tabelas, de campos, segurana, etc.

Deixar o mdulo sob controle de um container


Isso freqentemente envolve a criao dinmica de um container usando uma ferramenta especial Isso necessrio quando o container est intimamente relacionado com os componentes do mdulo

Unidade 2 Modelo de Programao WEB


2.3 Estrutura de uma Aplicao WEB

JEE Deployment
Criao, composio e packaging de aplicaes
Um mdulo uma unidade de empacotamento Empacota um ou mais componentes do mesmo tipo H 3 tipos de mdulos:
Web Modules Unidade instalvel (deployable) contendo
Servlets Pginas JSP Bibliotecas de tags JSP Arquivos JAR de biblioteca Java Documentos HTML/XML Outros recursos (imagens, arquivos de classes, applets, ...)

O arquivo chamado "Web ARchive file" (WAR file) WAR = arquivo JAR mas com diretrio WEB-INF contendo um deployment descriptor num arquivo web.xml
O servidor JEE examina o Deployment Descriptor para saber como tratar o componente ou aplicao

51

14/02/13

Unidade 2 Modelo de Programao WEB


2.3 Estrutura de uma Aplicao WEB

JEE Deployment
Criao, composio e packaging de aplicaes
Um mdulo uma unidade de empacotamento Empacota um ou mais componentes do mesmo tipo H 3 tipos de mdulos:
EJB Modules

Unidade instalvel (deployable) contendo


EJBs Arquivos JAR de biblioteca Java Outros recursos, etc.

O arquivo um arquivo JAR mas com deployment descriptor ejb-jar.xml no diretrio META-INF

Unidade 2 Modelo de Programao WEB


2.3 Estrutura de uma Aplicao WEB

JEE Deployment
Criao, composio e packaging de aplicaes
Um mdulo uma unidade de empacotamento Empacota um ou mais componentes do mesmo tipo H 3 tipos de mdulos:
Java Modules

Um grupo de classes clientes empacotadas em arquivos JAR O deployment descriptor de um Java Module est num arquivo chamado application-client.xml

52

14/02/13

Unidade 2 Modelo de Programao WEB


2.3 Estrutura de uma Aplicao WEB

JEE Deployment
Criao, composio e packaging de aplicaes
Mdulos podem ser agrupados em aplicaes num pacote chamado "EAR file" (Enterprise ARchive) O deployment descriptor de uma aplicao est num arquivo chamado application.xml Observe que os vrios deployment descriptors envolvidos permitem um melhor reuso dos mdulos

10 6

Unidade 2 Modelo de Programao WEB


2.4 Arquivo de congurao web.xml

Profo. Anderson asantos@unicarioca.edu.br

53

14/02/13

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio
<form name="input" action="html_form_action.asp" method="get"> Username: <input type="text" name="user" /> <input type="submit" value="Submit" /> </form>

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

54

14/02/13

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

55

14/02/13

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

56

14/02/13

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

57

14/02/13

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Formulrio

<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <form action="tratandoformulario" method="post"> Texto: <input type="text" name="texto"><br> Password: <input type="password" name="senha"><br> Radio: <input type="radio" name="radio" value="1">UM &nbsp;<input type="radio" name="radio" value="2">DOIS<br> Checkbox: <input type="checkbox" name="checkbox" value="10">UM<br> Select: <select name="select"> <option value="1">UM</option> <option value="2">DOIS</option> <option value="3">TR&Ecirc;S</option> </select> <br> Textarea: <textarea name="textarea"></textarea><br> <input type="submit" value="enviar">&nbsp;<input type="reset" value="limpar"> </form> </body> </html>

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Gerenciamento de sesso
O protocolo HTTP um protocolo sem estado No possvel a princpio conhecer o estado do cliente anterior uma requisio

O gerenciamento de sesso prov uma maneira de identificar usurios atravs de vrias requisies HTTPs e recuperar suas informaes Dados do estado do cliente

Para obter uma sesso: HttpSession getSession()

Obtm sesso existente, caso no exista retorna uma nova sesso.


HttpSession getSession(boolean create)

Obtm sesso existente ou cria uma nova sesso dependendo do valor de o parmetro create

Funciona a base de cookie ou reescrita de URL

58

14/02/13

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Gerenciamento de sesso
Principais mtodos
Mtodos para manipulao de objetos em sesso
void removeAttribute(java.lang.String name)
Retira objeto da sesso

void setAttribute(java.lang.String name, java.lang.Object value)


Coloca ou sobreescreve objeto na sesso identificado por name

java.lang.Object getAttribute(java.lang.String name)


Obtm objeto da sesso

java.util.Enumeration getAttributeNames()
Obtm os nomes de todos os objetos armazenados na sesso

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Gerenciamento de sesso
Tempo de durao da sesso
As sesses em geral tm intervalo mximo de tempo que podem ficar inativas Padro = 1.800 segundos public int getMaxInactiveInterval() public void setMaxInactiveInterval(intinterval) - interval < 0 => garante que a sesso nunca ser interrompida.

As sesses tambm podem ser encerradas explicitamente pelo programador:


public void invalidate()

59

14/02/13

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Cookie
Os cookies podem armazenar informaes sobre o computador do usurio para recuperao, mais tarde, na mesma sesso de navegao ou em sesses de navegao futuras.

Por exemplo, os cookies podem ser utilizados em um aplicativo de compras para indicar as preferncias do cliente.

Os cookies so pequenos arquivos que so enviados por um servlet (ou outra tecnologia semelhante) como parte de uma resposta a um cliente.

Unidade 3 Interfaces Web com JSP


3.2 Interao com servlets

Cookie
Cookie c = new Cookie( language, getISBN( language ) ); Criao de um cookie. c.setMaxAge( 120 ); Configurar a quantidade de segundos at que o cookie pode ser removido response.addCookie( c ); Adiciona o cookie resposta do cliente, devendo preceder getWriter cookies = request.getCookies(); Obtm cookies do cliente

60

14/02/13

121
Unidade 3 Interfaces Web com JSP
3.1 JSP

So documentos baseados em HTML e XML que contm cdigos Java.

Profo. Anderson asantos@unicarioca.edu.br

12 2

Unidade 3 Interfaces Web com JSP


3.1 JSP

HTML

<HTML> <HEAD> <TITLE>Ol</TITLE> <BODY> Ol,a hora <% out.println(Ol Mundo) %> <BR> </BODY> </HTML>

JAVA

Profo. Anderson asantos@unicarioca.edu.br

61

14/02/13

12 3

Unidade 3 Interfaces Web com JSP


3.1 JSP

JSP ---- texto html ------- texto html ------- texto html ---<% cdigo java %> ---- texto html ---<% cdigo java %> ---- texto html ------- texto html ----

Servlet out.print(texto html) out.print(texto html) out.print(texto html) -- cdigo java -out.print(texto html) -- cdigo java -out.print(texto html) out.print(texto html)

Profo. Anderson asantos@unicarioca.edu.br

12 4

Unidade 3 Interfaces Web com JSP


3.1 JSP CICLO DE VIDA DE UMA PGINA JSP Pgina JSP traduzida em servlet Pgina Criada Servlet compilado Servlet instanciado e carregado na memria Inicializao Processamento da Solicitao da pgina JSP Req.#1 Req.#2 Req.#3 Req.#4 Req. #5 Req.#6

Sim

No Servidor reiniciado

No

No Pgina Modificada

Sim

No

Sim

No

No

No

Sim

No

Sim

No

Sim

No

Sim

No

Sim

No

Sim

No

Sim

No

Sim

Sim

Sim

Sim

Sim

Sim

Profo. Anderson asantos@unicarioca.edu.br

62

14/02/13

12 5

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
As pginas JSP podem conter codificao Java e tags HTML. Para que a codificao Java possa ser escrita na pgina, devemos identificar, para que o tradutor JSP entenda o que realmente Java e o que HTML.

<HTML> <HEAD> <TITLE>Ol</TITLE> <BODY> Ol,a hora <% out.println(Ol Mundo!); %> <BR> </BODY> </HTML>
Profo. Anderson asantos@unicarioca.edu.br

12 6

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP

Para isto, a especificao JSP define trs categorias de tags onde a codificao Java pode ser inserida.
Scripting, Directive e Action

Profo. Anderson asantos@unicarioca.edu.br

63

14/02/13

12 7

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP

Scripting: so elementos que incluem cdigos Java na pgina. Possuem trs subformas:
Declaraes: usado para declarar, ou opcionalmente definir, uma varivel ou um mtodo Java.
<%! declaration %> Ou <jsp:declaration> declaration </jsp.declaration> Exemplo: <%! Vector = new Vector(); %> ou <jsp.declaration> Vector = new Vector(); </jsp.declaration>

Profo. Anderson asantos@unicarioca.edu.br

12 8

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Scripting: so elementos que incluem cdigos Java na pgina. Possuem trs subformas:
Declaraes
Qualquer varivel declarada vlida por toda a pgina JSP, e portanto global para toda a pgina. O mesmo acontece para os mtodos.

Profo. Anderson asantos@unicarioca.edu.br

64

14/02/13

12 9

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Scripting: so elementos que incluem cdigos Java na pgina. Possuem trs subformas:
Scriptlets: contm cdigos Java.
<% scriptlet code %> Ou <jsp.scriptlet>code fragment</jsp.scriptlet> Exemplo: <% for (int i=0; i<10; i++){ %> Ol Mundo!!! <% } %>

Profo. Anderson asantos@unicarioca.edu.br

13 0

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Scripting: so elementos que incluem cdigos Java na pgina. Possuem trs subformas:
Scriptlets:

Servidor
<% for (int i=0; i<10; i++){ %> Ol Mundo!!! <% } %>
Profo. Anderson asantos@unicarioca.edu.br

Cliente
Ol Mundo!!! Ol Mundo!!! Ol Mundo!!! Ol Mundo!!! Ol Mundo!!! Ol Mundo!!! Ol Mundo!!! Ol Mundo!!! Ol Mundo!!! Ol Mundo!!!

65

14/02/13

13 1

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Scripting: so elementos que incluem cdigos Java na pgina. Possuem trs subformas:
Expresses: so usadas para a sada de expresses em Java para o equipamento do cliente.
<%= expression %> Ou <jsp.expression>expression</jsp.expression> Exemplo: No servidor (pgina JSP): The number of Tokens in this statement is <%= countTokens(The number of Tokens in this statemente is n) %> Na mquina cliente: The number of Tokens in this statement is 9.

Profo. Anderson asantos@unicarioca.edu.br

13 2

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP

Directive Elements
Papel: prover informaes sobre a pgina ao container JSP Trs diretivas esto disponveis:
Page: serve para especificar atributos da pgina

<%@ page attributes %> Ou <jsp:directive.page attributes />


Profo. Anderson asantos@unicarioca.edu.br

66

14/02/13

13 3

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP

Atributo

Page: serve para especificar atributos da pgina Exemplo:


Descrio Lista os pacotes java que devem ser importados para a pgina. Se a pgina participa ou no de uma sesso. A especificao do conjunto de caracteres usado na pgina. O padro ISO-8859-1 e UTF-8.

import session pageEncoding

Demais, podem ser encontradas na especificao Java: http://java.sun.com/products/jsp

Profo. Anderson asantos@unicarioca.edu.br

13 4

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Include: serve para incluir outra pgina na atual. <%@ include attribute %> Ou <jsp:directive.include attribute /> O atributo o nome do arquivo a ser includo. Se o arquivo for um fragmento de um cdigo JSP, a especificao sugere que a extenso seja alterada para .jspf.

Profo. Anderson asantos@unicarioca.edu.br

67

14/02/13

13 5

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Action elements: so definidos pela especificao JSP como quelas que executam alguma operao na pgina. As padres so:
<jsp:useBean> <jsp:setProperty> <jsp:getProperty> <jsp:param> <jsp:include> <jsp:forward> <jsp:plugin> <jsp:params> <jsp:fallback> <jsp:attribute> <jsp:body> <jsp:invoke> <jsp:doBody>

Profo. Anderson asantos@unicarioca.edu.br

13 6

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Action elements:
<jsp:useBean>
Torna um JavaBean (classe Java que atende a alguns requisitos) disponvel para a pgina. Requisitos: no h argumentos para a construtora; e toda propriedade que o bean disponibiliza para o uso do cliente tem um mtodo que pode ser usado para especificar o valor e outro para retornar o valor. O padro : public type getSomeParameter() {return someParameter;} public boolean isSomeParameter() {return someBooleanParameter;} public void setSomeParameter() { //set the parameter } Atributos: id, scope, class, beanname e type.

Profo. Anderson asantos@unicarioca.edu.br

68

14/02/13

13 7

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Action elements:
<jsp:setProperty>: usado para configurar uma propriedade de um JavaBean.
Atributos: name, property, param e value.

<jsp:getProperty>: usado para retornar uma propriedade de um JavaBean.


Atributos: name e property.

Profo. Anderson asantos@unicarioca.edu.br

13 8

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP

Action elements:
<jsp:include>: incluso de pginas JSP.
<%@ include file=teste.jspf> ou ainda, <jsp.directive.include file=teste.jspf/> Nestes casos, as pginas so includas em tempo de traduo, e no precisam ser uma pgina JSP completa e vida. No caso da action include, ocorre na request, ou seja, o arquivo JSP para de ser processado e o request atual transmitido para a pgina include. O arquivo include passa a resposta para o response. Neste caso os arquivos include precisam ser arquivos JSP completos e vlidos, ou servlets.

Profo. Anderson asantos@unicarioca.edu.br

69

14/02/13

13 9

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP

Action elements:
<jsp:include>: incluso de pginas JSP.
Formato: <jsp:include page=URL flush=true|false> <jsp:param name=paramName value=paramValue/> </jsp:include> O atributo page obrigatrio. O atributo flush no obrigatrio e indica se o buffer de sada deve ser esvaziado antes do arquivo de include ser chamado. O valor padro false. Para passar parmetros para a pgina que ser includa, devese usar o elemento param, que opcional. Se este for usado, seus atributos name e value so obrigatrios.

Profo. Anderson asantos@unicarioca.edu.br

14 0

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP

Action elements:

<jsp:forward>: redirecionamento de pginas JSP.

Com o redirecionamento, o processamento da pgina atual interrompido e o request enviado para a outra pgina web. Esta outra pgina completa o response para a pgina chamadora. A execuo nunca retorna para a pgina chamadora. O elemento include pode acontecer em qualquer momento do processamento da pgina. No caso do forward no. S pode ocorrer antes que qualquer coisa seja escrita no browser do cliente. Formato: <jsp:forward page=URL > <jsp:param name=paramName value=paramValue/> </jsp:forward>

Profo. Anderson asantos@unicarioca.edu.br

70

14/02/13

14 1

Unidade 3 Interfaces Web com JSP


3.1 JSP

Elementos JSP
Comentrios:
Podem ser usados o padro de comentrio do HTML (<!NONO ONON -->) ou do JSP (<%-- NONO ONON -->). A diferena que no primeiro caso o comentrio aparece no cdigo fonte presente na mquina cliente e no segundo caso no.

Outros tags que no estiverem compreendidos nos descritos anteriormente iro compor o cdigo cliente no equipamento do cliente.

Profo. Anderson asantos@unicarioca.edu.br

14 2

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos

podem ser usados, sem a necessidade de serem declarados ou inicializados. So eles: request, response, out, session, config, exception e application. request: representa o request do protocolo HTTP.

normalmente utilizado para ler os parmetros do request. Parmetros enviados pela URL:
http://www.server.com/resource? name1=value1&name2=value2

Enviados atravs de um formulrio.

Profo. Anderson asantos@unicarioca.edu.br

71

14/02/13

14 3

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos
request: Os parmetros podem ser lidos atravs dos seguintes mtodos: String request.getParameter(String name); Retorna o valor do parmetro name String[] request.getParameterValues(String name); Quando o parmetro name tem mais de um valor, este mtodo retorna todos Enumeration request.getParameterNames(); Retorna todos os nomes de parmetros utilizados Map getParameterMap(); Retorna todos os pares nomes e valores de parmetros
Profo. Anderson asantos@unicarioca.edu.br

14 4

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos
response: representa o response do protocolo HTTP. Pode ser usado para configurar headers, cookies e redirecionar o browser do cliente Mtodos: public void addHeader(String name, String value) public void addCookie(Cookie cookie) public void sendRedirect(String location)

Profo. Anderson asantos@unicarioca.edu.br

72

14/02/13

14 5

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos
Exemplo: <%

out: uma referncia ao mtodo usado para escrever na tela do browser.

Iterator categories = faqs.getAllCategories(); while(categories.hasNext()) { String category = (String)categories.next(); out.println(<p><a href=\ + replaceUnderscore(category) + \> + category + </a></p>); } %>

O objeto out uma instncia de javax.jsp.JspWriter. Um dos propsitos do JSP separar o HTML para o cdigo Java.
Profo. Anderson asantos@unicarioca.edu.br

14 6

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos

session: o protocolo HTTP stateless, ou seja, a cada request/ response no h nenhuma referncia ao request/response anterior.
Entretanto, em aplicaes web necessrio que esta memria seja preservada. Para isto, interessante que algumas informaes permaneam inalteradas (acessveis) entre requests/responses diferentes, simulando uma conversa entre o cliente e a aplicao servidora. Este conceito alcanado atravs de sesses (session). Uma session se refere a conversa inteira entre o cliente e o servidor. Os componentes JSP participam, automaticamente, de uma session, a menos que a pgina use a diretiva page para configurar o atributo session como false. Somente objetos podem ser armazenados em uma session. Tipos primitivos Java no o podem. Para armazenar tipos primitivos, deve-se usar as classes Integer ou Boolean.

Profo. Anderson asantos@unicarioca.edu.br

73

14/02/13

14 7

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos
session: Os mtodos para armazenar e recuperar as informaes so: Object setAttribute(String name, Object value); Object getAttribute(String name); Enumeration getAttributeNames(); void removeAttribute(String name); Geralmente no necessrio escrever um cdigo especial para gerenciar uma session.

Profo. Anderson asantos@unicarioca.edu.br

14 8

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos
config: usado para retornar parmetros especficos da inicializao. Estes parmetros so configurados no descritor de instalao (deployment descriptor), mas so especficos para cada pgina.

Profo. Anderson asantos@unicarioca.edu.br

74

14/02/13

14 9

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos
exception: est disponvel apenas dentro das pginas de erro. uma referncia para java.lang.Throwable que provoca uma chamada ao servidor para chamar a pgina de erro.

Profo. Anderson asantos@unicarioca.edu.br

15 0

Unidade 3 Interfaces Web com JSP


3.1 JSP

Objetos Implcitos
application: representa o ambiente da aplicao web. Ser usado para retornar os parmetros de configurao da aplicao. O valor do parmetro pode ser acessado usando o seguinte mtodo: application.getInitParameter(String name); Este objeto tem escopo da aplicao.

Profo. Anderson asantos@unicarioca.edu.br

75

14/02/13

15 1

Unidade 3 Interfaces Web com JSP


3.1 JSP

Diretiva taglib
So tags personalizadas ou customizadas; Estende a classe SimpleTagSupport, sobrecarregando os mtodos que so necessrios para prover o comportamento necessrio;
doTag()

Passos
1. Criar a(s) classe(s) que implementa(m) a tag; 2. Criar o Descritor da biblioteca tag (TLD);
um documento XML-like que contm informaes sobre a tag.

3. Colocar a(s) nova(s) classe(s) na pasta /WEB-INF/classes ou em um arquivo .jar na pasta / WEB_INF/lib; 4. Alterar o deployment descriptor para mapear a nova tag; 5. A partir da pgina JSP, importar (diretiva taglib) a classe.

Profo. Anderson asantos@unicarioca.edu.br

Unidade 3 Interfaces Web com JSP


3.1 JSP

Java Beans
So classes que seguem algumas convenes:

Uma boa prtica acrescentar o termo bean ao nome da classe que ser um java bean; Conter um construtor sem argumentos, mesmo que no faa nada; public Bean() { }!
!

76

14/02/13

Unidade 3 Interfaces Web com JSP


3.1 JSP

Java Beans
So classes que seguem algumas convenes:
!

Crie atributos privados e mtodos get e set relacionados;


private String nome; ! public String getNome() ! { ! ! !return nome;! } ! public void setNome(String novo) ! {! ! !nome = novo; ! }!

Unidade 3 Interfaces Web com JSP


3.1 JSP

JavaServer Pages
public class User { private String id; private String surname; public void setId(String id) {this.id = id; } public String getId() { return id; } public void setSurname(String surname) {this.surname = surname; } public String getSurname() {return surname; } } <jsp:useBean id=userA class=User /> <jsp:setProperty name=userA property=surname value=Smith /> <jsp:setProperty name=userA property=id value=<%= validateId(86753) %> /> The user with id <jsp:getProperty name=userA property=id /> has a surname of <jsp:getProperty name=userA property=surname />

The user with id 86753 has a surname of Smith

77

14/02/13

Unidade 3 Interfaces Web com JSP


3.1 JSP

Java Beans
So classes que seguem algumas convenes: Caso o atributo seja um conjunto de valores (por exemplo array), faa mtodos para capturar todos os elementos ou apenas um deles
private String[] telefone; ! public String[] getTelefone() ! { ! !return telefone; ! } ! public String getTelefone(int index) ! { ! !return telefone[index]; ! }!

Unidade 3 Interfaces Web com JSP


3.1 JSP

Java Beans
So classes que seguem algumas convenes:

Se o atributo for booleano, substituir o get por is. private boolean enabled;! public boolean isEnabled() ! { ! !return enabled; ! }!

78

14/02/13

15 7

Unidade 4 Uso de padres de projeto


4.1 Integrao com Banco de Dados no Servidor

INTEGRIDADE: propriedade de proteger a exaAdo e a completeza de aAvos.


Recursos que permitem que se saiba se a informao foi, ou no, alterada, como o Hash, so necessrios para que se oferea essa garanAa;

Profo. Anderson asantos@unicarioca.edu.br

Unidade 4 Uso de padres de projeto


4.1 Integrao com Banco de Dados no Servidor

Acesso a bancos de dados


Servlets e JSPs so aplicaes Java e, como qualquer outra aplicao Java, podem usar JDBC e integrar-se com um banco de dados relacional; Pode-se usar java.sql.DriverManager e obter a conexo da forma tradicional
Class.forName("nome.do.Driver"); Connection con = DriverManager.getConnection("url", "nm", "ps");

Podem-se obter as conexes de um pool de conexes atravs de javax.sql.DataSource via JNDI (JEE)
DataSource ds = (DataSource)ctx.lookup("jbdc/Banco"); Connection con = ds.getConnection();

79

14/02/13

Unidade 4 Uso de padres de projeto


4.1 Integrao com Banco de Dados no Servidor

Servlet que faz um SELECT em banco

Para tornar um servlet capaz de acessar bancos de dados, basta incluir cdigo JDBC dentro dele

Unidade 4 Uso de padres de projeto


4.1 Integrao com Banco de Dados no Servidor
<%@page language="java" import="java.sql.*" %> <%

API

JSP que faz um SELECT


String connectionURL = "jdbc:mysql://localhost:3306/ime"; Connection connection = null; Statement statement = null; ResultSet rs = null;

%>

<html><body> <% try{

Class.forName("com.mysql.jdbc.Driver").newInstance(); connection = DriverManager.getConnection(connectionURL, "aluno", "aluno"); statement = connection.createStatement(); rs = statement.executeQuery("SELECT * FROM tabela1"); while (rs.next()) { out.println(rs.getString("texto")+"<br>"); out.println("-"); }

rs.close(); out.println("end"); }catch(Exception ex) { ex.printStackTrace(); out.println("Exception"); } %> </body></html>

80

14/02/13

Unidade 4 Uso de padres de projeto


4.1 Integrao com Banco de Dados no Servidor
<%@page language="java" import="java.sql.*" %> <%

JSP que faz um SELECT


String connectionURL = "jdbc:mysql://localhost:3306/ime"; Connection connection = null; Statement statement = null; ResultSet rs = null;

%>

CONEXO

<html><body> <% try{

Class.forName("com.mysql.jdbc.Driver").newInstance(); connection = DriverManager.getConnection(connectionURL, "aluno", "aluno"); statement = connection.createStatement(); rs = statement.executeQuery("SELECT * FROM tabela1"); while (rs.next()) { out.println(rs.getString("texto")+"<br>"); out.println("-"); }

rs.close(); out.println("end"); }catch(Exception ex) { ex.printStackTrace(); out.println("Exception"); } %> </body></html>

Unidade 4 Uso de padres de projeto


4.1 Integrao com Banco de Dados no Servidor
<%@page language="java" import="java.sql.*" %> <%

JSP que faz um SELECT


String connectionURL = "jdbc:mysql://localhost:3306/ime"; Connection connection = null; Statement statement = null; ResultSet rs = null;

%>

<html><body> <% try{

Class.forName("com.mysql.jdbc.Driver").newInstance(); connection = DriverManager.getConnection(connectionURL, "aluno", "aluno"); statement = connection.createStatement(); rs = statement.executeQuery("SELECT * FROM tabela1"); while (rs.next()) { out.println(rs.getString("texto")+"<br>"); out.println("-"); }

CONSULTA

rs.close(); out.println("end"); }catch(Exception ex) { ex.printStackTrace(); out.println("Exception"); } %> </body></html>

81

14/02/13

16 3

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

INTEGRIDADE: propriedade de proteger a exaAdo e a completeza de aAvos.


Recursos que permitem que se saiba se a informao foi, ou no, alterada, como o Hash, so necessrios para que se oferea essa garanAa;

Profo. Anderson asantos@unicarioca.edu.br

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

Servlet que usa DAO


Misturar cdigo de servlet com banco de dados no uma boa idia. O ideal disponibilizar uma interface independente de banco para o servlet

82

14/02/13

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

Exemplo de DAO
O DAO um objeto que isola o servlet da camada de dados, deixando-o vontade para mudar a implementao Faa-o sempre implementar uma interface Java

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

Descrio
um paradigma de desenvolvimento e design que separa a aplicao em trs partes distintas:
representa os dados do programa responsvel por apresentar os dados resultantes do modelo responde as ordens do usurio, atuando sobre os dados.

83

14/02/13

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

MVC no mundo Java


MVC web application frameworks:
Aranea Cocoon CodeCharge Studio JSF Makumba Web development framework in the form of JSP Tag Library and Java API that is based on MVC, but willingly breaks it Oracle Application Development Framework Oracle Application Framework Play Framework PureMVC, a framework for Java Sling, used to create content based applications on top of JCR. Supported scripting languages are JSP, server-side JavaScript, Ruby, Velocity

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

MVC no mundo Java


MVC web application frameworks:
Spring MVC Framework Struts Struts2 Stripes Tapestry Wavemaker, a WYSIWYG development platform for Ajax web applications. WebObjects WebWork Wicket Web Dynpro Java Java Stand-alone Application Toolkit: Swing, which uses a Model-Delegator pattern, where the view and controller are combined, but the model is separate. ZEST - a lightweight Web framework that enables MVC and REST architectural pattern. ZK - an Ajax framework that enables the Ajax-level MVC pattern.

84

14/02/13

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

Modelos derivados do MVC


1 4 BROWSER 2
1

Model 1 page-centric
1 4 2
A pgina JSP responsvel por processar as requisies do usurio e respond-las;

BROWSER BROWSER

4 Container Servlet Dados

Container Servlet

Dados

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

Os dados so acessados pelo Java bean e por isso h uma separao da camada de apresentao;

Container Servlet

Dados

Este modelo pode ser usado para aplicaes mais simples, porm no recomendado para aplicaes mais complexas;

85

14/02/13

Unidade 4 Uso de padres de projeto


4.2 Classes de Negcio

Model 2 servlet-centric
1

Abordagem hbrida de JSP e Servlet, onde o JSP usado para gerar a camada de apresentao e o Servlet para processar as tarefas; Controller: Servlet
Dados

BROWSER
5

View: JSP Model: Bean

86

Anda mungkin juga menyukai