Java EE Flashcards

1
Q

**

Java EE

A

JEE (Java Enterprise Edition) é uma plataforma de programação para servidores na linguagem de programação Java, que integra uma série de especificações e containers, cada uma com funcionalidades distintas.

É um conjunto de especificações, não um produto;

Define um conjunto de padrões para o desenvolvimento de aplicações corporativas robustas, portáveis, seguras, multicamadas;

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

Qual o objetivo da JEE?

A

Fornecer um conhunto avançado de APIs que:
* Tempo
* Complexidade
* Desempenho
de aplicações.

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

Java EE simplifica o desenvolvimento de aplicações, pois:

A
  • Fornece uma arquitetura baseada em componentes modulares e padronizados;
  • Fornece um conjunto completo de serviços para esses componentes.
  • Trata de muitos detalhes do comportamento das aplicações automaticamente.
    (Sem necessidade de programação complexa.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Exemplos de servidores de aplicações JEE:

A
  • GlassFish Server Open Source Edition
  • WebLogic Application Server
  • JBoss Application Server
  • WebSpehere Application Server
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

A tecnologia J2EE — Java 2 Plataform Enterprise Edition por meio do JSP
(JavaServerPages) — enfatiza:

A

A utilização de componentes Java reutilizados.

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

Quais são os principais componentes de Java EE?

A

Os principais componentes incluem:
- Servlets
- JSP (JavaServer Pages)
- EJB (Enterprise JavaBeans)
- JPA (Java Persistence API)
- CDI (Contexts and Dependency Injection)
- Web Services.

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

O que são Java Servlets?

A
  • Servlets são objetos Java que tratam de requisições e respostas HTTP.
  • São executados no servidor e tem o objetivo de gerar conteúdo (HTML e XML) dinâmico para web.
  • Permitem que os usuários entrem com informações em páginas web e tenham suas requisições tratadas de forma dinâmica pela plataforma.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que é JSP?

A
  • Páginas HTML com código Java embutido.
  • Os JSPs são compilados em um servlet

No container WEB, uma página JSP transforma-se em um servlet, que é compilado, carregado e inicializado.
(Deprecated) em favor do JSF e facelets.

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

O que é JSF?

A
  • JavaServer Faces (JSF) é um framework para desenvolver aplicações web de forma ágil, baseado (mas, não limitado) no padrão MVC.
  • Permite que o desenvolvedor crie UIs através de um conjunto de componentes UIs prédefinidos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Cite algumas das vantegens do uso de JSF em relação ao JSP:

A

O uso de facelets (objetos JSF) traz vantagens em relação ao uso de JSP, como:
- maior modularidade, com o uso de templates e componentes compostos (composite).
- O uso de templates
- Separação mais rígida entre visão e lógica de apresentação

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

Enterprise JavaBeans (EJB)

A
  • É um modelo de componentes padronizado, executado no lado do servidor e que facilita a construção de aplicações distribuídas robustas.
  • É uma arquitetura de componentes multiplataforma para o desenvolvimento de aplicações Java EE, multicamadas, distribuídas, escaláveis e orientadas a objetos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Java Transaction API (JTA)

A
  • É uma especificação que visa padronizar o uso de transações distribuídas feitas por aplicativos Java.
  • Permite que aplicações Java EE acessem transações de uma forma independente de implementações específicas.
  • Especifica interfaces Java padrão entre um gerente de transação (transaction manager) e as partes envolvidas em um sistema de transações distribuídas: a aplicação transacional, o servidor Java EE, e o gerente que controla o acesso aos recursos compartilhados afetados pelas transações.
  • Define ainda a interface UserTransaction que as aplicações podem utilizar para iniciar, confirmar ou anular
    transações.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Java Message Service (JMS)

A
  • Estabelece um padrão para troca de mensagens entre diferentes aplicações.
  • É uma API da linguagem Java que permite a componentes baseados em Java/J2EE; Criar, enviar, receber e ler mensagens).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Java Persistence API (JPA)

A
  • Disponibiliza um modelo de persistência para objetos mapeados para bancos de dados
    relacionais.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

JEE Connector Architecture (JCA)

A
  • Tecnologia utilizada para resolver o problema de conectividade entre servidores de aplicações Java e sistemas existentes (ERPs, CRMs, etc.).
  • É uma API que padroniza a ligação a aplicações legadas na plataforma Java Enterprise
    Edition.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Web Services API (WSA)

A
  • Permite a codificação e utilização de web services que se comunicam com outros componentes de outras plataformas.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Java Naming and Directory Interface (JNDI)

A
  • É uma API de localização de nomes utilizada para buscar recursos e serviços da plataforma.
  • É utilizada pelo ENJ, RMI-IIOP, JDBC, etc.
  • Padroniza o acesso ao serviço de nomes e diretórios.
  • É utilizado como o repositório central para os recursos gerenciados pelo container.
  • É a implementação do padrão “Service Locator”
    (Define uma interface unificada para a busca de objetos, recursos e serviços).

CESPE: O JNDI fornece um serviço de nomes e diretórios para o registro e a obtenção de referências a recursos.

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

Remote Method Invocation (RMI)

A
  • É um modelo de objetos distribuídos (em Java) com o objetivo de facilitar a comunicação entre os objetos distribuídos.
  • Permite que uma thread invoque um método em um objeto remoto.
  • API de alto nível construída sob sockets.
  • Evolução da arquitetura Cliente/Servidor. Porém, há maior flexibilidade no RMI.

  • Os objetos remotos podem ser manipulados como se estivessem residindo no computador local.
  • Transmissão transparente pela JVM.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Java Database Connectivity (JDBC)

A
  • API de acesso a banco de dados.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Contexts and Dependency Injection (CDI)

A
  • O CDI é o mecanismo oferecido pela plataforma Java EE 6 para gerenciamento de dependências entre componentes (chamados de beans) de uma aplicação corporativa (com ou sem o uso de EJBs), associando-os a contextos e oferecendo uma série de serviços de infraestrutura à aplicação.
  • No JEE 6, CDI é a especificação que tem como propósito unir os modelos de componentes do JSF Managed-Beans com o EJB, proporcionando um modelo de fácil implementação para aplicações web.
  • Os serviços CDI permitem aos componentes do Java EE, como beans de sessão EJB e beans gerenciados do JavaServer Faces (JSF), serem injetados e interagir de maneira acoplada e flexível iniciando e observando eventos.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

A aplicação JEE é construída em 3
(três) camadas, são elas:

A
  1. Máquina Cliente (Client Machine)
  2. Servidor Java EE (Camada Web + Camada de Negócios)
  3. Servidor de Banco de Dados (Database Server) - EIS (Enterprise information system)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Componentes

A

Um componente Java EE:
- É uma unidade funcional de software autocontida e reutilizável;
- Montado dentro de uma aplicação;
- Pode usar outras classes de arquivos;
- Comunica-se com outros componentes através de interfaces de componentes.

23
Q

Componentes que são executados no CLIENTE

A
  • Cliente de Aplicação
  • Web Browsers
  • Applets
24
Q

O que são Applets

A
  • São pequenas aplicações clientes escritas em Java e que executam na máquina virtual de um browser.
  • São obtidos durante o download de uma página.
  • Classe em Java, que estende de java.applet.Applet .
25
Q

Componentes WEB que rodam no SERVIDOR

A
  • Servlet
  • Java Server Pages (JSP)
  • Java Server Faces (JSF)
26
Q

Componentes de NEGÓCIOS que rodam no SERVIDOR:

A

Enterprise JavaBeans (EJB)
- Recebe dados de programas do cliente;
- Processa-os (se necessário);
- Envia para a camada de sistema de informação empresarial (EIS) para armazenamento.
- Caminho de volta:
- Recupera dados armazenados, processa-os (se necessário) e envia de volta para o programa cliente.

27
Q

Há 3 tipos de EJBs:

A
  • Session Beans: Conversação transiente
  • Entity Beans: Dados persistentes armazenados em BD
  • Message-Driven Beans: Troca de mensagens assíncronas via JMS
28
Q

Camada de Banco de Dados

A

É contida pelo sistema de informação empresarial (EIS)
- Pode ser composta por sistemas legados
- Seu isolamento é fundamental para proporcionar Independência e facilidade de manutenção.

29
Q

Defina Containers

A
  • Fornecem os serviços necessários à execução dos componentes;
  • Representam um ambiente operacional;
  • Fornecem os recursos e infraestrutura necessária à publicação e execução de componentes;
  • Encapsulam a complexidade do ambiente corporativo e fornece independência de plataforma aos componentes;
  • Representam a interface entre os componentes e serviços de baixo-nível;

  • Para um componente ser utilizado, o mesmo deve ser publicado em um container.
  • É configurado através de arquivos XML, ou da geração de classes de serviços.
30
Q

Cite os tipos de CONTAINERS

A
  1. Contêiner de Clientes de Aplicação
    - Gerencia as aplicações do lado do cliente.
    - Pode acessar diretamente ao container EJB.
  2. Contêiner de Applet
    - Gerencia a execução de applets.
    - É composto por um plug-in Java e um browser executados em conjunto.
  3. Contêiner Web (ou Servlet Contêiner)
    - Gerencia JSP e os Servlets.
    - Promove diversos serviços como:
    - Gerência do ciclo de vida de componentes.
    - Acesso às APIs para esses componentes.
  4. Contêiner Enterprise JavaBeans
    - Gerencia os EJBs e também promove diversos serviços.
    - Possuem os EJBs que contém a lógica de negócios da aplicação.
31
Q

Servlets

A

São programas Java capazes de processar requisições de clientes web.
- Um servlet estende as capacidades de um servidor web.
- Suportam, geração de conteúdo dinâmico nas páginas, acesso a banco de dados, atendimento às múltiplas requisições de clientes e a filtragem de dados.
- Rodam no servidor, por meio de uma JVM.

32
Q

O uso de servlets é recomendado para:

A
  • Aplicações orientadas a serviços;
  • Controlar as funções de uma aplicação orientada a apresentação, como redirecionar requisições e tratar dados não textuais (binários).
33
Q

Execução de Servlets:

A
  • Os servlets não possuem um método main(); Eles estão sob o controle de outra aplicação Java chamada Container.
  • Para executar Servlets e JSP é preciso implantá-los em um Contêiner Web (Web Container).
  • É o Container que entrega ao servlet a request e response HTTP e chama os métodos do servlet (doPost() ou doGet()).
  • Um Contêiner Web pode executar como parte de um servidor HTTP que repassa as requisições destinadas a Servlets e JSPs.
34
Q

O ciclo de vida de um servlet é controlado por quem?

A
  • O ciclo de vida de um servlet é controlado pelo contêiner no qual o servlet está implantado.
  • Container no controle, não precisa se preocupar com o gerenciamento dos
    recursos.
  • Quando o servidor recebe uma solicitação → passa para o Container que delega a um servlet.
35
Q

Ciclo de vida de um Servlet:

A

1. O Container carrega a classe do servlet na memória;
2. Invoca o construtor-padrão do servlet;
3. Chama o método init();
▪ O método init() é chamado apenas uma vez no ciclo de vida, e sempre antes do servlet atender a qualquer solicitação do cliente. O método init() dá ao servlet acesso para os objetos ServletConfig e ServletContext, que o servlet precisa para conseguir informações sobre a configuração do servlet e a aplicação web.
4. Chamar o método service();
▪ O servlet passa a maior parte da sua vida rodando um método service() para uma solicitação do cliente.
5. Chamar o método destroy();
▪ O Container termina com a vida de um servlet chamando seu método destroy().

36
Q

Quantas instancias cada classe servlet suporta?

A
  • Cada solicitação para um servlet roda em uma thread separada!
  • Só existe apenas uma instância para qualquer classe servlet.
37
Q

Que tipo de requisção os servlets tratam?

A

Servlet foi criada para tratar QUALQUER tipo de requisição.
- O mais comun é o HTTP.

38
Q

Classes e interfaces mais importantes do pacote javax.servlet.http:

A

Interfaces
- HttpServletRequest
- HttpServletResponse

Classes Abstratas
- HttpServlet

39
Q

As classes servlet estão em um dos dois pacotes:

A
  • javax.servlet
  • javax.servlet.http
40
Q

ServletConfig:

A

Serve para passar informações em tempo de distribuição para um determinado servlet, sendo assim somente um servlet específico pode enxergar esse parâmetro.

41
Q

ServletContext:

A

Serve para passar informações em tempo de distribuição para toda a aplicação.
- Use-o como se fosse um quadro de aviso onde toda a aplicação pode enxergar esse parâmetro.

42
Q

Para ler os parâmetros de inicialização do contexto de um servlet, utiliza-se o método:

A

Enumeration getInitParameterNames()

43
Q

Servlets são projetadas para fornecer aos desenvolvedores uma solução Java para criar aplicações web. Para criar Servlets é necessário importar as classes padrão de extensão dos pacotes:

A

javax.servlet e javax.servlet.http

44
Q

Todo servlet pode interagir com o contexto no qual ele está inserido por meio dos métodos especificados na interface:

A

ServletContext

45
Q

As requisições GET, na classe HttpServlet do Java, são utilizadas no servidor Web para:

A

Invocar o método doGet() da classe.

46
Q

Para escrever um servlet HTTP, deve-se estender HttpServlet e implementar um ou mais de seus métodos de serviço; doGet() e/ou doPost():

A
import javx.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class ServletWeb extends HttpServlet {
    public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException {
		    PrintWriter out = response.getWriter();
				response.setContentType("text/html");
				out.println("<h1>Hello, World!</h1>");
				out.close();
		}
}
47
Q

A classe HttpServlet redireciona os pedidos encaminhados para service para métodos que refletem os métodos HTTP (GET, POST, etc):

A
public void doGet(HttpServletRequest, HttpServletResponse)
public void doPost(HttpServletRequest, HttpServletResponse)
48
Q

Quem utiliza o diretório WEB-INF?

A

Dentro da estrutura de uma aplicação Web, existe um diretório especial denominado WEB-INF.
- Utilizado diretamente pelo contêiner Web e não pelo cliente.

49
Q

Que arquivos estão contidos dentro do diretório WEB-INF?

A

O diretório contém:
/WEB-INF/web.xml:
- O arquivo deployment descriptor (descritor de implantação ou de contexto). Responsável pela configuração de todos os componentes da aplicação.

/WEB-INF/classes:
- Diretório que contém as classes compiladas dos servlets, disponíveis durante o carregamento da aplicação.

/WEB-INF/lib:
- Diretório que contem os arquivos JAR, que podem conter servlets, java beans e outros componentes úteis para a aplicação.

/WEB-INF/tags:
- Contém extensões das bibliotecas de tags escritas em JSP em arquivos de tag (com a extensão .tag ou .tagx)

50
Q

Arquivo WAR:

A
  • Empacota todos os arquivos de uma aplicação Web em um único arquivo.
  • Facilita distribuição e controle.
  • Mesmo formato dos arquivos JAR, que empacotam aplicações Java.
51
Q

Elementos que pode conter um arquivo WAR:

A
  • Aplicações do cliente (Applets, etc.);
  • Recursos estáticos (HTML, imagens, vídeos);
  • Java Server Pages (JSPs);
  • Diretório WEB-INF (com classes de servlets, o deployment descriptor, arquivos de tags, etc.)
52
Q

Filtros:

A

Filtros são componentes responsáveis por interceptar requisições e respostas de forma dinâmica, para transformá-los ou processar suas informações.

53
Q

A API de filtros é composta pelas interfaces:

A
  • Filter
  • FilterChain
  • FilterConfig
54
Q

Algumas tarefas que um filtro pode realizar:

A
  • Transformar o conteúdo de uma requisição ou resposta
    Ex: Converter um conteúdo para XML ou adicionar compressão ou criptografia.
  • Manipular respostas antes de enviá-las para o cliente
    Ex: Inserir cabeçalhos ou rodapés no corpo da página, ou modificar o cabeçalho da resposta.
  • Examinar ou impedir uma requisição ou resposta de continuar
    Ex: Filtro de autenticação → só permite o acesso a usuários autenticados.
  • Realizar algum tipo de processamento comum
    Ex: Gerações de logs de auditoria a cada acesso a uma página.
  • Interagir com recursos externos