Please enable JavaScript.
Coggle requires JavaScript to display documents.
JEE: Java Enterprise Edition (Contêiner EJB (Tipos de EJB (Session Beans…
JEE: Java Enterprise Edition
Características Gerais
Conjunto de especificações destinadas ao desenvolvimento de aplicações robustas, escaláveis e de alta disponibilidade
JEE 6: Introdução do conceito de profiles ou perfis (web vs full), JAX-RS
Client x Java EE Server
Servidor: Contêiner WEB + Contêiner EJB
Contêiner Web: Camada Web JSF + JSP + Servlets
Contêiner EJB: Camada de Negócio EJB
Cliente: Browser + Aplicação
Permite ao desenvolvedor se preocupar apenas com a lógica de negócio e apresentação, pois oferece os outros serviços
EAR File
Web Module (WAR): web.xml
EJB Module (JAR): ejb-jar.xml
Contêiner Web
Servlets
API independente de plataforma (bytecote)
Classe java pura
Fornecem conteúdo web dinâmico às paginas web, filtrando dados, acessando o banco de dados ou processando requisições
Função de estender as capacidades dos servidores request-response
Ciclo de Vida
Servidor recebe Requisição HTTP e repassa ao ServletContainer
Caso já exista uma instância de Servlet, delega a requisição para essa instância. Se não, carrega a servlet na memória e a inicia por meio do método
init()
, que possui como parâmetro ServletConfig
Chama-se o método "service()" com dois parâmetros: ServletRequest e ServletResponse.
Método
destroy
é invocado para liberar os recursos e dados
JavaServer Pages
Linguagem de Script
Função de gerar de forma prática e simples conteúdo dinâmico para páginas web
Possui perfeita integração com HTML
Permite utilizar código Java dentro de páginas web ou tags
Como é Java, pode utilizar qualquer recurso da linguagem
A ideia é separar a lógica de negócio e a apresentação
Eventualmente é compilada e é transformada em um servlet
Sintaxe
Declaração deve possuir um ponto de exclamação: <%! ... %>
Expressão deve possuir o sinal de igualdade: <%= ... %>
Scriptlets: blocos de código Java embutidos em página JSP, é o mais simples de identificar: não possui nada após o sinal de %
Comentários: <%-- --%>, similar ao HTML
Ações
Permitem acessar e alterar as regras de negócio, redirecionar requisições.
Jsp:include - inserir conteúdo dinâmico em tempo de solicitação
Jsp:forward - redirecionar requisições para outra JSP
Jsp: useBean - usada para invocar um Bean
Diretivas
Instruções enviadas ao servidor para definir procedimentos de compilação da página
error
error
error
Possui uma linguagem de expressões para Web Designers: JSPEL
JavaServer Faces
Tecnologia que permite criar Aplicações Web utilizando componentes visuais pré-prontos.
Baseado no framework Struts
Arquitetura MVC (Modelo-Visão-Controlador)
Trata de componentes de interface com o usuário, como GUI
Define 3 taglibs, embora o usuário possa criar suas próprias: HTML (xmlns:h), CORE (xmlns:f) e FACELETS (xmlns:ui)
Arquivo de configuração principal é o faces-config.xml, onde tratam-se as regras e mapeamentos de navegação, definem-se managed beans e estabelecem-se os fluxos de comunicação
Clara separação entre comportamento e apresentação
No web.xml, tratam-se aspectos de segurança, páginas de erro, declaração de servlets
JSF 2.0 possui suporte nativo a Ajax e suporte a facelets
Todas as regras de negócio são implementadas no modelo, que também administra os dados da aplicação
Facelets
Linguagem de declaração de página poderosa e leve
JSP é considerado obsetoleto para JSF
Tecnologia de apresentação preferida para construir aplicações JSF
Facelets Views são criadas com páginas HTML e XHTML
Possuem uma linguagem de expressão
Filtros de URL, etc.
Contêiner EJB
Arquitetura para aplicações corporativas baseada em componentes e orientada à transação
Oferecem toda infraestrutura para desenvolvimento e implantação de aplicações escaláveis, seguras, concorrentes, distribuídas, persistentes e portáteis
O desenvolvedor não precisa se preocupar com a criação de processos, threads, ativação ou destruição de objetos
Principal descritor de implantação é o ejb-jar.xml
Deixa o programador livre para se concentrar na lógica do negócio e na resolução do problema
Pode ser utilizada com vários protocolos diferentes
EJBHome vs EJBObject
EJBObject - implementa a interface para acessos remotos e locais
EJBHome - faz a mesma coisa, mas permite criar, buscar e remover objetos
Tipos de EJB
Entity Bean - só existe por questão de compatibilidade com versões anteriores. Foi substituído pela JPA
Message-Driven Beans (MDB) - objeto não persistente, permite um componente receber e tratar mensagens assíncronas.
Session Beans (SB) - objeto não persistente que implementa uma lógica de negócio ou fluxo de trabalho no servidor
Servem para executar alguma tarefa em nome de um único cliente
Permitem enviar e receber mensagens JMS, mas apenas de forma síncrona
Tipo Stateful - objetos de negócio que mantém estado entre chamadas de métodos
Tipo Stateless - não mantém estado entre chamadas de métodos
Tipo Singleton - objetos de negócio são instanciados uma única vez pela aplicação
CDI integra EJB e JSF de forma fracamente acoplada e flexível
Java Persistence Api (JPA)
Padrão para persistência de dados que fornece aos desenvolvedores um mapeamento objeto/relacional para gerenciamento de dados relacionais em Java
Pode ser utilizado pelo Contêiner EJB, Contêiner Web ou pelo Application Client
A interface Entity Manager é responsável por realizar operações de sincronismo com o Banco de Dados
Para consultar entidades por meio do Entity Manager, deve-se empacotar um conjunto de classes em um Persistence Unit, definido no descrito de implantação persistence.xml
Ciclo de Vida dos Objetos
Novo - objeto não possui representação no banco de dados
Gerenciado - quando o objeto é persistido no banco de dados
Objetos recuperados do banco estão nesse estado
Um objeto é persistido no Banco após um Commit
Destacado - representa um objeto que foi desconectado do Entity Manager