A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Seminário JavaServer Faces Paulo Venancio Lopes Daniel Sguillaro.

Apresentações semelhantes


Apresentação em tema: "Seminário JavaServer Faces Paulo Venancio Lopes Daniel Sguillaro."— Transcrição da apresentação:

1 Seminário JavaServer Faces Paulo Venancio Lopes Daniel Sguillaro

2 Tópicos ● Introdução ● Aplicação Web ● Tecnologia Java Servlet ● Custom Tags ● JavaServer Pages ● JavaServer Faces

3 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.

4 Aplicação web (continuação) Interação entre um cliente e uma aplicação web:

5 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, SVG, WML, e XML.

6 Aplicação web (continuação) Relação entre as tecnologias de aplicação java web

7 ● 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. ● Acessar a URL que referência a aplicação web.

8 Módulo Web

9 Empacotando Módulos Web Um módulo web pode ser empacotado num arquivo *.war que é simplesmente um arquivo *.jar renomeado, para ser implantado em um web container. Mas pode se implantar o módulo diretamente.

10 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).

11 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.

12 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

13 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.

14 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.

15 Custom Tags numa página JSP É o elemento da linguagem JSP definida por um Usuário.

16 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).

17 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

18 Ciclo de vida da Pagina JSP (Cont.) Tradução e compilação Durante a fase de tradução cada tipo de dado na pagina JSP é tratado diferentemente. Dados estáticos são transformados em código que emitirão dados para o stream de resposta. ●

19 Ciclo de vida da Pagina JSP (Cont.) Os elementos JSP são tratados como a seguir: Diretivas são usadas para controlar como o web container traduz e executa a pagina JSP. Elementos scripts são inseridos no servlet da pagina JSP.

20 Ciclo de vida da Pagina JSP (Cont.) ● Expressões Expression Language são passadas comparâmetros para as chamadas para o JSP expressionevaluator. ● jsp:[set|get]Property elemento é convertido numa chamada para método no componente JavaBeans.

21 Ciclo de vida da Pagina JSP (Cont.) O jsp:plugin elemento é convertido num específico browser markup para ativação num applet. Custom tags são convertidas em chamadas para o tag handler que implementa a custom tag. jsp:[include|forward] elemento é convertido numa invocação da API Java Servlet.

22 Scripts nas paginas JSP Elementos scripts são usados tipicamente para criar e acessar objetos, definir métodos, e gerenciar fluxo de controle. Muitas tarefas que usam scripts podem ser eliminadas usando custom tag library.

23 Scripts nas paginas JSP (cont.) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> JSP Expressions <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">

24 Scripts nas paginas JSP (cont.) JSP Expressions Current time: Your hostname: Your session ID: The testParam form parameter:

25 Sintaxe básica - JSP Texto HTML – Blah – Passado para o cliente. Transformado em código servlet: out.print(" Blah "); Comentários HTML – – Mesmo que um outro HTML: Passado para o cliente Comentário JSP – – Não envia para o cliente

26 Tipos de elementos scripts Expressões – Formato: – Avaliada e inserida na saída do servlet: out.print(expression) Scriptlets – Formato: – Incorporado ao método do servlet _jspService Declarações – Format: – Inserido no corpo de uma classe servlet, fora de qualquer método.

27 Expressões JSP Formato – 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: – Hostname: Sintaxe XML – Expressão Java – Versão XML não suportada pelo TomCat 3. Deste JSP 1.2 os servidores não eram obrigados a suportá-la.

28 Correspondência JSP/Servlet JSP Original A Random Number 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(" A Random Number "); out.println(Math.random());... }

29 JavaServer Faces (JSF) Introdução Ciclo de vida Usando JSF em paginas JSP Usando tags JSF Usando dados localizados Conversores e validadores. Backing Bean

30 JSF – Introdução É um framework do lado servidor baseado em aplicações WEB.

31 JSF – Introdução(cont.) JSF contém: JavaBeans Event Listener Páginas JSP Classes auxiliares do lado do servidor Biblioteca de componentes UI Biblioteca de event handlers, validators, e etc...

32 JSF – Introdução(cont.) Backing Beans Arquivo de configuração da aplicação

33 JSF – Ciclo de vida

34 JSF – Usando JSF em páginas JSP Definir entrada para JSF HTML render kit Definir entrada para JSF Core tag lib

35 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.

36 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 associa seu valor a ele.

37 Usando JSF em páginas JSP (cont.) Binding: identifica um bean property e associa o componente instanciado por ele.

38 Usando dados localizados Textos estáticos(labels, textos alternativos,etc) Mensagens de erro Dados dinâmicos Para carregar dados localizados temos que: 1. Registrar o resource bundle 2. Carregar o resource bundle

39 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 componente.

40 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

41 Conversores e Validadores (cont.) BigDecimalConverter, BigIntegerConverter, BooleanConverter, ByteConverter,CharacterConverter DateTimeConverter, DoubleConverter, FloatConverter, IntegerConverter, LongConverter,NumberConverter, ShortConverte

42 Conversores e Validadores (cont.) DataTimeConverter NumberConverter

43 Conversores e Validadores (cont.) Registrando value-change listener Registrando action listener no componente

44 Conversores e Validadores (cont.) Validadores padrão DoubleRangeValidator LengthValidator LongRangeValidator Exemplo:

45 Backing Bean Suas propriedades devem referenciar: Um valor do componente Uma instância do componente Uma instância do converter Uma instância do listener Uma instância do validator

46 Backing Bean (cont.) private Integer userNumber = null; public void setUserNumber(Integer user_number) { userNumber = user_number; } public Integer getUserNumber() { return userNumber; } public String getResponse() {... }

47 Backing Bean (cont.) Configuração: UserNumberBean g.UserNumBean session

48 Fórmula p/ usar JSF 1. Criar um bean representando os dados de um formulário 2. Usar as tags do JSF para criar o formulário 3. Especificar na tag h:commandButton um método a ser chamado quando o formulário for enviado (ActionController)

49 Fórmula p/ usar JSF (cont.) 4.Criar o Action Controller - suas responsabilidades são: ● Ler os dados do formulário ● Chamar a lógica de negócio ● Popular os beans que contém os resultados ● Devolver uma condição

50 Fórmula p/ usar JSF (cont.) 5. Declarar o form bean e as regras de navegação no descritor faces-config.xml 6. Criar as páginas JSP para cada condição devolvida

51 Exemplo Formulário de cadastro, onde os dados fornecidos pelo usuário farão com que o JSF tome a de qual pagina será mostrada a seguir.

52 Exemplo (cont.) … Nome:

53 Exemplo (cont.) Sobrenome:... <h:commandButton value=“Cadastrar Dados" action="#{bean.cadastrar}"/> …

54 Exemplo (cont.) Criando um action controller package exemplo; public class CadastroBean { private String nome = “”; private String sobrenome = “”; // getters e setters...

55 Exemplo (continuação) public String cadastrar() { if (nome.trim().equals(“”) || sobrenome.trim().equals(“”) ) { return(“rejeitado"); } else { return(“aceito"); }

56 Exemplo (cont.) Declarando o action controller bean exemplo.CadastroBean

57 Exemplo (cont.) request …

58 Exemplo Especificando regras de navegação /cadastro.jsp aceito

59 Exemplo (continuação) /WEB-INF/result/aceito.jsp rejeitado /WEB-INF/results/rejeitado.jsp

60 Exemplo (continuação) …

61 Exemplo (cont.) … Cadastro do usuário ${bean.nome} ${bean.sobrenome} aceito. Parabéns.

62 Exemplo (cont.) … Cadastro rejeitado. Tente de novo.

63 Referências Tutorial JEE da Sun: http://java.sun.com/javaee/5/docs/tutorial/doc/ http://java.sun.com/javaee/5/docs/tutorial/doc/ www.coreservlets.com Geary, David; Horstmann Cay - Core JavaServer Faces, 2004 Bergsten, Hans; JavaServer Faces, O’Reilly, 2004


Carregar ppt "Seminário JavaServer Faces Paulo Venancio Lopes Daniel Sguillaro."

Apresentações semelhantes


Anúncios Google