Arquivo para a Tag ‘JEE’

Ciclo de vida de um JSP

Como qualquer outra linguagem, o “scripting” JSP tem uma gramática bem definida que inclui elementos de sintaxe para desenvolver diversos processos. Uma linguagem de alto nível, que também é chamada de “TAGS JSP”, classificadas em seis categorias.
Comentarei um pouco sobre cada uma dessas categorias.

Forma resumida das categorias

  • Directive: Especifica o momento de tradução do JSP
  • Declaration: Declara e define métodos e variáveis
  • Scriplet: Permite ao desenvolvedor escrever de forma livre dentro de página JSP
  • Expression: Usado para imprimir (escrever) valores no HTML de saída em uma página JSP
  • Action: Prové instruções em tempo de execução para o motor JSP
  • Comment: Usado para documentação e comentário do código JSP

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…

@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…