Konfigurasi web.xml Servlet

Oleh : Reza Ervani

Rujukan : jenkov.com

بسم الله الرحمن الرحيم

Agar servlet Java dapat diakses dari browser, kita harus menyampaikan ke kontainer servlet bahwa servlet apa yang harus dibuat, dan URL apa yang akan digunakan untuk memetakan servlet. Hal ini dilakukan di dalam file web.xml di dalam aplikasi Java kita.

Mengkonfigurasi dan Memetakan Sebuah Servlet

Untuk mengkonfigurasi sebuah servlet di file web.xml kita menuliskannya seperti berikut :

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <servlet>
    <servlet-name>controlServlet</servlet-name>
    <servlet-class>com.eclipseprogramming.ControlServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>controlServlet</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>
</web-app>

Pertama kita mengkonfigurasi servlet. Hal tersebut dilakukan dengan menggunakan elemen <servlet>. Disini anda memberikan nama servlet, dan menuliskan nama class servlet tersebut.

Yang kedua, kita memetakan servlet ke sebuah URL atau pola URL. Ini dilakukan dengan elemen <servlet-mapping> . Pada contoh diatas, semua URL berakhiran .html dikirimkan ke servlet.

Kemungkinan lain pemetaan URL servlet adalah :

/myServlet

/myServlet.do

/myServlet*

Tanda * adalah wild cara, yang berarti teks apa saja. Sebagaimana yang kita lihat, kita dapat memetakan servlet ke sebuah URL tunggal, URL spesifik atau ke pola URL menggunakan wild card (*). Apa yang akan kita gunakan bergantung pada apa yang dilakukan oleh servlet tersebut.

Parameter Init Servlet

Kita dapat melewatkan parameter-paramater ke servlet dari file web.xml. Parameter-parameter init suatu servlet hanya dapat diakses oleh servlet. Berikut cara mengkonfigurasinya di file web.xml :

<servlet>
    <servlet-name>controlServlet</servlet-name>
    <servlet-class>com.eclipseprogramming.ControlServlet</servlet-class>
    <b>
    <init-param>
        <param-name>myParam</param-name>
        <param-value>paramValue</param-value>
    </init-param></b>
</servlet>

Berikut cara kita membaca parameter-parameter ini dari dalam servlet – pada metode init() servlet :

public class SimpleServlet extends GenericServlet {

  protected String myParam = null;

  public void init(ServletConfig servletConfig) throws ServletException{
    <b>this.myParam = servletConfig.getInitParameter("myParam");</b>
  }

  public void service(ServletRequest request, ServletResponse response)
        throws ServletException, IOException {

    response.getWriter().write("<html><body>myParam = " +
            this.myParam + "</body></html>");
  }
}

Sebuah metode init() servlet dipanggil saat kontainer servlet memuat servlet pertama kali. Tidak ada yang dapat mengakses servlet hingga servlet tersebut dimuat dan metode init() berhasil dipanggil.

Servlet Load-on-Startup

Elemen <servlet> memiliki subelemen yang disebut  <load-on-startup> yang dapat kita gunakan untuk mengontrol kapan kontainer servlet harus memuat servlet. Jika kita tidak menspesifikasikan elemen <load-on-startup> maka kontainer servlet akan memuat servlet pada umumnya saat request pertama kali diterima.

Dengan mengatur elemen <load-on-startup> anda dapat memberitahukan kontainer servlet sesegera setelah kontainer servlet dimulai. Ingat, metode servlet init() dipanggil saat servlet dimuat.

Berikut contoh konfigurasi <load-on-startup> :

<servlet>
    <servlet-name>controlServlet</servlet-name>
    <servlet-class>com.eclipseprogramming.webui.ControlServlet</servlet-class>
    <init-param><param-name>container.script.static</param-name>
                <param-value>/WEB-INF/container.script</param-value>
    </init-param>
    <b><load-on-startup>1</load-on-startup></b>
</servlet>

Angka didalam elemen <load-on-startup>1</load-on-startup> memberitahuakn kontainer servlet urutan pemuatan servlet. Angka yang lebih rendah akan dimuat terlebih dahulu. Jika nilai bernilai negatif, atau tidak dispesifikasikan, kontainer servlet dapat memuatnya kapan saja.

Parameter-parameter Context

Kita juga dapat mengatur beberapa parameter context yang dapat dibaca dari semua servlet yang ada pada aplikasi kita. Berikut cara mengkonfigurasi parameter context :

<context-param>
    <param-name>myParam</param-name>
    <param-value>the value</param-value>
</context-param>

Berikut cara mengakses parameter dari dalam subclass HttpServlet :

String myContextParam =
        request.getSession()
               .getServletContext()
               .getInitParameter("myParam");
About Reza Ervani 430 Articles
Adalah pendiri programming.rezaervani.com -

Be the first to comment

Leave a Reply

Your email address will not be published.


*


This site uses Akismet to reduce spam. Learn how your comment data is processed.