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

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

Arquitetura das JSP - Aula 2

Apresentações semelhantes


Apresentação em tema: "Arquitetura das JSP - Aula 2"— Transcrição da apresentação:

1 Arquitetura das JSP - Aula 2
Vitor Brandi Junior Baseado no tutorial “JavaServer Pages Fundamentals - Short Course” by jGuru

2 Sumário Introdução Como funciona processo de compilação das JSP
Modelos de Acesso Sintaxe básica da JSP Introdução ao conceito de escopo de objetos Introdução ao conceito de objetos implícitos

3 Introdução O propósito das JSP é prover um método declarativo e centrado em apresentação para o desenvolvimento de servlets Portanto, elas podem ser definidas como extensões à API dos servlets Portanto, é importante notar que servlets e JSP possuem muitas características em comum.

4 Como funcionam ? Normalmente as páginas JSP passam por uma fase de tradução e por uma fase de processamento de requisição A fase de tradução acontece uma única vez, a menos que a página JSP seja alterada, caso em que esta fase é repetida O resultado desta tradução é um servlet.

5 Modelos de Acesso Existem pelo menos duas filosofias diferentes (Modelo 1 e Modelo 2) para se utilizar a tecnologia JSP. Elas diferem, essencialmente, no local onde a maior parte do processamento das requisições é realizado. Arquitetura do modelo 1

6 Modelo 1 Neste modelo, a requisição que chega vinda do web browser é enviada diretamente à página JSP, a qual é responsável pelo seu processamento e resposta ao cliente Existe separação entre a apresentação e o conteúdo, uma vez que todo acesso a dados é executado por beans Este modelo é adequado para aplicações mais simples Para aplicações mais complexas, ela não é adequada, pois pode embutir muitos scriplets ou código Java dentro da página JSP

7 Modelo 2 A arquitetura deste modelo 2 constitui-se na implementação do design pattern Model/View/Controller Nesta arquitetura, o processamento é dividido entre componentes de apresentação e de controle

8 Modelo 2 Os componentes de apresentação são páginas JSP que geram respostas em HTML/XML que constituem-se na interface do usuário Os componentes de controle não se preocupam com questões de apresentação, sendo responsáveis pelo processamento de todas as requisições HTTP Eles também são responsáveis pela criação de quaisquer beans ou objeto,s utilizados pelos componentes de apresentação Também decidem qual componente de apresentação recebe as requisições do usuário

9 Modelo 2 A principal vantagem deste modelo é que não existe processamento lógico dentro dos componentes de apresentação Eles são responsáveis pela recuperação de quaisquer objetos ou beans que podem ter sido criados pelos controladores, extraindo deles o conteúdo dinâmico que será inserido dentro dos templates de apresentação Esta clara separação entre apresentação e conteúdo facilita a divisão de tarefas entre programadores e web designers durante o desenvolvimento

10 Sintaxe Básica das JSP A sintaxe das JSP pode ser classificada em elementos de scripting (diretivas, declarações, expressões, scriplets e comentários) Diretivas: são mensagens para o container JSP que, ao invés de produzir resultados visíveis, dizem ao container o que fazer com o resto da página JSP as diretivas são sempre definidas dentro da tag %> as duas principais diretivas são page e include (a partir da versão 1.1. da API, uma nova diretiva taglib também foi definida)

11 Diretivas - page Page geralmente encontrada no topo da maioria das páginas podem existir tantas diretivas page quanto necessárias a diretiva page %> se aplica a todo o arquivo JSP e a qualquer arquivo nele incluído estaticamente exemplos: page import =“java.util.*, com.foo.*” buffer=“16k” %> page autoFlush=“false”%> page errorPage=“error.jsp” %>

12 Diretivas - include include
permite que se divida o conteúdo da página em elementos mais facilmente gerenciáveis, como por exemplo, cabeçalhos, rodapés etc. a página incluída pode ser um arquivo HTML ou uma outra página JSP ou mesmo um arquivo texto a inclusão se dá durante a tradução da página JSP, no momento em que ela é compilada diz-se, portanto, que a inclusão é estática exemplo: include file = “copyright.html” %>

13 Outro exemplo de include
Suponha o seguinte arquivo JSP denominado date.jsp: page import = “java.util.*” %> <%= (new java.util.Date()).toLocaleString() %> Ele vai ser importado da seguinte maneira (suponho o seguinte arquivo x.jsp): <html> <head><title>Teste de Include</title></head> <body> A Hora atual é include file = “date.jsp” %> </body> </html>

14 Declarações Permitem que sejam definidas variáveis, em nível de página, para o armazenamento de informações permitem ainda a definição de métodos que possam vir a ser necessitados pela página a tag que define declarações é: <%! %> é obrigatório que a declaração de variáveis se encerre com ponto-e-vírgula exemplo: <%! int i =0; %> <%! public void seila() { // seila o que vc coloca aqui } %>

15 Expressões Em JSP, os resultados da avaliação de uma expressão são convertidos em uma string e diretamente incluídos dentro da página de saída tipicamente expressões são utilizadas para apresentar valores simples de variáveis ou valores retornados pela invocação de métodos get de beans a tag que define expressões é: <%= %> não se pode incluir ponto-e-vírgula ao final de uma expressão. Exemplos: <%= variavelQualquer %> <%= qualquerBean.getName() %>

16 Scriplets Contém um fragmento de código válido na linguagem de script definida para a página o código contido no scriplet é executado quando a requisição é atendida pela página JSP o scriplet pode conter qualquer quantidade de comandos, declarações de variáveis e métodos ou expressões válidas é importante lembrar que quaisquer tags HTML ou elementos JSP devem ser declarados fora do scriplet

17 Scriplets A tag que define um scriplet é: <% %> exemplo:
<% for (int i = 1; i <= 4; i++) { %> <h<%=i%>> Oi Mundo </h<%=i%>> <% } %> outro exemplo: <% String nome = null; if (request.getParameter(“nome”) == null) { %> include file = “erro.html” %> <% else { // faz outras coisas } %>

18 Comentários Existem dois tipos diferentes de comentários possíveis de serem utilizados: um que deixa visível o comentário ao usuário da página quando este visualiza o conteúdo da mesma (comentário em nível de HTML) outro que esconde o comentário do usuário da página (comentário em nível de servidor ou comentário escondido) A tag que define a sintaxe do primeiro tipo é: <!-- comentário --> A tag que define a sintaxe do segundo tipo é: <%-- comentário --%>

19 Introdução a escopo de objetos
Escopo ou visibilidade é um assunto importante para JSP os objetos podem ser criados: implicitamente através de diretivas JSP explicitamente através de ações diretamente dentro do próprio código script estes objetos podem ser associados com um atributo de escopo que define onde este objeto pode ser referenciado (existe referência válida) e quando esta referência deixa de existir (fica inválida)

20 Introdução a escopo de objetos
Resumidamente, a figura abaixo apresenta os escopos definidos:

21 Introdução a Objetos Implícitos
Automaticamente, o container JSP disponibiliza objetos implícitos que estão disponíveis e podem ser utilizados dentro de scriplets e expressões estes objetos agem como wrappers de classes e interfaces normalmente definidas dentro da API de servlets. Existem 9 objetos implícitos: request: muito utilizado, representa o serviço de invocação disparado pela classe HttpServletRequest. Seu escopo é requisição (request)

22 Introdução a Objetos Implícitos
response: pouco utilizado, representa a classe HttpServletResponse (resposta à requisição). Seu escopo é página (page) pageContext:encapsula a classe PageContext (que define características dependentes da implementação). Seu escopo é página (page) application: representa a classe ServletContext obtida a partir do objeto de configuração do servlet. Seu escopo é aplicação (application) out: um objeto da classe JspWriter que permite escrever no stream de saída. Seu escopo é página (page) config: representa a classe ServletConfig. Seu escopo é página (page)

23 Introdução a Objetos Implícitos
page: pouco utilizado, é sinônimo para o operador this. Seu escopo é página (page) session: representa um objeto da classe HttpSession. Seu escopo é sessão (session) exception:representa um objeto da classe Throwable, resultando da invocação da página de erro. Seu escopo é página (page)


Carregar ppt "Arquitetura das JSP - Aula 2"

Apresentações semelhantes


Anúncios Google