Cuma, Temmuz 31, 2009

HttpSessionListener ve ServletContextListener

ServletContextListener ve HttpSessionListener bir web projesinde sıkça kullanılması gerekenlerdendir. bir web projesinde session create edilirken ve destroy olurken yapılması gereken işler mutlaka olur. Bunun için HttpSessionListener nesnesini kullanırız.

Aynı şekilde projeyi ilk olarak servera deploy edip başlatırken uygulamanın çalışması boyunca kullanılacak parametreleri yüklemek isteyebiliriz. veya uygulamayı kapatırken yapmamız gereken işler olabilir. Bu durumda contextlistenera ihtiyacımı olacaktır. Bunun için de ServletContextListener ı kullanabiliriz.

Aşağıda ikisini bir arada kullanan bir örnek bulunmaktadır.
public class MySessionListener implements HttpSessionListener, ServletContextListener {
public MySessionListener() {
}

public void sessionCreated(HttpSessionEvent event) {
/*session ilk oluşturulduğunda yapacağınız işleri burada yapabilirsiniz
örneğin aşağıda kullanıcı session objemizi oluşturup sessiona atıyoruz
*/
SessionUserBean sub =new SessionUserBean();
event.getSession().setAttribute("sessionUserBean", sub);
}

public void sessionDestroyed(HttpSessionEvent event) {
// session destroy olurken yapılmak istenen işler...
}

public void contextInitialized(ServletContextEvent event) {
//uygulama deploy edilirken yapılamsı gereken işler...
ApplicationBean appbean = new ApplicationBean();
event.getServletContext().setAttribute("applicationBean",appbean);

}


public void contextDestroyed(ServletContextEvent event) {
//uygulama kapatılırken yapılması gereken işler...
}
}


web.xml deki tanımı ise şöyle yapılabilir.
<!-- Session listeners -->
<listener>
<listener-class>org.yourapp.listener.MySessionListener</listener-class>
</listener>

Hiç yorum yok:

Yorum Gönder