http:// curso de jsp básico camilo porto nunes

57
http://www.lsi.dsc.ufcg.edu.br/ Curso de JSP Básico Camilo Porto Nunes

Upload: ana-luisa-bernadete-escobar-corte-real

Post on 07-Apr-2016

229 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Http:// Curso de JSP Básico Camilo Porto Nunes

http://www.lsi.dsc.ufcg.edu.br/

Curso de JSP Básico

Camilo Porto Nunes

Page 2: Http:// Curso de JSP Básico Camilo Porto Nunes

SUMÁRIOSUMÁRIO• Introdução• Estrutura de uma página JSP• Diretivas• Scripting elements• Standard Actions• Implicit Objects• Tratamento de parâmetros e

formulários• Estudo de caso

Page 3: Http:// Curso de JSP Básico Camilo Porto Nunes

• Explicação baseado em uma aplicação simples de cadastro de livros.

• Aplicação permite inserir/pesquisar/remover livros em um banco de dados.

• Esquema do banco de dados:• Livro (

isbn NUMBER(12) PRIMARY KEY,titulo VARCHAR2(70) NOT NULL,autor VARCHAR2(70) NOT NULL,categoria VARCHAR2(70) NOT NULL

);

INTRODUÇÃOINTRODUÇÃO

Page 4: Http:// Curso de JSP Básico Camilo Porto Nunes

• O esquema de páginas da aplicação é o seguinte:

INTRODUÇÃOINTRODUÇÃO

Page 5: Http:// Curso de JSP Básico Camilo Porto Nunes
Page 6: Http:// Curso de JSP Básico Camilo Porto Nunes

• JSP = Java Server Pages• Tecnologia para criação de páginas web

dinâmicas.• O que é uma página web dinâmica?• - “São páginas que geram o seu conteúdo

HTML dinamicamente, de acordo com alguma entrada recebida”.

• Exemplos?

INTRODUÇÃOINTRODUÇÃO

Page 7: Http:// Curso de JSP Básico Camilo Porto Nunes

• Como isso é feito com JSP?• Semelhante à um programa comum, ESCRITO

EM PURO JAVA (recebe uma entrada, e produz saídas, possivelmente diferentes, baseado nas entradas recebidas).

• Exemplo:...String helloMsg = in.readLine();System.out.println(“Hello World! ”+helloMsg);...

INTRODUÇÃOINTRODUÇÃO

Page 8: Http:// Curso de JSP Básico Camilo Porto Nunes

• EXEMPLO JSP:...<%String helloMsg =

request.getParameter(“helloMsg”);%><b>Hello World! <%=helloMsg%> </b>

INTRODUÇÃOINTRODUÇÃO

Page 9: Http:// Curso de JSP Básico Camilo Porto Nunes

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA

Page 10: Http:// Curso de JSP Básico Camilo Porto Nunes

• Uma página JSP pode ser dividida, basicamente, nas seguintes partes:

• Cabecalho: inclui diretivas que informam alguns atributos da página bem como algumas configurações (imports, contentType, página de erro...)

• Declarações: inclui declarações de métodos, atributos, constantes, etc.

• Corpo da página: inclui o código que irá gerar o html dinâmico

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA

Page 11: Http:// Curso de JSP Básico Camilo Porto Nunes

• O corpo da página pode combinar:– HTML estático;– Código JAVA puro, ou scriptlets: <%...%>– Diretivas: <%@.....%>– Expressões: <%=.......%>)– Actions: <jsp:include../> dentre outras...– Qualquer outro tipo de conteúdo estático:

(JavaScript, SVG, XML, etc...).• Iremos nos aprofundar nos elementos

estruturais da página ao longo do curso.

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA

Page 12: Http:// Curso de JSP Básico Camilo Porto Nunes

• DIRETIVAS:• Page• Define alguns atributos importantes para a

página– Language: Linguagem de script a ser utilizada (default

= JAVA)– Extends: pouco usado...– Import: Lista de classes importadas a serem utilizadas

na página– Session: (true/false) especifica se a página faz parte

da sessão do usuário (objeto session disponível ou não)

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA

Page 13: Http:// Curso de JSP Básico Camilo Porto Nunes

• Diretiva Page (cont...)– Buffer: tamanho do buffer a ser utilizado

(default 8Kb)– errorPage: especifica uma URL para uma

página de tratamento de erros.– isErrorPage: informa se a página é de

tratamento de erro ou não.– contentType: define o contentType da

página (XML, text, HTML, etc..)• Dentre outros....

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA

Page 14: Http:// Curso de JSP Básico Camilo Porto Nunes

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA• Diretiva INCLUDE:• Inclui o conteúdo de um arquivo no local

da definição da diretiva....<%@ include file=“file.html” %>...• Isso ocorre na primeira vez que a

página for requisitada.

Page 15: Http:// Curso de JSP Básico Camilo Porto Nunes

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA

• Diretiva TAGLIB• Insere uma tag customizada (definida

pelo programador) para ser acessível na página.

Page 16: Http:// Curso de JSP Básico Camilo Porto Nunes

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA• Scripting Elements• DECLARAÇÕES:• Bloco de código JAVA que define variáveis,

constantes e métodos referentes a página. É definido entre os símbolos <%! e %>

• Exemplo:<%!

int numTimes=0;public String sayHello(String name) {

return “Hello “+name+”!”;}

%>

Page 17: Http:// Curso de JSP Básico Camilo Porto Nunes

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA• Scriptlets• Bloco de código JAVA que será executado

durante a requisição à página.• Exemplo:<% for (int i=0; i<10; i++)

out.println(“<b> i= “+i+”</b><br>”);%>

Page 18: Http:// Curso de JSP Básico Camilo Porto Nunes

ESTRUTURA DA PÁGINAESTRUTURA DA PÁGINA• Expressões• Notação simples para scriptlets que serão

avaliados e retornarão seus valores ao cliente.• Exemplo:...

int numTimes;...<b> Esta página foi acessada <%=numTimes+

+%> </b>

Page 19: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

Page 20: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

• São tags XML que afetam o comportamento de tempo de execução da página, e oferecem outra alternativa de implementar tarefas freqüentemente executadas (Bean Access).

• Mais importantes:• Include, forward, useBean, getProperty,

setProperty

Page 21: Http:// Curso de JSP Básico Camilo Porto Nunes

• É uma boa opção para separar código Java da apresentação.

• Pode-se elaborar uma página JSP inteira apenas com tags XML, sem precisar escrever uma única linha de código em Java...

STANDARD ACTIONSSTANDARD ACTIONS

Page 22: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

• <jsp:useBean>• Equivalente a new Object()• Syntax:• <jsp:useBean param1=“value1”...>

Page 23: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS• useBean – Parâmetros• Id: identificador da instância do objeto.• Scope: visibilidade do objeto• Class: nome completo da classe da instância• beanName: define o nome para referenciar o

bean através do método instatiate() da classe java.beans.Beans.

Page 24: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

• Type: tipo a ser tratado o objeto (especifica um CAST para o tipo definido). Pode gerar ClassCastException

Page 25: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

• <jsp:getProperty>, <jsp:setProperty>• Semelhante a métodos getXX() e

setXX() de um objeto Java.• Recuperam/Alteram valores das

propriedades de Beans.• Podem ser usada em conjunto com

<jsp:useBean> para iniciar as propriedades do Bean

Page 26: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

• GetProperty (Principais parâmetros)• Name: nome do bean (id do useBean,

não confundir com <useBean.. name=””/>).

• Property: nome da propriedade.

Page 27: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

• SetProperty (Principais Parâmetros)• Name: nome do Bean (id do useBean)• Property: propriedade a ser alterada.• Value: novo valor da propriedade• Param: associa o valor do parâmetro da

requisição especificado ao valor da propriedade

Page 28: Http:// Curso de JSP Básico Camilo Porto Nunes

STANDARD ACTIONSSTANDARD ACTIONS

• Exemplos de useBean + get/setProperty....<jsp:useBean id=”myBean”

class=”org.MyBean”><jsp:setProperty name=”myBean”

property=”nome” value=”Camilo Porto”></jsp:useBean>

Page 29: Http:// Curso de JSP Básico Camilo Porto Nunes

• Exemplos de useBean + get/setProperty....<jsp:useBean id=”myBean”

class=”org.MyBean”><jsp:setProperty name=”myBean”

property=”nome”></jsp:useBean>* Qual o valor atribuído na propriedade

acima?

STANDARD ACTIONSSTANDARD ACTIONS

Page 30: Http:// Curso de JSP Básico Camilo Porto Nunes

• Exemplos de useBean + get/setProperty....<jsp:useBean id=”myBean”

class=”org.MyBean”><jsp:setProperty name=”myBean”

property=”*”></jsp:useBean>

* Qual valor atribuído às propriedades do bean acima?

STANDARD ACTIONSSTANDARD ACTIONS

Page 31: Http:// Curso de JSP Básico Camilo Porto Nunes

• TAGs <jsp:include> e <jsp:forward>• <jsp:include> - Uso Básico:

– <jsp:include page=”includedPage.jsp” />Inclui o conteúdo da página “includedPage.jsp” em uma

página JSP.<%@ include%> VS <jsp:include/>

• <jsp:include/> adiciona o conteúdo da página em tempo de execução.

• <%@ include%> em tempo de compilação

STANDARD ACTIONSSTANDARD ACTIONS

Page 32: Http:// Curso de JSP Básico Camilo Porto Nunes

• TAGs <jsp:include> e <jsp:forward>• <jsp:forward> - Uso Básico:

– <jsp:forward page=”forwardedPage.jsp” />Redireciona a requisição atual para a página

“forwardedPage.jsp”

STANDARD ACTIONSSTANDARD ACTIONS

Page 33: Http:// Curso de JSP Básico Camilo Porto Nunes

• Exemplos <jsp:include> e <jsp:forward><html>....<body>....<jsp:include page=”navigBar.html” /></body></html>

STANDARD ACTIONSSTANDARD ACTIONS

Page 34: Http:// Curso de JSP Básico Camilo Porto Nunes

• Pagina navigBar.html:<p><b><a href=”pagina1.html”> pagina1 </a> |<a href=”pagina2.html”> pagina2 </a> |...<a href=”paginaN.html”> paginaN </a> </b></p>

STANDARD ACTIONSSTANDARD ACTIONS

Page 35: Http:// Curso de JSP Básico Camilo Porto Nunes

• Exemplo <jsp:forward>

...

String login, senha

...

<%

if(!login.equals(“loginCorreto”) || !senha.equals(“senhaCorreta”)) {

%><jsp:forward page=”login.jsp”/>

<%

else .....

STANDARD ACTIONSSTANDARD ACTIONS

Page 36: Http:// Curso de JSP Básico Camilo Porto Nunes

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 37: Http:// Curso de JSP Básico Camilo Porto Nunes

• As páginas JSP oferecem, automaticamente, instâncias de objetos especiais que estão prontas para serem referenciadas.

• Os nomes dessas variáveis são padronizados:• Request, response, out, session, application,

page, pageContext, config.• Iremos abordar apenas os mais usados...

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 38: Http:// Curso de JSP Básico Camilo Porto Nunes

• REQUEST:• Encapsula todos os dados/metadados

contidos numa requisição http.• O que contém, basicamente, uma

requisição http?

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 39: Http:// Curso de JSP Básico Camilo Porto Nunes

• URL requisitada• Cookies• Content Type (texto, XML, html, imagem...)• Request Type (GET / Post)• Parâmetros enviados de campos de formulários

ou explícitamente na URL (após o símbolo '?')

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 40: Http:// Curso de JSP Básico Camilo Porto Nunes

• Exemplo de URL:• http://domain.com?

login=camilo&name=”Camilo Porto”PARÂMETRO VALORlogin camiloname Camilo Porto

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 41: Http:// Curso de JSP Básico Camilo Porto Nunes

• REQUEST (Métodos básicos):• String getParameter(String paramName);• Object getAttribute(String attribName);• Void setAttribute(String attribName, Object

attrib);

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 42: Http:// Curso de JSP Básico Camilo Porto Nunes

• SESSION: • Representa a sessão iniciada pelo usuário.• Uma sessão é ativada no instante da primeira

requisição de um usuário à aplicação.• É terminada explicitamente pela aplicação, ou

por timeout.Pode-se colocar objetos na sessão para persistir

durante toda a navegação do usuário no site.

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 43: Http:// Curso de JSP Básico Camilo Porto Nunes

• SESSION (Cont..)• O objeto não estará acessível se a página

JSP não fizer parte da sessão• (diretiva <%@ page session=false

%>)• Por default, session=true

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 44: Http:// Curso de JSP Básico Camilo Porto Nunes

• SESSION (Métodos Básicos):• Object getAttribute(String attribName);• Void setAttribute(String attribName, Object

attrib);

Esses objetos estarão disponíveis enquanto a sessão estiver ativa.

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 45: Http:// Curso de JSP Básico Camilo Porto Nunes

• APPLICATION• Guarda configurações da sua aplicação

WEB, tais como:• Context path, parâmetros de inicialização.• Também pode armazenar atributos, os

quais estarão disponíveis enquanto a aplicação estiver no ar.

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 46: Http:// Curso de JSP Básico Camilo Porto Nunes

• APPLICATION (Métodos Básicos):• ServletContext getServletContext();• Object getAttribute(String attribName);• Void setAttribute(String attribName, Object

attrib);

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 47: Http:// Curso de JSP Básico Camilo Porto Nunes

• ESCOPO:• Page: Acessível em toda a página JSP• Request: acessível durante toda uma requisição• Session: acessível durante toda uma sessão• Application: acessível enquanto a aplicação

estiver rodando.

OBJETOS IMPLÍCITOSOBJETOS IMPLÍCITOS

Page 48: Http:// Curso de JSP Básico Camilo Porto Nunes

TRATAMENTO DE FORMSTRATAMENTO DE FORMS

Page 49: Http:// Curso de JSP Básico Camilo Porto Nunes

• Tratamento de formulários são as atividades mais comuns em páginas dinâmicas.

• O tratamento é feito através da manipulação de parâmetros enviados na requisição (seja pelo método POST ou GET)

• Parâmetros também ajudam nas decisões de processamento da página (controle de login, senha, sessão, fluxo de páginas etc..)

TRATAMENTO DE FORMSTRATAMENTO DE FORMS

Page 50: Http:// Curso de JSP Básico Camilo Porto Nunes

• Os parâmetros de um formulário são enviados na requisição HTTP, sendo assim, estarão acessíveis através do objeto implícito REQUEST.

• Parâmetros são acessados através dos métodos:

• getParameter(String paramName);• getParameterValues(String paramName);

TRATAMENTO DE FORMSTRATAMENTO DE FORMS

Page 51: Http:// Curso de JSP Básico Camilo Porto Nunes

• EXEMPLO BÁSICO: (página que contém o form)...<form action=”trataForm.jsp” method=”post”>

Nome: <input name=”nome” type=”text”>Sobrenome: <input type=”text”

name=”sobreNome”><input type=”submit” value=”Enviar”>

</form>

TRATAMENTO DE FORMSTRATAMENTO DE FORMS

Page 52: Http:// Curso de JSP Básico Camilo Porto Nunes

• trataForm.jsp...<%String nome = request.getParameter(“nome”);String sobrenome =

request.getParameter(“sobreNome”);%>Seu nome é: <%= nome %> <BR>Seu sobrenome é: <%=sobrenome %>.....

TRATAMENTO DE FORMSTRATAMENTO DE FORMS

Page 53: Http:// Curso de JSP Básico Camilo Porto Nunes

ESTUDO DE CASOESTUDO DE CASO

Page 54: Http:// Curso de JSP Básico Camilo Porto Nunes

• Vamos analisar o código da aplicação simples de cadastro de livros.

• Poderemos inserir/remover/pesquisar livros que serão armazenados em uma tabela simples no banco de dados oracle 10g.

• O fluxo entre as páginas é mostrado adiante.

ESTUDO DE CASOESTUDO DE CASO

Page 55: Http:// Curso de JSP Básico Camilo Porto Nunes
Page 56: Http:// Curso de JSP Básico Camilo Porto Nunes

• HOLDEN, Mac. Professional Java Server Programming J2EE Edition, 2ed, Wrox.

• DAMON, Hougland. Core JSP. 1 ed, Prentice Hall.

BIBLIOGRAFÍABIBLIOGRAFÍA

Page 57: Http:// Curso de JSP Básico Camilo Porto Nunes

OBRIGADO!OBRIGADO!