Arquivo da categoria ‘JEE’

Certificações Java – Treinamentos gratuitos

Autenticação Servlet – Parte 01

Dentro da especificação Servlet existe uma parcela que compreende a segurança dos recursos acessados por cliente. Dentre estes recursos esta autenticação através de formulário, certificados digitais e ate mesmo por tela autenticação gerada pelo próprio browser.

Dividirei o conteúdo em algumas partes e logo que for terminando de compor estarei disponibilizando. Segue abaixo em negrito o conteúdo que terminei:

Parte 01: Os quatro mecanismo de autenticação

Parte 02: Implantando

Clique aqui e leia mais…

Filtro de Servlets (Servlets Filters)

Tecnicamente falando, filtro é um objeto que intercepta uma mensagem de requisição entre a origem/cliente e destino/recurso.

Como funciona?

Associando a origem ao browser/navegador, o destino a um servlet e uma implementação de HttpServletRequest a mensagem de requisiçao é possível interceptar estas requisições através de um filtro.

A mensagem antes de chegar ao servlet é recepcionada/interceptada por um filtro que aplica alguma regra de negocio da aplicação e permite ou não o acesso ao servlet. Caso o acesso seja concebido a mensagem chegará ate o servlet e será processada, ao terminar o processo o servlet responde (HttpServletResponse), a resposta passará novamente pelo filtro antes de chegar ao cliente/origem.

Clique aqui e leia mais…

Eventos e seus ouvintes (Listeners) em Servlets

Eventos e seus ouvintes (Listeners) em Servlets
Conhecemos formas de adicionar atributos em uma javax.servlet.http.HttpSession, em um
javax.servlet.ServletContext e ate mesmo em javax.servlet.HttpServletRequest, também sabemos que
javax.servlet.ServletContext e javax.servlet.http.HttpSession são inicializados e destruidos para dar
suporte ao compatilhamento de dados. Mas como interagir com esses eventos?
Bem, a resposta é simples, dentro da propria API Servlet é possível encontrar algumas interfaces que
quando implementadas são capazes de responderem a esta pergunta.
<n> Eventos relacionados manipulaçao de atributos
A manipulação de eventos relacionados a atributos são ouvidos pelas seguintes interfaces:
- HttpSessionAttributeListener: Eventos relacionados a HttpSession
- ServletContextAttributeListener: Eventos relacionados ao ServletContext
- ServletRequestAttributeListener: Eventos relacionados ao ServletRequest
Para cada interface é necessário implementar três métodos, com uma assinatura padrão, mudando apenas o
parametro recebido no método, que deve ser filho de javax.servlet.http.HttpSessionEvent.
HttpSessionAttributeListener:
public void attributeRemoved(HttpSessionBindingEvent bindingEvent);
public void attributeReplaced(HttpSessionBindingEvent bindingEvent);
public void attributeAdded(HttpSessionBindingEvent bindingEvent);
ServletRequestAttributeListener:
public void attributeAdded(ServletRequestAttributeEvent attributeEvent);
public void attributeRemoved(ServletRequestAttributeEvent attributeEvent);
public void attributeReplaced(ServletRequestAttributeEvent attributeEvent);
ServletContextAttributeListener:
public void attributeAdded(ServletContextAttributeEvent attributeEvent);
public void attributeReplaced(ServletContextAttributeEvent attributeEvent);
public void attributeRemoved(ServletContextAttributeEvent attributeEvent);
<n> Eventos relacionados a criação e destruição
<n> ServletContext
Permite ao desenvolvedor saber quando o contexto foi inicializado ou destruido. A interface
javax.servlet.ServletContextListener deve ser implementada. Esta interface define dois métodos:
public void contextInitialized(ServletContextEvent contextEvent): Sempre que o contexto foi inicializado.
public void contextDestroyed(ServletContextEvent contextEvent): Sempre que o contexto for destruido.
Um utilização comum para o uso desta interface é a criação ou instanciação de recursos, como conexões a
banco de dados, que devem ser destruida, desalocadas quando o contexto for destruido, descarregado.
<n> HttpSession
Permite ao desenvolver saber quando uma sessão foi inicializada ou destruida. A interface
javax.servlet.Http.HttpSessionListener deve ser implementada. Esta interface define dois método:
public void sessionCreated(HttpSessionEvent sessionEvent): Sempre que uma sessão é criada.
public viod sessionDestroyed(HttpSessionEvent sessionEvent): Sempre que uma sessão é destruida.
<n> HttpServletRequest
Permite ao desenvolvedor saber quando uma requisição é efetuada do cliente ao escopo do servlet. A
interface javax.servlet.Http.HttpServletRequestListener deve ser implementada. Esta interface define dois
métodos:
public void requestInitialized(ServletRequestEvent requestEvent): Sempre que uma requisição é feita.
public void requestDestroyed(ServletRequestEvent requestEvent): Sempre que uma requisição é atendida.
Definindo o uso de listener(Ouvintes)
Em alguns passos definirei o que é necessário para criar um listerner(ouvinte) dos eventos.
Passo 1: Criar uma classe que implemente um ou mais interfaces
public class YRossAttibuteListener
implements HttpSessionAttributeListener {
}
Passo 2: Implementar os métodos das interfaces.
public class YRossAttibuteListener
implements HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent bindingEvent) {
println(“Adicionado Atributo Session”);
}
public void attributeRemoved(HttpSessionBindingEvent bindingEvent) {
println(“Removido Atributo Session”);
}
public void attributeReplaced(HttpSessionBindingEvent bindingEvent) {
println(“Modificado Atributo Session”);
}
}
Passo 3: Definir que esta classe é um listener no descritor de implantação (web.xml), como segue abaixo:
<listener>
<listener-class>br.com.yross.listeners.YRossAttibuteListener</listener-class>
</listener>
<listener>
<listener-class>br.com.yross.listeners.YRossServletContextListener</listener-class>
</listener>
Ufa, terminou, mas existem diversas interfaces que podem ser utilizadas para ouvir os eventos. Vale a pena pesquisa um pouco mais.

Conhecemos formas de adicionar atributos em uma javax.servlet.http.HttpSession, em um javax.servlet.ServletContext e ate mesmo em javax.servlet.HttpServletRequest, também sabemos que javax.servlet.ServletContext e javax.servlet.http.HttpSession são inicializados e destruidos para dar suporte ao compartilhamento de dados. Mas como interagir com esses eventos?

Bem, a resposta é simples, dentro da própria API Servlet é possível encontrar algumas interfaces que quando implementadas são capazes de responderem a esta pergunta.

Clique aqui e leia mais…

ServletConfig X ServletContext

Pretendo discutir um pouco sobre o uso de ServletConfig e ServletCOntext, existem pequenas diferenças entre os dois, mas especificamente no contexto de acesso as informaçoes contidas nos dois.

Clique aqui e leia mais…

RequestDispatcher

A API Servlet inclui a interface javax.servlet.RequestDispatcher com a finalidade de encaminhar a requisição atual para outro recurso, como um outro servlet.

Clique aqui e leia mais…

Ciclo de vida de um Servlet – Servlet Life Cycle

Comentárei um pouco sobre o ciclo e vida de um Servlet, desde a sua instanciação, passando por inicialização ate destruição.

Clique aqui e leia mais…

@TransactionAttribute

 

Responsável por controlar a forma como as transações devem se comportar/se associar aos métodos e executá-los. Comentarei um pouco sobre este recurso tão importante existente dentro do EJB 3.0, trata-se da anotação @TransactionAttibute.

Clique aqui e leia mais…

@WebService

Recebi a missão de desenvolver e disponibilizar alguns serviços via web, andei pesquisando e achei muita coisa, muita mesmo, mas parace que em todos os tutoriais e exemplo se fazia necessário a complexidade, enfim, o pessoal gosta de complicar.

O exemplo é simples, vamos recebe um texto e retorna o mesmo totalmente em maíusculo, para isso usarei algumas annotations do Java 6 e efetuaremos o deploy no glassfish.

Clique aqui e leia mais…

Criando Skin para JBoss Rich Faces

Um breve passo-a-passo de como desenvolver e configurar um SKIN para o Rich Faces.

Clique aqui e leia mais…

Próxima Página »