• Nenhum resultado encontrado

Aula 04 PosUnn - desenvolvimento_sistema

N/A
N/A
Protected

Academic year: 2021

Share "Aula 04 PosUnn - desenvolvimento_sistema"

Copied!
41
0
0

Texto

(1)

Disciplina Programação e

(2)

Aplicação Web

Aplicação web é a extensão dinâmica da web ou application server, e são divididas em dois tipos:

● Presentation-oriented: Cria páginas interativas

contendo HTML, XML, e outros, e conteúdos dinâmicos em resposta a uma requisição.

● Service-oriented: Implementa a parte final de um web

service. Aplicações presentation-oriented são

frequentemente clientes de uma aplicação service-oriented web.

(3)

Aplicação web (continuação)

(4)

Aplicação web (continuação)

● Servlets: são classes java que dinamicamente

processam requisições e constroem respostas.

● Paginas JSP: são documentos textos que são

executados como servlets e são apropriados para geração de markup language tais com HTML,

(5)

APLICAÇÃO WEB (CONTINUAÇÃO)

(6)

Ciclo de vida da aplicação Web

● Desenvolvimento do código do componente

web.

● Desenvolvimento do descritor de implantação. ● Compilar componentes da aplicação web e

classe auxilares.

● Opcionalmente empacotar a aplicação em uma

unidade de implantação.

● Implantar a aplicação em um web container.

(7)
(8)

Implantando Módulo Web

Pode-se implantar o módulo de duas forma:

1.

Copiando o módulo web para o diretório de

implantação do web container.

2.

Copiando o pacote do módulo web (arquivo

*.war) no diretório de implantação do web

container.

Obs1: Pode-se ainda no caso do Tomcat configurar o descritor server.xml para que identifique o módulo web.

Obs2: Um context root identifica a aplicação web num JEE server (ex: http://host:port/context_root/alias).

(9)

Tecnologia Java Servlet

Um servlet é uma classe java que extende as

capacidades

do

servidor

que

acessam

aplicações num modelo de programa requisição

e resposta. Todos os servlets podem responder

qualquer tipo de requisição, para cada aplicação

a tecnologia java servlet define classes servlet

especificas para HTTP.

(10)

TECNOLOGIA JAVA SERVLET (CONT.)

Os pacotes javax.servlet e

javax.sservlet.http provem interfaces e classes para escrever servlets. Todos servlets devem implementar a interface Servlet, a qual define os métodos de ciclo de vida.

(11)

Ciclo de Vida do Servlet

O ciclo de vida de um servlet é controlado pelo container no qual o servlet tenha sido implantado.

Quando uma requisição é mapeada para o servlet, o container performa os seguintes passos.

1. Se uma instância do servlet não existe, o web container :

a) Carrega a classe do servlet.

(12)

CICLO DE VIDA DO SERVLET (CONT.)

b. Cria uma instância da classe do servlet.

c. Inicializa a instância do servlet chamando o método init.

2. Invoca o método service, passando os objetos request e response .

Obs: Se o container necessitar remover o servlet , ele finaliza o servlet chamando o método destroy.

(13)

CUSTOM TAGS NUMA PÁGINA JSP

É o elemento da linguagem JSP definida por um Usuário. <%@ taglib uri="/tlt" prefix="tlt" %>

<html>    <body bgcolor="white">  <tlt:iterator var="departmentName" type="java.lang.String"       group="$ {myorg.departmentNames}">        </body> </html>

(14)

Tecnologia JavaServer Pages

JavaServer Pages (JSP) permite fácil

criação de conteúdos web sendo ambos

componentes dinâmicos e estáticos.

Página JSP é um documento texto que

contém dois tipos de textos: dados estáticos

(HTML, SVG, WML, XML, e outros), e

elementos JSP, para construir conteúdos

dinâmicos (recomenda-se a extensão *.jsp).

(15)

Ciclo de vida da Pagina JSP

São determinadas pela tecnologia Java Servlet.

Quando um request é mapeado para uma página JSP, o web container primeiro checa se o servlet da pagina JSP é mais velha do que a pagina JSP.

Se for o web container traduz a pagina JSP para uma classe servlet e a compila. Durante o desenvolvimento , uma das vantagens das paginas JSP sobre o servlet é que o processo de construção é feito automáticamente.

(16)

SCRIPTS NAS PAGINAS JSP (CONT.)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>

<HEAD>

<TITLE>JSP Expressions</TITLE>

<META NAME="author" CONTENT="Marty Hall"> <META NAME="keywords"

CONTENT="JSP,expressions,JavaServer,Pages,servlets"> <META NAME="description"

CONTENT="A quick example of JSP expressions."> <LINK REL=STYLESHEET HREF="JSP-Styles.css” TYPE="text/css"> </HEAD>

(17)

SCRIPTS NAS PAGINAS JSP (CONT.)

<BODY>

<H2>JSP Expressions</H2> <UL>

<LI>Current time: <%= new java.util.Date() %>

<LI>Your hostname: <%= request.getRemoteHost() %>

<LI>Your session ID: <%= session.getId() %>

<LI>The <CODE>testParam</CODE> form parameter: <%= request.getParameter("testParam") %>

</UL> </BODY> </HTML>

(18)

SINTAXE BÁSICA - JSP

Texto HTML

<H1>Blah</H1>

• Passado para o cliente. Transformado em código servlet:

out.print("<H1>Blah</H1>");Comentários HTML

• <!-- Comentário -->

• Mesmo que um outro HTML: Passado para o cliente

Comentário JSP

• <%-- Comment --%>

(19)

TIPOS DE ELEMENTOS SCRIPTS

Expressões

• Formato: <%= expression %>

• Avaliada e inserida na saída do servlet: out.print(expression)

Scriptlets

• Formato: <% code %>

• Incorporado ao método do servlet _jspService

Declarações

• Format: <%! code %>

• Inserido no corpo de uma classe servlet, fora de qualquer método.

(20)

EXPRESSÕES JSP

Formato

<%= Java Expression %>

Result

Expressão avaliada, convertida para String, e colocada na página HTML no local onde ocorre na página JSP.

Expressão colocada no método _jspService dentro do out.print

Exemplos

Data: <%= new java.util.Date() %>

Hostname: <%= request.getRemoteHost() %>

Sintaxe XML

<jsp:expression>Expressão Java</jsp:expression>

Versão XML não suportada pelo TomCat 3.

(21)

CORRESPONDÊNCIA JSP/SERVLET

JSP Original

<H1>A Random Number</H1>

<%= Math.random() %>

Código do servlet

public void _jspService(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

HttpSession session = request.getSession(true); JspWriter out = response.getWriter();

out.println("<H1>A Random Number</H1>"); out.println(Math.random());

... }

(22)

JAVASERVER FACES (JSF)

IntroduçãoCiclo de vida

Usando JSF em paginas JSPUsando tags JSF

Usando dados localizadosConversores e validadores.Backing Bean

(23)

JSF – INTRODUÇÃO

É um framework do lado servidor baseado em aplicações WEB.

(24)

JSF – INTRODUÇÃO (CONT.)

JSF contém:

JavaBeans

Event ListenerPáginas JSP

Classes auxiliares do lado do servidorBiblioteca de componentes UI

(25)

JSF – INTRODUÇÃO (CONT.)

Backing Beans

Arquivo de configuração

(26)
(27)

JSF – USANDO JSF EM PÁGINAS JSP

Definir entrada para JSF HTML render kitDefinir entrada para JSF Core tag lib

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

(28)

USANDO JSF EM PÁGINAS JSP (CONT.)

As tags suportam os seguintes atributos:

Id: Único identificador do componente.Imediate: Se true, indica que qualquer

evento, validação, e conversão associado a um componente será aplicada na fase request value ou nas próximas fases.

(29)

USANDO JSF EM PÁGINAS JSP (CONT.)

Style: Especifica um cascading style sheet (css)

para a tag.

styleClass: Especifica um css styleshet que

contém definições de estilo.

Value: Identifica uma fonte de dados externa e

(30)

USANDO JSF EM PÁGINAS JSP (CONT.)

Binding: identifica um bean property e associa o componente

(31)

CONVERSORES E VALIDADORES (CONT.)

Para registrar conversores padrões:

Associar value do componente para o backing bean do

mesmo tipo.

Referenciar o converter pela classe ou pelo atributo ID da

tag do componente.

Usar tag converterId ou tag binding aninhado no

(32)

CONVERSORES E VALIDADORES (CONT.)

Via backing bean Integer age = 0;

public Integer getAge(){ return age;

}

public void setAge(Integer age) { this.age = age;

}

Via atributo converter <h:inputText

(33)

CONVERSORES E VALIDADORES (CONT.)

• BigDecimalConverter, • BigIntegerConverter, • BooleanConverter, • ByteConverter, • CharacterConverter • DateTimeConverter, • DoubleConverter, • FloatConverter, • IntegerConverter, • LongConverter, • NumberConverter, • ShortConverte

(34)

CONVERSORES E VALIDADORES (CONT.)

DataTimeConverter <h:outputText value="#{cashier.shipDate}">   <f:convertDateTime dateStyle="full" /> </h:outputText> • NumberConverter <h:outputText value="#{cart.total}" >    <f:convertNumber type="currency”> </h:outputText>

(35)

CONVERSORES E VALIDADORES (CONT.)

Registrando value-change listener <h:inputText

value="#{c.name}">        <f:valueChangeListener type="l.NameChanged" /> </h:inputText>

Registrando action listener no componente

<h:commandLink action="bookstore">   

<f:actionListener type="listeners.LocaleChange" /> </h:commandLink>

(36)

CONVERSORES E VALIDADORES (CONT.)

Validadores padrãoDoubleRangeValidator LengthValidator LongRangeValidator • Exemplo:

<h:inputText id="q" size="4" value="#{item.quantity}"

required=“true”>    <f:validateLongRange minimum="1"/>

</h:inputText> <h:message

(37)

BACKING BEAN

Suas propriedades devem referenciar:

Um valor do componente

Uma instância do componenteUma instância do converterUma instância do listenerUma instância do validator

(38)

BACKING BEAN (CONT.)

private Integer userNumber = null;

public void setUserNumber(Integer user_number) {    userNumber = user_number; }

public Integer getUserNumber() {    return userNumber; }

(39)

BACKING BEAN (CONT.)

Configuração:

<managed-bean>   

<managed-bean-name> UserNumberBean </managed-bean-name> <managed-bean-class> g.UserNumBean </managed-bean-class>

<managed-bean-scope>session</managed-bean-scope> </managed-bean>

(40)

REFERÊNCIAS

Tutorial JEE da Sun:

http://java.sun.com/javaee/5/docs/tutorial/doc/

www.coreservlets.com

Geary, David; Horstmann Cay - Core JavaServer Faces,

2004

(41)

Referências

Documentos relacionados

O PRÓ-REITOR DE GRADUAÇÃO DA UNIVERSIDADE FEDERAL DA FRONTEIRA SUL – UFFS, no uso de suas atribuições e tendo em vista a delegação de

O engajamento dos jovens requer oportunidades para sua participação no processo de tomada de decisões e na construção, em suas comunidades, de pilares sociais e

™ Outro ponto debatido durante o congresso, entre os conferencistas e participantes, é que mesmo com o avanço teórico-metodológico em EA, a implantanção de programas empoderadores da

Branco Amarelo Ouro Vermelho Fogo Azul Turquesa Verde Bandeira Preto 22...

O número de insetos da subfamília Scolytinae foi maior para as alturas avaliadas, mostrando que esta armadilha mostra-se mais eficiente para captura desta espécie

4.1.3 Prova escrita de conteúdo: esta etapa é eliminatória, sendo 70 (setenta) pontos a nota mínima para aprovação, avaliado no “modelo duplo cego”, isto é, dois

Assim, as questões política e administrativa, são inseparáveis, e em termos didáticos, são tomadas, neste artigo, como significativas e esclarecedoras na análise de

Siga estes passos para substituir o tinteiro de cores na impressora: 1 Cancele o trabalho de impressão se não estiver já cancelado. 2 Substitua o tinteiro de cores por um