JavaServer Pages (JSP) Flashcards

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
Q

As seguintes ações são utilizadas dentro de documentos JSP para converter as formas permitidas em arquivos HTML para o formato XML:

A
  • <jsp:declaration>
  • <jsp:scriptlet>
  • <jsp:expression>
25
Q

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

Ação <jsp:include>

  • 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
Q

Expression Language (EL):

A
  • 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
Q

Para ignorar a utilização de EL em sua JSP:

A
  • No DD:
    ~~~

<jsp-config> <jsp-property-group> <el-ignored>true</el-ignored> </jsp-property-group> </jsp config>
~~~

- Diretiva **page**:
~~~
<%@ page isELIgnored=”true” %>
~~~
- Tem precedência sobre o DD!
</jsp-config>

28
Q

Para se acessar propriedades de um bean ou de uma coleção, pode-se utilizar qualquer uma das seguintes formas:

A
  • ${bean.propriedade}
  • ${bean[“propriedade”]}
  • ${bean[‘propriedade’]}
29
Q

Objetos Implícitos:

A
  • 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
Q

São Objetos Implícitos do JSP:

A
  • 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
Q

Objetos Implícitos - PAGE:

A
  • 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
Q

Objetos Implícitos - CONFIG:

A
  • 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
Q

Objetos Implícitos - REQUEST:

A
  • É 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
Q

Objetos Implícitos - RESPONSE:

A
  • É 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
Q

Objetos Implícitos - OUT:

A
  • É 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
Q

Objetos Implícitos - SESSION:

A
  • É 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
Q

Objetos Implícitos - APPLICATION:

A
  • 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
Q

Objetos Implícitos - PAGECONTEXT:

A
  • 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
Q

Objetos Implícitos - EXCEPTION:

A
  • É uma instância do objeto java.lang.Throwable
  • Representando uma exceção e estará presente em páginas de erros da aplicação.
40
Q

Biblioteca de Tags:

A
  • 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
Q

Biblioteca de Tags - características:

A
  • 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
Q

JSTL (JSP Standard Tag Library):

A
  • 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)