Prof. Ismael H F Santos

42
1 April 05 Prof. Ismael H. F. Santos - [email protected] 1 Módulo IVb - JSP Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - [email protected] 2 Ementa Módulo IVb – Java Server Pages - JSP Introdução Elementos de Script e Diretivas JSP e Servlets Java Beans e JSP

Transcript of Prof. Ismael H F Santos

1

April 05 Prof. Ismael H. F. Santos - [email protected] 1

Módulo IVb - JSP

Prof. Ismael H F Santos

April 05 Prof. Ismael H. F. Santos - [email protected] 2

Ementa

Módulo IVb – Java Server Pages - JSPIntroduçãoElementos de Script e DiretivasJSP e ServletsJava Beans e JSP

2

April 05 Prof. Ismael H. F. Santos - [email protected] 3

Linguagem de Programação JAVAIsmael H. F. Santos, Apostila UniverCidade, 2002

The Java Tutorial: A practical guide for programmersTutorial on-line: http://java.sun.com/docs/books/tutorial

Java in a NutshellDavid Flanagan, O´Reilly & Associates

Just Java 2Mark C. Chan, Steven W. Griffith e Anthony F. Iasi, Makron

Books.Java 1.2

Laura Lemay & Rogers Cadenhead, Editora Campos

Bibliografia

April 05 Prof. Ismael H. F. Santos - [email protected] 4

LivrosCore Java 2, Cay S. Horstmann, Gary Cornell

Volume 1 (Fundamentos)Volume 2 (Características Avançadas)

Java: Como Programar, Deitel & DeitelThinking in Patterns with JAVA, Bruce Eckel

Gratuito. http://www.mindview.net/Books/TIJ/

3

April 05 Prof. Ismael H. F. Santos - [email protected] 5

Java ServerPages

POO-Java

April 05 Prof. Ismael H. F. Santos - [email protected] 6

Java Server PagesJava Server Pages (JSP) é uma especificaçãoda SUN que possibilita colocar código fonte em Java dentro de HTML

E não o contrário, como acontece com os servlets.

Isso permite o controle da aparência da página através de softwares de design (HomeSite, DreamWeaver, FrontPage, etc.)

4

April 05 Prof. Ismael H. F. Santos - [email protected] 7

JSP (Java Server Pages)

Tecnologia Java para geração de conteúdo dinâmicoO texto HTML é escrito junto com as tags JSP e código JavaNão é uma idéia nova sendo usado em tecnologias concorrentes: ASP, PHP, Server-Side JavaScript e Cold FusionTecnologias concorrentes e similares à JSP:

Cold Fusion (Macromedia)PHPASP, Active Server Pages (Microsoft)

April 05 Prof. Ismael H. F. Santos - [email protected] 8

Java Server Pages

Uma página JSP consiste de um documento no formato de texto que possui código HTML e código Java.Os trechos de código em Java em uma página JSP são denominados scriptlets.Páginas JSP possuem uma extensão diferente de .html, para que o servidor Webas identifique como “programas”: .jsp<H1>Exemplo</H1>

<% for(int i = 0; i < 10/ i++) { %><P>Um número:” <%= i %> </P>

<% }%><TABLE><TR><TD>...</TR></TABLE>

5

April 05 Prof. Ismael H. F. Santos - [email protected] 9

Processamento de JSP

April 05 Prof. Ismael H. F. Santos - [email protected] 10

JSP (Java Server Pages)

6

April 05 Prof. Ismael H. F. Santos - [email protected] 11

JSP Servlets

Arquivos JSP são automaticamente traduzidos em servlets pelo contêiner.

Ou seja, após um pré-processamento dos scriptlets, páginas JSP acabam por serem traduzidas em servlets.

Quando uma página JSP é acessada pela primeira vez, o contêiner gera a servlet correspondente e a executa.A servlet permanece em memória após a primeira chamada.Essa servlet somente é recompilada quando o arquivo .jsp é modificado.

April 05 Prof. Ismael H. F. Santos - [email protected] 12

JSP Servlets

7

April 05 Prof. Ismael H. F. Santos - [email protected] 13

Programando scriptlets

Para importar um pacote em uma página JSP:Use a diretiva <%@ page importExemplo: <%@ page import="java.sql.*" %>

Para inserir código Java em uma página JSP, delimite esse código por <% e %>O tag <%=

Faz com que a expressão Java entre os tags <%= e %> seja avaliada, convertida em string e enviada para o browser.Para escrever código de inicialização, utilize o método jspInit na seção de declarações (entre <%! e %>)

April 05 Prof. Ismael H. F. Santos - [email protected] 14

Objetos implícitos no JSP

O JSP possui diversos objetos predefinidos (objetos implícitos):

outrequestsession

Exemplos de usoout.println(“string”);request.getParameter(“parameterName”)session.setAttribute("username", username);session.getAttribute("username");

8

April 05 Prof. Ismael H. F. Santos - [email protected] 15

Exemplo de aplicação JSP<HTML><HEAD><TITLE>Seja bem-vindo</TITLE></HEAD><BODY><%String user = request.getParameter("usuario");if (user == null)

user = “Mundo";%><H1>Seja bem-vindo</H1><P>Oi, <%= user %></BODY></HTML>

April 05 Prof. Ismael H. F. Santos - [email protected] 16

JSP (Exemplo)

9

April 05 Prof. Ismael H. F. Santos - [email protected] 17

Uso de JSP

Páginas JSP também necessitam de Web Servers específicos.Em geral, um servidor de servlets também éum servidor de JSPPara disponibilizar um arquivo JSP basta gravá-lo em qualquer pasta visível do servidor com extensão jsp

April 05 Prof. Ismael H. F. Santos - [email protected] 18

Uso de JSP - Comparações

JSP versus ASPA parte dinâmica do JSP é escrita em Java, e não VB ou outra linguagem específica da Microsoft.

ASP requer uso do Windows NT e servidor ISS, enquanto JSP roda em diversos sistemas e servidores.

JSP é um pouco mais difícil.JSP permite reuso de componentes via JavaBeans e EJB; ASP cria componentes Active X / COM.

10

April 05 Prof. Ismael H. F. Santos - [email protected] 19

Uso de JSP - Comparações

JSP versus ServletsJSP não permite fazer nada que servlets não façam.JSP é mais fácil.Para escrever o HTML em servlets, código fica cheio de comandos de escrita.JSP separa conteúdo da aparência: pessoas diferentes podem trabalhar em tarefas dfierentes: web designers constróem o HTML, deixando espaços para que programadores insiram o conteúdo dinâmico.

April 05 Prof. Ismael H. F. Santos - [email protected] 20

Uso de JSP - Comparações

JSP versus JavaScriptJavaScript é capaz de gerar HTML dinamicamente no cliente, mas esta funcionalidade só é útil se a informação dinâmica depende do ambiente do cliente.JavaScript não pode acessar recursos do servidor, principalmente banco de dados.

11

April 05 Prof. Ismael H. F. Santos - [email protected] 21

Uso de JSP - Comparações

JSP versus ASPA parte dinâmica do JSP é escrita em Java, e não VB ou outra linguagem específica da Microsoft.

ASP requer uso do Windows NT e servidor ISS, enquanto JSP roda em diversos sistemas e servidores.

JSP é um pouco mais difícil.JSP permite reuso de componentes via JavaBeans e EJB; ASP cria componentes Active X / COM.

April 05 Prof. Ismael H. F. Santos - [email protected] 22

Execução de JSP

Quando um usuário faz uma requisição a uma página JSP:

Se for a primeira, a página jsp é convertida em um servlet e compiladaEste servlet é invocado e retorna como resposta uma string HTMLEsta string é retornada para o cliente

Todo o processamento ocorre no servidor, apenas o Html é retornado

12

April 05 Prof. Ismael H. F. Santos - [email protected] 23

Elementos JSP

Uma página JSP pode ter três tipos de elementos:

Elementos de Script que são inseridos diretamente no servletDiretivas que permitem a manipulação do código gerado como servletAções que possibilitam o uso de outros componentes, como Java Beans

April 05 Prof. Ismael H. F. Santos - [email protected] 24

Elementos Script e

Diretivas JSP

POO-Java

13

April 05 Prof. Ismael H. F. Santos - [email protected] 25

Elementos de Script

Os elementos de script JSP que podem ser inseridos em uma página HTML são:

Expressões que são avaliadas e inseridas na saída do servletScriptlets, trechos de código inseridos no método _jspserviceDeclarações inseridas fora dos métodos do servlet

April 05 Prof. Ismael H. F. Santos - [email protected] 26

JSP vs. HTML

A maior parte de um arquivo jsp consiste em tags HTMLSão passadas como saída do servlet Páginas jsp são criadas com ferramentas HTMLComentários JSP são expressos como <%---->

14

April 05 Prof. Ismael H. F. Santos - [email protected] 27

Expressões

Usadas para inserir valores diretamente na saídaSintaxe:<%= expressão java %>A expressão é avaliada, convertida para string e inserida na página

April 05 Prof. Ismael H. F. Santos - [email protected] 28

Expressões

As expressões podem ser qualquer comando Java que retorne valorExemplo:Data: <%= new java.util.Date() %>Expressões são muito úteis na atribuição de valores para parâmetros html:

<font size = ‘<%Math.random()*5%>’ >

15

April 05 Prof. Ismael H. F. Santos - [email protected] 29

Variáveis pré-definidas

Existem variáveis em JSP que representam os objetos dos servlets:

outrequestresponsesession

Exemplo:Host: <%request.getServerName()%>

April 05 Prof. Ismael H. F. Santos - [email protected] 30

Elementos XML

As tags jsp podem ser escritas no formato XMLExpressões JSP podem ser escritas:<jsp:expression>

expressão java</jsp:expression>

16

April 05 Prof. Ismael H. F. Santos - [email protected] 31

Scriptlets

Trechos de código JavaDelimitados por <% e %>Sintaxe XML:

<jsp:scriptlet>código java

</jsp:scriptlet>Podem acessar as variáveis pré-definidas

April 05 Prof. Ismael H. F. Santos - [email protected] 32

Scriptlets

Exemplo:<%

String cor = request.getParameter(“cor”);if (cor == null)

cor = “white”;%>

17

April 05 Prof. Ismael H. F. Santos - [email protected] 33

Scriptlets

Podem ser usados para apresentar htmlcondicionalmente:

<%if (hora >= 6 && hora < 12) { %><b> Bom Dia! </b>

<%} else {%><b> Boa Tarde! </b>

<% } %>

April 05 Prof. Ismael H. F. Santos - [email protected] 34

Declarações

Para definir métodos ou campos fora dos métodos do servlet geradoSintaxe:

<%! declaração java %>Em XML:

<jsp:declaration>declaração java

</jsp:declaration>

18

April 05 Prof. Ismael H. F. Santos - [email protected] 35

Diretivas JSP

Afetam a estrtura geral do servlet gerado da página JSPPossuem o seguinte formato:<%@diretiva atributo=“valor” %>ou em XML<jsp:directive.diretiva atributo=“valor”/>

April 05 Prof. Ismael H. F. Santos - [email protected] 36

Tipos de Diretivas

Existem três tipos de diretivas JSP:page

para importação de classes, alteração do tipo do conteúdo, etc.

includepara inclusão de arquivos durante a execução do JSP

taglibpara definição de tags próprias usadas em bibliotecas de tags

19

April 05 Prof. Ismael H. F. Santos - [email protected] 37

Diretiva page

Atributo importUsado para importar classes para o servlet gerado pelo JSPPode aparecer várias vezes no JSPExemplo:

<%@page import = “java.util.*” %>

April 05 Prof. Ismael H. F. Santos - [email protected] 38

Diretiva page

Atributo contentTypeUsado para alterar o formato MIME do texto de saídaExemplo:

<%@page contentType=“text/html”%>Também pode ser especificado o conjunto de caracteres com charset

20

April 05 Prof. Ismael H. F. Santos - [email protected] 39

Diretiva page

Atributo isThreadSafeControla o uso de múltiplas threads no servlet geradoO padrão é usar mútithread (true)Exemplo:

<%@page isThreadSate=“false”%>

Diretiva page

Atributo sessionIndica se a página em questão faz parte de uma sessão sendo que o seu valor padrão étrueEx:

<%@page session=“false” %>Neste caso a variável pré-definida sessionnão pode ser acessada

21

April 05 Prof. Ismael H. F. Santos - [email protected] 41

Diretiva page

Atributo bufferIndica o uso e tamanho do buffer usado pela variável out.Exemplo:

<%@page buffer = “32kb”%>ou

<%@page buffer = “none” %>

April 05 Prof. Ismael H. F. Santos - [email protected] 42

Diretiva page

Atributo autoflushControla o comportamento do buffer quando ele estiver cheio: true executa um “flush”automática e false gera uma exceçãoExemplo:

<%@page autoflush=“true”%>

22

April 05 Prof. Ismael H. F. Santos - [email protected] 43

Diretiva page

Atributo extendsAltera a superclasse do servlet gerado Exemplo:

<%@page extends=“MeuServlet.class”%>

April 05 Prof. Ismael H. F. Santos - [email protected] 44

Diretiva page

Atributo infoDefine a string de descrição do servletgeradoSerá retornada pelo método getServletInfo()Exemplo:

<%@page info=“descrição”%>

23

April 05 Prof. Ismael H. F. Santos - [email protected] 45

Diretiva page

Atributo errorPageIndica o nome da página que deve ser mostrada em caso de erro Exemplo:

<%@page errorPage=“URL relativa”%>

April 05 Prof. Ismael H. F. Santos - [email protected] 46

Diretiva page

Atributo isErrorPageIndica se a página atual pode ser usada como página de erroO valor padrão deste atributo é falseExemplo:

<%@page isErrorPage=“true”%>

24

April 05 Prof. Ismael H. F. Santos - [email protected] 47

Diretiva include

Usada para incluir outros arquivos em páginas JSPPossui dois formatos, o primeiro inclui arquivos em tempo de compilação e o segundo em tempo de requisiçãoA diretiva deve aparecer no ponto em que o arquivo será incluído

April 05 Prof. Ismael H. F. Santos - [email protected] 48

Incluindo Arquivos (compilação)

Sintaxe:<%@include file=“URL relativa”%>

Arquivos incluídos podem ser arquivos JSPSe o arquivo incluído mudar, todos os JSP que o utilizam devem ser recompilados

25

April 05 Prof. Ismael H. F. Santos - [email protected] 49

Incluindo Arquivos (requisição)

Sintaxe:<jsp:include page=“URL relativa” flush=“true”%>

Os arquivos incluídos não podem conter comandos JSPSe o arquivo mudar, ele será lido novamente.

April 05 Prof. Ismael H. F. Santos - [email protected] 50

Diretiva plugin

Permite a inclusão de outras classes Java em JSP, como applets e beansTem uma sintaxe semelhante a da tag appletdo HTMLExemplo:

<jsp:plugin type=“applet” code=“Dados.class”width=“200” height=“100”> </jsp:plugin>

26

April 05 Prof. Ismael H. F. Santos - [email protected] 51

Diretiva plugin

Para passar parâmetros para a classe envolvida com o plugin utiliza-se a diretiva jsp:params dentro de jsp:pluginExemplo:

<jsp:params> <jsp:param name=“cor” value = “red”> <jsp:params>

April 05 Prof. Ismael H. F. Santos - [email protected] 52

Diretiva plugin

Se o browser não suportar objetos pode ser mostrado texto alternativoO texto é definido em jsp:fallback dentro de jsp:pluginExemplo:

<jsp:fallback> <b>Seu browser não suporta JAVA</b> </jsp:fallback>

27

April 05 Prof. Ismael H. F. Santos - [email protected] 53

JSPE

Servlets

POO-Java

April 05 Prof. Ismael H. F. Santos - [email protected] 54

JSP e Servlets - Utilização

Em um sistema Web deve-se pensar na separação entre código e visualizaçãoUma das abordagens para esta separação éutilizar servlets e JSPServlets para o controle e processamento dependente de programação extensiva e JSP para visualização

28

April 05 Prof. Ismael H. F. Santos - [email protected] 55

JSP e Servlets - Utilização

Podemos realizar esta integração de três maneiras:

Através de links ou botões inseridos nas páginas HtmlCom o uso do método sendRedirect do objeto responseRedirecionando o controle através de RequestDispatcher

April 05 Prof. Ismael H. F. Santos - [email protected] 56

JSP e Servlets - Utilização

Nos dois primeiros métodos, o controle é totalmente repassado e uma nova conexão tem que ser aberta com o clienteEm certas situações é necessário mesclar a saída de servlet com JSPPara realizar esta integração é necessário usar um RequestDispatcher

29

Redirecionando Requisições

Para redirecionar uma requisição de um servletpara um JSP deve-se:

Recuperar um redirecionador de getServletContextRedirecionar o controle com forward

Note que este redirecionamento difere de sendRedirect pois não é criada uma nova conexão

April 05 Prof. Ismael H. F. Santos - [email protected] 58

Redirecionando Requisições

Exemplo:RequestDispatcher d =

getServletContext().getRequestDispatcher(url)

d.forward(request, response);A partir deste momento o controle sai do servlet atual

30

April 05 Prof. Ismael H. F. Santos - [email protected] 59

Redirecionando Requisições

Se o recurso destino for estático (página HTML), o redirecionamento só funcionada para requisições GETPara evitar este problema, mude a extensão do recurso estático para JSP.Assim o recurso passa a ser dinâmico e pode tratar POST.

April 05 Prof. Ismael H. F. Santos - [email protected] 60

Enviando Informações

Para enviar informações para o recurso destino (dinâmico):

Parâmetros na URL no caso de requisições GETInserir um atributo na requisição (request)Inserir um atributo na sessão (session)Inserir um atributo no contexto (application)

31

April 05 Prof. Ismael H. F. Santos - [email protected] 61

Enviando Informações (request)

Para enviar um objeto com duração requestdeve-se usar antes do redirecionamento:

request.setAttribute(“atrib”, valor);

Para recuperar o valor no recurso redirecionado:

Tipo valor = (Tipo) request.getAttribute(“atrib”);

April 05 Prof. Ismael H. F. Santos - [email protected] 62

Enviando Informações (application)

Se o objeto deve durar durante toda a vida do servlet, usar antes do redirecionamento:

getServletContext().setAttribute( “atrib”, valor);No recurso redirecionado:

Tipo valor = (Tipo) getServletContext().getAttribute(“atrib”);

32

April 05 Prof. Ismael H. F. Santos - [email protected] 63

Enviando Informações (session)

Para objetos de sessão, utilizar o procedimento normal:

HttpSession session = request.getSession(true);session.setAttribute(“atrib”, valor);

Para recuperar o atributo:Tipo valor = (Tipo) session.getAttribute(“atrib”);

April 05 Prof. Ismael H. F. Santos - [email protected] 64

Recuperando Informações no JSP

Para recuperar informações enviadas por um dos três métodos anteriores deve-se utilizar Beanscom escopo:

<jsp:useBean id=“atrib” class=“Tipo” scope = “...”/>

A recuperação dos parâmetros, segue a método normal

33

April 05 Prof. Ismael H. F. Santos - [email protected] 65

Inclusão de Saída

O comando forward redireciona o controle e não permite que o servlet atual insira dados na saída

Se for necessário enviar estes dados e redirecionar o controle deve ser usado o método include:

dispatcher.include(request, response);

April 05 Prof. Ismael H. F. Santos - [email protected] 66

Inclusão de Saída

A principal diferencá com o forward é que podem ser enviados dados para a saída tanto antes do include como depoisOs servlets ou JSPs chamados com este comando NÃO podem alterar o cabeçalho de resposta (setHeader)

34

April 05 Prof. Ismael H. F. Santos - [email protected] 67

Inclusão de Saída

O método include tem as mesmas características do forward com relação ao envio de informações e tratamento de GET e POSTAdicionalmente o forward define cinco atributos (setAttribute) no request que representam o caminho original

April 05 Prof. Ismael H. F. Santos - [email protected] 68

Inclusão de Saída

Estes atributos são recuperados comrequest. getAttribute

javax.servlet.include.request_urijavax.servlet.include.context_pathjavax.servlet.include.servlet_pathjavax.servlet.include.path_infojavax.servlet.include.query_string

35

April 05 Prof. Ismael H. F. Santos - [email protected] 69

Redirecionamento com JSP

Embora seja mais comum o servletredirecionar o controle, é possível redirecionar a partir de um JSPEste redirecionamento é feito com a tagforward:

<jsp:forward page=“URL”/>

April 05 Prof. Ismael H. F. Santos - [email protected] 70

Objeto envolvidos em uma servlet

HttpServletRequest contém informações provenientes do cliente.

Parâmetros e seus valores podem ser consultados através dos métodos getParameter

HttpServletResponse permite gerar a saída a ser enviado ao cliente.

Com o auxílio de um objeto PrintWriterPrintWriter out = response.getWriter();

36

April 05 Prof. Ismael H. F. Santos - [email protected] 71

Manipulando requisições do usuáriogetParameter(“nome”)

Retorna o valor da primeira ocorrência de “nome”na string de consultaFunciona de forma idêntica para requisições GET e POSTRetorna null se o parâmetro não existe na consulta.

getParameterValues("nome")Retorna um array dos valores de todas as ocorrências do nome na consulta. Retorna null se o parâmetro não existe na consulta.

April 05 Prof. Ismael H. F. Santos - [email protected] 72

Manipulando requisições do usuário (cont.)

getParameterNames()Retorna uma lista (Enumeration) de parâmetros de requisição.

response.setContentTypeDefine o cabeçalho (Content-Type)

37

April 05 Prof. Ismael H. F. Santos - [email protected] 73

Problemas com Servlets

Parar gerar páginas dinâmicas, é preciso embutir HTML ou XML dentro de instruções Java.

out.print(“<H1>Exemplo</H1>”);for(int i = 0; i < 10/ i++) {out.print(“<P>Um número:” + i + “</P>” );

}out.print(“<TABLE><TR><TD>...</TR></TABLE>”);

April 05 Prof. Ismael H. F. Santos - [email protected] 74

Problemas com Servlets

Conseqüência: dificuldade para o profissional que é somente web designer.

O design das páginas acaba ficando a cargo do programador, em vez do web designer.Mais complicado de trabalhar do que com HTML e Javascript.

Solução: scripts de servidor ou Java Server Pages

38

April 05 Prof. Ismael H. F. Santos - [email protected] 75

Exercício I

Para testar a aplicação anterior (SaudarUsuario.jsp), copie o arquivo para o diretório raiz do container JSP sendo utilizado.

(SaudarUsuario.jsp está na pasta web/jsp dos exemplos)No caso do Tomcat: CATALINA_HOME\webapps\ROOT

A seguir, acesse a página JSPhttp://127.0.0.1:8080/SaudarUsuario.jsphttp://127.0.0.1:8080/SaudarUsuario.jsp?usuario=Eduardo

Verifique que o código Java das scriptlets não é enviado ao browser

view source no navegador WEB

April 05 Prof. Ismael H. F. Santos - [email protected] 76

Exercício II

Este exercício testa a página ListaEmpregados.jspEsta página está na pasta web/jsp dos exemplos.Copie este arquivo para CATALINA_HOME/webapps/oficinaCrie um descritor de contexto da aplicação.

(Vide o apêndice deste slide)Copie o driver do MySQL (.jar) para a pasta do Tomcatdenominada CATALINA_HOME/common/lib.Levante o servidor MySQLAcesse a página:

http://localhost:8080/oficina/ListaEmpregados.jsp

39

April 05 Prof. Ismael H. F. Santos - [email protected] 77

JavaBeansPOO-Java

April 05 Prof. Ismael H. F. Santos - [email protected] 78

Java Beans e JSP

Um objeto bean pode ser declarado em uma página JSP através do tag jsp:useBean.Exemplo:<jsp:useBean id=“user” class=“com.foo.UserInfoBean”/><% if (user.isValid()) { %><p> Usuário <%= user.getFirstName() %> válido.<% } else { %><p> Usuário <%= user.getFirstName() %> inválido.<% } %>

40

April 05 Prof. Ismael H. F. Santos - [email protected] 79

Escopo de um Java Bean

Java Beans possuem escopo.JSP usa um modelo de persistência que permite manter um objeto Java (bean) em diferentes escopos.

Página atual (page). Este é o valor default.Requisição atual (request)Sessão atual (session)Durante o tempo em que o contêiner estiver “no ar”(application)

O escopo de um bean determina o quanto este bean irá“existir”.O atributo scope da tag jsp:useBean é utilizado para definir o escopo de um bean.

April 05 Prof. Ismael H. F. Santos - [email protected] 80

Tags JSP relacionadas a Beansjsp:useBean

Utilizada para tornar um bean disponível em uma página JSP<jsp:useBean id="u" scope="session" class="exemplobean.Usuario" />

jsp:setPropertyUtilizada para invocar um método modificador (setter)

<jsp:setProperty name="Bean Name" property="PropertyName“param="parameterName"/>

<jsp:setProperty name="Bean Name" property="PropertyName"/> <jsp:setProperty name="Bean Name" property="*"/>

jsp:getPropertyUtilizada para invocar um método seletor (getter)

<jsp:getProperty name="Nome Bean" property="propertyName"/>

41

April 05 Prof. Ismael H. F. Santos - [email protected] 81

Exemplo de uso de um Bean

Página JSP que usa HelloBean<HTML><HEAD><jsp:useBean id="hello" class="beans.HelloBean"/><jsp:setProperty name="hello" property="mensagem“

param="usuario" /><TITLE>Exemplo de uso de Bean</TITLE></HEAD><BODY><H1>Exemplo de uso de Bean</H1><P>Hello, <jsp:getProperty name="hello"property="mensagem" /></BODY></HTML>

April 05 Prof. Ismael H. F. Santos - [email protected] 82

Exercício III

Esse exercício usa os arquivos DefinirUsuario.jsp, ObterUsuario.jsp e Usuario.java.

Todos eles estão abaixo da pasta webEssa aplicação tem duas partes: uma página JSP e uma classe Java (JavaBean)

a) Compile o JavaBean (observe que ele está em um pacote) e copie-o para o webapps/ROOT/WEB-INF/classes

javac –d CATALINA_HOME/webapps/ROOT/WEB-INF/classes Usuario.java

42

April 05 Prof. Ismael H. F. Santos - [email protected] 83

Exercício IIIb) Copie os arquivos JSP para webapps/ROOTc) Acesse via http://localhost:8080/DefinirUsuario.jspd) Acesse via http://localhost:8080/ObterUsuario.jsp