Wednesday, January 14, 2015

ServletContext dan Listener

Berikut ini penggunaan ServletContext dan Listener menggunakan editor netbeans


  • Buatlah sebuah project dengan tipe web application di netbeans
  • di file index.html, setelah tag <body> tambahkan kode berikut :
view servlet context
  • kemudian tambahkan sebuah servlet dengan nama ServletContextClass, jangan lupa untuk mencentang "Add information to deployment descriptor (web.xml)". 
  • Setelah dibuat ubah method doGet menjadi seperti ini
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    //processRequest(request, response);
    response.setContentType("text/html; charset=UTF-8");
    PrintWriter out = response.getWriter();

    ServletContext ctx = getServletContext();

    ctx.setAttribute("name", "Eresha Wikrama");
    out.print(ctx.getAttribute("name"));

    Enumeration temp = ctx.getAttributeNames();
    while(temp.hasMoreElements()){
        String attrName = (String) temp.nextElement();
        out.print("
Attribut " + attrName + " , nilainya = " + ctx.getAttribute(attrName));
    }

    out.print("

getServletContextName() : " + ctx.getServletContextName());

    out.print("
" + ctx.getInitParameter("bhs1"));
    Enumeration temp2 = ctx.getInitParameterNames();
    while(temp2.hasMoreElements())
    {
        String paramName = (String) temp2.nextElement();
        out.print("
Attribut " + paramName + " , nilainya = " + ctx.getInitParameter(paramName));
    }

    out.print("
getServerInfo() : " + ctx.getServerInfo());
    out.print("
getRealPath() : " + ctx.getRealPath(""));
    ctx.log("Hello world");
    ctx.setAttribute("name", "Eresha Wikrama Bogor, Teknik Informatika");
    ctx.setAttribute("name", null);

    request.setAttribute("word", "never say give up in this world");
    request.setAttribute("word", "do your best and let God do the rest");
    request.setAttribute("word", null);

    HttpSession session =  request.getSession();
    session.setAttribute("userSession", "EreshaWikramaSession");
    session.setAttribute("userSession", "Mari belajar JAVA");
    session.setAttribute("userSession", null);
}
  • kemudian tambahkan 6 buah class untuk mengimplementasikan interface listener
  • tambahkan sebuah Web Application Listener dengan nama ServletContextListenerClass, kemudian  di bagian "interface to implement" centang bagian "Context Listener"
  • di bagian method contextInitialized, ubah kode nya menjadi seperti berikut ini
@Override
public void contextInitialized(ServletContextEvent sce) {
    ServletContext ctx = sce.getServletContext();
    if (ctx != null) {
        ctx.log("Context : " + ctx.getServletContextName() + " sudah diinisialisasi");
    }
}
  • di bagian method contextDestroyed, ubah kode nya menjadi seperti berikut ini
@Override
public void contextInitialized(ServletContextEvent sce) {
    ServletContext ctx = sce.getServletContext();
    if (ctx != null) {
        ctx.log("Context : " + ctx.getServletContextName() + " sudah dihancurkan");
    }
}
  • tambahkan Web Application Listener ke 2 dengan nama ServletContextAttributeListenerClass, kemudian di bagian "interface to implement" centang bagian "Context Attribute Listener"
  • di bagian method attributeAdded, ubah kode nya menjadi seperti berikut 
@Override
public void attributeAdded(ServletContextAttributeEvent event) {
    ServletContext ctx = event.getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "attribute " + event.getName() + " dengan nilai : " + event.getValue() 
                + " sudah ditambahkan");
    }
}
  • di bagian method attributeRemoved, ubah kode nya seperti berikut
@Override
public void attributeRemoved(ServletContextAttributeEvent event) {
    ServletContext ctx = event.getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "attribute " + event.getName() + " dengan nilai : " + event.getValue() 
                + " sudah dihapus");
    }
}
  • di bagian method attributeReplaced, ubah kode nya seperti berikut
@Override
public void attributeReplaced(ServletContextAttributeEvent event) {
    ServletContext ctx = event.getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "attribute " + event.getName() + " dengan nilai : " + event.getValue() 
                + " sudah diubah");
    }
}
  • selanjutnya tambahkan lagi Web Application Listener dengan nama ServletRequestListenerClass, kemudian di bagian "interface to implement" centang bagian "Request Listener (J2EE 1.4)"
  • di bagian method requestDestroyed, ubah kode nya seperti berikut
@Override
public void requestDestroyed(ServletRequestEvent sre) {
    ServletContext ctx = sre.getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                 + "request " + sre.getServletRequest() + " sudah dihancurkan");
    }
}
  • di bagian method requestInitialized, ubah kode nya seperti berikut
@Override
public void requestInitialized(ServletRequestEvent sre) {
    ServletContext ctx = sre.getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                 + "request " + sre.getServletRequest() + " sudah diinisialisasi");
    }
}
  • tambahkan Web Application Listener dengan nama ServletRequestAttributeListenerClass, kemudian di bagian "interface to implement" centang bagian "Request Attribute Listener"
  • di bagian method attributeAdded, ubah kode nya seperti berikut
@Override
public void attributeAdded(ServletRequestAttributeEvent srae) {
    System.out.println("Attribute ditambahkan " +  srae.getName() + " = " +  srae.getValue());
}
  • di bagian method attributeRemoved, ubah kode nya seperti berikut
@Override
public void attributeRemoved(ServletRequestAttributeEvent srae) {
    System.out.println("Attribute dihapus " +  srae.getName() + " = " +  srae.getValue());
}
  • di bagian method attributeReplaced, ubah kode nya seperti berikut
@Override
public void attributeReplaced(ServletRequestAttributeEvent srae) {
    System.out.println("Attribute diganti " +  srae.getName() + " = " +  srae.getValue());
}
  • tambahkan Web Application Listener dengan nama HttpSessionListenerClass, kemudian di bagian "interface to implement" centang bagian "Http Session Listener"
  • di bagian method sessionCreated, ubah kode nya seperti berikut
@Override
public void sessionCreated(HttpSessionEvent se) {
    ServletContext ctx = se.getSession().getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "session " + se.getSession().getId() + " sudah dibuat");
    }
}
  • di bagian method sessionDestroyed, ubah kode nya seperti berikut
@Override
public void sessionDestroyed(HttpSessionEvent se) {
    ServletContext ctx = se.getSession().getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "session " + se.getSession().getId() + " sudah dihancurkan");
    }
}
  • tambahkan Web Application Listener dengan nama HttpSessionAttributeListenerClass, kemudian di bagian "interface to implement" centang bagian "Http Session Attribute Listener"
  • di bagian method attributeAdded, ubah kode nya seperti berikut
@Override
public void attributeAdded(HttpSessionBindingEvent event) {
    ServletContext ctx = event.getSession().getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "session attribute " + event.getName() + " dengan nilai : " + event.getValue()
                + " sudah ditambahkan");
    }
}
  • di bagian method attributeRemoved, ubah kode nya seperti berikut
@Override
public void attributeRemoved(HttpSessionBindingEvent event) {
    ServletContext ctx = event.getSession().getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "session attribute " + event.getName() + " dengan nilai : " + event.getValue()
                + " sudah dihapus");
    }
}
  • di bagian method attributeReplaced, ubah kode nya seperti berikut
@Override
public void attributeReplaced(HttpSessionBindingEvent event) {
    ServletContext ctx = event.getSession().getServletContext();
    if (ctx != null) {
        ctx.log("Context " + ctx.getServletContextName() + ", "
                + "session attribute " + event.getName() + " dengan nilai : " + event.getValue()
                + " sudah diubah");
    }
}
  • selanjutnya ubah web.xml dengan kode berikut

    
        bhs1
        Java
    
    
        bhs2
        C++
    
    
        bhs3
        C
    
    
        bhs4
        VB.Net
    
    
        bhs5
        JSP
    
    
        ServletContextListener
        ServletContextListenerClass
    
    
        ServletContextAttributeListener
        ServletContextAttributeListenerClass
    
    
        RequestListener
        ServletRequestListenerClass
    
    
        HttpSessionListener
        HttpSessionListenerClass
    
    
        RequestAttributeListener
        HttpSessionAttributeListenerClass
    
    
        ServletContext
        ServletContext
    
    
        ServletContextClass
        ServletContextClass
    
    
        ServletContext
        /ServletContext
    
    
        ServletContextClass
        /ServletContextClass
    
    
        
            30
        
    

No comments:

Post a Comment