Dalam file konfigurasi Servlet, Anda dapat menggunakan satu atau lebih tag <init-param> untuk mengonfigurasi beberapa parameter inisialisasi untuk servlet. Ketika servlet dikonfigurasi dengan parameter inisialisasi, wadah web akan secara otomatis merangkum parameter inisialisasi ini ke dalam objek ServletConfig saat membuat objek instance servlet, dan saat memanggil metode init servlet, objek ServletConfig akan diteruskan ke servlet. Selanjutnya, pemrogram dapat memperoleh informasi parameter inisialisasi servlet saat ini melalui objek ServletConfig.
Contoh kodenya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
paket com.yyz.servletconfig;
impor java.io.IOException;
import java.util.Enumeration;
impor javax.servlet.ServletConfig;
impor javax.servlet.ServletException;
impor javax.servlet.http.HttpServlet;
impor javax.servlet.http.HttpServletRequest;
impor javax.servlet.http.HttpServletResponse;
kelas publik ServletConfigDemo1 memperluas HttpServlet {
Konfigurasi ServletConfig;
public void doGet (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
//Dapatkan parameter inisialisasi yang ditentukan
Nilai string = config.getInitParameter("xxx");
respon.getOutputStream().write(value.getBytes());
//Dapatkan semua parameter inisialisasi
Pencacahan e = cofig.getInitParameterNames();
while(e.hasMoreElements()){
Nama string = (String) e.nextElement();
nilai = config.getInitParameter(nama);
respon.getOutputStream().write((nama+"="+nilai+"<br/>").getBytes());
}
}
public void doPost (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
doGet(permintaan,tanggapan);
}
@Mengesampingkan
public void init (konfigurasi ServletConfig) menampilkan ServletException {
ini.config = konfigurasi;
}
}
Web.xml yang sesuai adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
<?xml versi="1.0" pengkodean="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
versi="2.5">
<servlet>
<nama-servlet>ServletConfigDemo1</nama-servlet>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo1</servlet-class>
<init-param>
<nama-param>xxx</nama-param>
<param-value>yyy</param-value>
</init-param>
<init-param>
<nama-param>nama</nama-param>
<param-value>yyz</param-value>
</init-param>
<init-param>
<nama-param>kata sandi</nama-param>
<param-value>yyy</param-value>
</init-param>
</servlet>
<pemetaan-servlet>
<nama-servlet>ServletConfigDemo1</nama-servlet>
<url-pattern>/servlet/ServletConfigDemo1</url-pattern>
</pemetaan-servlet>
</aplikasi web>
Hasil tesnya adalah sebagai berikut:
Pada kode di atas, terdapat objek ServletConfig di objek ServletConfigDemo1, yang sebenarnya tidak diperlukan. Karena ServletConfigDemo1 mewarisi HttpServlet, yang selanjutnya mewarisi GenericServlet. GenericServlet sudah memelihara objek ServletConfig secara internal. Implementasi yang relevan adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
kelas abstrak publik GenericServlet
mengimplementasikan Servlet, ServletConfig, java.io.Serializable
{
… …
konfigurasi ServletConfig sementara pribadi;
ServletConfig publik getServletConfig() {
kembalikan konfigurasi;
}
}
Oleh karena itu, kita bisa langsung mendapatkan objek ServletConfig melalui metode getServletConfig() dari objek Servlet yang kita tulis.
Copy kode kodenya sebagai berikut:
paket com.yyz.servletconfig;
impor java.io.IOException;
impor java.io.PrintWriter;
impor javax.servlet.ServletException;
impor javax.servlet.http.HttpServlet;
impor javax.servlet.http.HttpServletRequest;
impor javax.servlet.http.HttpServletResponse;
kelas publik ServletConfigDemo2 memperluas HttpServlet {
public void doGet (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
Nilai string = ini.getServletConfig().getInitParameter("nama");
System.out.println(nilai);
}
public void doPost (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
doGet(permintaan, tanggapan);
}
}
berkas web.xml:
Copy kode kodenya sebagai berikut:
<?xml versi="1.0" pengkodean="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
versi="2.5">
<servlet>
<nama-servlet>ServletConfigDemo2</nama-servlet>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo2</servlet-class>
<init-param>
<nama-param>nama</nama-param>
<param-value>yyz</param-value>
</init-param>
</servlet>
<pemetaan-servlet>
<nama-servlet>ServletConfigDemo2</nama-servlet>
<url-pattern>/servlet/ServletConfigDemo2</url-pattern>
</pemetaan-servlet>
</aplikasi web>