JavaServer Pages (JSP) Flashcards

(43 cards)

1
Q

JavaServer Pages (JSP)

A
  • A tecnologia de JavaServer Pages é uma extensão da API de Servlets.
  • Um JSP torna-se um servlet.
  • Utiliza-se templates (HTML ou XML), elementos customizados, linguagens de script e objetos Java server-side.

ESAF
JSP (Java Server Pages) é uma tecnologia que permite ao desenvolvedor de páginas para Internet produzir aplicações que acessem banco de dados, manipulem arquivos no formato texto e capturem informações a partir de formulários. Dessa forma, conteúdos dinâmicos podem ser adicionados para páginas estáticas, tais como páginas HTML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Objetivo JSP:

A
  • Seu objetivo também é gerar conteúdo dinâmico a partir do servidor.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Servlets e JSPs:

A
  • Possuem o mesmo ciclo de vida;
  • São gerenciados pelo container;
  • Possuem API própria;
  • Possuem acesso à sessão do cliente;
  • Fazem uso de múltiplas threads.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vantagens JSP:

A
  • Habilita a separação da lógica da aplicação da apresentação
    ▪ Melhora a manutenabilidade e reusabilidade
  • Extensível via tags customizadas
  • Suporta reuso através de JavaBeans e Tags Customizadas
  • Independente de plataforma (só precisa de um container web para rodar)
  • Faz uso da vasta API Java

CESPE
A JSP permite introduzir tags customizadas à sua biblioteca e, assim, estender facilidades à linguagem. Entre outros benefícios dessa prática estão a eliminação de scriptles em aplicações JSP, reuso e sintaxe similar à do HTML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Diretivas:

A

Recurso para dar instruções especiais ao Container no momento da tradução da página.

Diretiva: <%@ %>

FCC
Para fornecer informações especiais ao container JSP sobre a página JSP, quando esta é compilada para servlet, é utilizada a categoria Diretivas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Existem 3 diretivas:

A
  • @page
  • @taglib
  • @include
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

@page:

A

▪ Define propriedades específicas da página;
▪ Define atributos de configuração da página JSP.
▪ Exemplos:

<%@ page contentType=”text/html” %>
<%@ page language=”java” %>
<%@ page import=”java.util.Date” %>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

@taglib:

A

Define as bibliotecas de tags disponíveis para o JSP.
Exemplo:

<%@ taglib tagdir=”/WEB-INF/tags/cool” prefix=”cool” %>

▪ A URI identifica unicamente uma biblioteca de tags, localizando um arquivo TLD que descreve o conjunto de tags customizadas que devem ser
associadas ao prefixo especificado.

TLD significa tags lib descriptor (descritor de biblioteca de tags).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

@Include:

A
  • Define os textos e os códigos que são acrescentados na página atual no momento da tradução.
  • Ex: Inclusão de um cabeçalho, rodapé ou assinatura.
    Exemplo:
    ~~~
    <%@ include file=”autor.jsp” %>
    ~~~
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Elementos de criação de scripts - Decalaração:

A
  • Servem para declarar membros da classe do servlet gerado.(As variáveis e os métodos!).
  • Exemplo:
    ~~~
    <%! int count=0; %>
    ~~~
  • Tudo que estiver entre as tags <%! E %> é adicionado à classe FORA do método service();
  • Pode declarar as variáveis estáticas e de instância.
  • Declaração: <%! %>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Elementos de criação de scripts - Scriplet:

A
  • Código Java dentre de uma tag
    <% ... %>
  • Todas as declarações em um scriptlet devem terminar com um ponto-e-vírgula!
  • Scriptlet: <% %>
  • Você pode usar **<scripting-invalid>** para impedir que o JSP possua scripting (scriptles, expressões Java ou declaracões).</scripting-invalid>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Elementos de criação de scripts - Expressão:

A
  • Sempre se torna o argumento para um método print();
  • Exibe automaticamente aquilo que colocou entre as tags.
    <%= Counter.getCount() %> é igual a <% out.println(Counter.getCount()); %>
  • Nunca terminar uma expressão com ponto-e-vírgula!
  • NÃO DEVE usar um método com um tipo de retorno void como uma expressão.
  • Expressão: <%= %>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Comentários:

A
  • <!-- comentário HTML -->
    Vai ao cliente e o browser interpreta como comentário.
  • <%-- comentário JSP --%>
    É removido no momento da tradução da página.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Java Beans:

A
  • Um Java Bean é um componente reutilizável da API Java.
  • Um bean nada mais é do que um programa escrito em Java.
  • Java Beans podem ser facilmente acessados por páginas JSPs.

A especificação determina que todos os atributos privados de um objeto devem ser acessados por métodos getters e setters.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Estas convenções garantem que o objeto JavaBean possa ser utilizado por outras aplicações de maneira uniforme, distribuída e independente de plataforma:

A

Um Java Bean deve conter um construtor público e sem argumentos e implementar a interface Serializable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

JavaBeans vs Enterprise JavaBeans:

A
  • JavaBeans → Definem um formato para a criação de componentes de uso geral para as aplicações.
  • Enterprise JavaBeans → Componentes especializados na lógica de negóciode uma aplicação e que residem no servidor.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

No JSP, os JavaBeans são acessados por meio de ações:

A
  • <jsp:useBean>
  • <jsp:getProperty>
  • <jsp:setProperty>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Um JavaBean para ser salvo em arquivo, ou enviado de um computador para outro, em aplicações distribuídas, deve implementar a interface:

A

java.io.Serializable

19
Q

Ações (Standards Actions):

A

Conjunto de ações para realizar tarefas comuns em páginas.
- Definidas por meio de tags.
- São iniciadas pelo prefixo: <jsp:... >

20
Q

<jsp:forward>

A

Permite o redirecionamento da requisição atual para outra página JSP, ou uma página estática, ou uma classe servlet.
- Esse recurso deve apontar para um caminho no mesmo contexto da página atual, ou seja, um caminho relativo;

<jsp:forward page=”/page.jsp?nome=Maria” />
20
Q

<jsp:include>

A
  • Utilizada para incluir recursos estáticos ou dinâmicos que estejam localizados no mesmo contexto da pagina em execução.
  • Inclusão feita no objeto out atual
  • Sua sintaxe pode conter também subelementos jsp:param
<jsp:include page=”/page.jsp?nome=Jose” flush=”true” />
<jsp:param name=”nome” value=”Jose” />
21
Q

<jsp:useBean>

A

Associa uma instância de um objeto (Java Bean) a uma variável, que pode ser utilizada por meio dos elementos de script.
- ```
<jsp:useBean id=”nome” scope=”session” class=”classe” />
~~~

  • id: é o identificador do bean na página JSP;
  • scope: indica o escopo ao qual o bean pertence.Os escopos válidos são: application, session, request, page (default)
  • class: é o nome completo da classe que define a implementação do objeto.
22
Q

Para ler ou alterar as propriedades do bean, utilizam-se as ações:

A
  • <jsp:getProperty>
  • <jsp:setProperty>
23
Q

<jsp:text>

A

Utilizada para incluir texto em uma página JSP, um documento JSP ou mesmo um arquivo de tags.
- Sua sintaxe inclui apenas o texto contido dentro do corpo da tag:
<jsp:text>Exemplo de texto</jsp:text>

24
As seguintes ações são utilizadas dentro de documentos JSP para converter as formas permitidas em arquivos HTML para o formato XML:
- `` - `` - ``
25
O mecanismo de inclusão, que permite o conteúdo dinâmico ser incluído em uma JSP em tempo de solicitação, é denominado:
Ação `` - **Diretiva include**: inclui o conteúdo do arquivo especificado durante a fase de **compilação** da página JSP - **Ação include**: inclui o resultado da execução do arquivo sendo incluído quando a página que o inclui está sendo **requisitada** pelo usuário.
26
Expression Language (EL):
- Tornou-se parte da especificação a partir do JSP 2.0. - Baseada no JavaScript - Objetivo de simplificar o código Java contido no JSP. - Inicia com “$” e é delimitada por chaves {} - Exemplos: `${param[“nomeCliente”]}` `${session.compras.total}` - EL prevê o uso de operadores aritméticos, relacionais e lógicos.
27
Para ignorar a utilização de EL em sua JSP:
- No DD: ``` true ``` - Diretiva **page**: ``` <%@ page isELIgnored=”true” %> ``` - Tem precedência sobre o DD!
28
Para se acessar propriedades de um bean ou de uma coleção, pode-se utilizar qualquer uma das seguintes formas:
- `${bean.propriedade}` - `${bean[“propriedade”]}` - `${bean[‘propriedade’]}`
29
Objetos Implícitos:
- São objetos cuja disponibilidade é automática. - Você pode utilizá-los sem instanciar, como se eles simplesmente existissem. - Pode-se escrever um JSP sabendo que o código fará parte de um servlet. Ou seja, aproveita as características de servlet, mesmo escrevendo um JSP.
30
São Objetos Implícitos do JSP:
- **applicationScope** - **sessionScope** - **requestScope** - **pageScope** - param - paramValues - header - headerValues - cookie - initParam - pageContext | Em negrito: Coleções do tipo Map, contêm todas as variáveis de escopo.
31
Objetos Implícitos - PAGE:
- Esse objeto implícito se refere à própria página. - Sinônimo do operador “this” do objeto HttpJspPage. - Não é usado com frequência.
32
Objetos Implícitos - CONFIG:
- Representa o objeto da classe javax.servlet.ServletConfig - Representa o objeto de configuração da Servlet gerado pelo JSP. - Podendo ser configurado pelo deployment descriptor (**web.xml**)
33
Objetos Implícitos - REQUEST:
- É uma instância da classe `javax.servlet.http.HttpServletRequest` - Esse objeto provê acesso a todas as informações disponíveis requisitados pelo usuário (como parâmetros de requisições e cabeçalhos). - Pode ser usado exatamente da mesma forma que o parâmetro HttpServletRequest, usado no método service() de um Servlet.
34
Objetos Implícitos - RESPONSE:
- É uma instância da classe javax.servlet.http.HttpServletResponse - Representa a resposta que será enviada à máquina que acionou o processamento da página JSP.
35
Objetos Implícitos - OUT:
- É uma instância da classe javax.servlet.jsp.JspWriter que, por sua vez, estende `java.io.Writer` complementada por diversos métodos da classe `java.io.PrintWriter`. - É usada para imprimir caracteres como a classe similar `java.io.PrintWriter`. - Usa-se os métodos **print()**, **println()** e **write()** para escrever dados como resposta. - Equivalente às expressões (<%= ... %>)
36
Objetos Implícitos - SESSION:
- É um objeto da classe `javax.servlet.http.HttpSession` - Define a sessão do usuário, como feito na Servlet. - **Importante**: lembrar que o objeto session só está presente nas páginas cuja diretiva **session** está definida como true
37
Objetos Implícitos - APPLICATION:
- Provê uma referencia a interface `javax.servlet.ServletContext` que representa o contexto da aplicação. - Pode armazenar dados que serão compartilhados e visíveis a todas as sessões da aplicação.
38
Objetos Implícitos - PAGECONTEXT:
- Referência ao objeto javax.servlet.jsp.PageContext é diferente do restante de objetos implícitos avaliados. - A instancia pageContext proporciona ao desenvolvedor JSP acesso a todos os escopos disponíveis no JSP e para vários atributos de página úteis, como: o **pedido atual** e **resposta**, o **ServletContext**, **HttpSession** e **ServletConfig**.
39
Objetos Implícitos - EXCEPTION:
- É uma instância do objeto `java.lang.Throwable` - Representando uma exceção e estará presente em páginas de erros da aplicação.
40
Biblioteca de Tags:
- Biblioteca de tags ou Tag Libraries - Maneira de se estender a semântica das páginas para suportar um conjunto de tagspersonalizadas. - Vantagem de dividir a funcionalidade da aplicação Web em vários módulos reutilizáveis. - Alternativa ao uso de scriptlets. - Desenvolvedores podem criar suas próprias bibliotecas de tags customizadas. - Struts e JSP são baseados em componentes na forma de biblioteca de tags.
41
Biblioteca de Tags - características:
- Podem ser customizadas por meio de atributos; - Podem modificar a resposta gerada pela página; - Podem ser aninhadas entre si; - Podem se comunicar entre si; - É necessário declará-las mediante a diretiva TAGLIB: ``` <%@ taglib uri=”/Information.tld” prefix=”info” %> ``` - O atributo “prefix” especifica qual deve ser o prefixo utilizado com a tag na página.
42
JSTL (JSP Standard Tag Library):
- Coleção de bibliotecas, tendo cada uma um propósito bem definido. - Permitem escrever páginas JSP’s sem código Java. - Proporciona maior rapidez no desenvolvimento de um website. - JSTL também deve ser declarada nas páginas JSP por meio da diretiva “taglib”. - JSTL é uma ótima alternativa à inclusão desordenada de elementos de script (scriptlets, declarações e expressões)