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
**Componentes WEB que rodam no SERVIDOR**
- Servlet - Java Server Pages (JSP) - Java Server Faces (JSF)
26
**Componentes de NEGÓCIOS que rodam no SERVIDOR:**
**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
**Há 3 tipos de EJBs:**
- **Session Beans:** Conversação transiente - **Entity Beans:** Dados persistentes armazenados em BD - **Message-Driven Beans:** Troca de mensagens assíncronas via JMS
28
**Camada de Banco de Dados**
**É 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
**Defina Containers**
- 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; ## Footnote - 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
**Cite os tipos de CONTAINERS**
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
**Servlets**
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
O uso de servlets é recomendado para:
- 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
Execução de Servlets:
- 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
O ciclo de vida de um servlet é controlado por quem?
- 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
Ciclo de vida de um Servlet:
**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
Quantas instancias cada classe **servlet** suporta?
- Cada solicitação para um servlet **roda em uma thread separada**! * Só existe apenas uma instância para qualquer classe servlet.
37
Que tipo de requisção os servlets tratam?
Servlet foi criada para tratar QUALQUER tipo de requisição. - O mais comun é o HTTP.
38
Classes e interfaces mais importantes do pacote **javax.servlet.http**:
**Interfaces** - HttpServletRequest - HttpServletResponse **Classes Abstratas** - HttpServlet
39
As classes servlet estão em um dos dois pacotes:
- **javax.servlet** - **javax.servlet.http**
40
ServletConfig:
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
ServletContext:
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
Para ler os parâmetros de inicialização do contexto de um servlet, utiliza-se o método:
Enumeration getInitParameterNames()
43
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:
**javax.servlet** e **javax.servlet.http**
44
Todo servlet pode interagir com o contexto no qual ele está inserido por meio dos métodos especificados na interface:
ServletContext
45
As requisições GET, na classe HttpServlet do Java, são utilizadas no servidor Web para:
**Invocar o método doGet() da classe.**
46
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():
``` 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("

Hello, World!

"); out.close(); } } ```
47
A classe HttpServlet redireciona os pedidos encaminhados para service para métodos que refletem os métodos HTTP (GET, POST, etc):
``` public void doGet(HttpServletRequest, HttpServletResponse) public void doPost(HttpServletRequest, HttpServletResponse) ```
48
Quem utiliza o diretório **WEB-INF**?
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
Que arquivos estão contidos dentro do diretório WEB-INF?
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
Arquivo WAR:
- 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
Elementos que pode conter um arquivo WAR:
- 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
Filtros:
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
A API de filtros é composta pelas interfaces:
- Filter - FilterChain - FilterConfig
54
Algumas tarefas que um filtro pode realizar:
- 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