ในไฟล์คอนฟิกูเรชันของเซิร์ฟเล็ต คุณสามารถใช้แท็ก <init-param> หนึ่งแท็กขึ้นไปเพื่อกำหนดค่าพารามิเตอร์การกำหนดค่าเริ่มต้นบางอย่างสำหรับเซิร์ฟเล็ต เมื่อกำหนดค่าเซิร์ฟเล็ตด้วยพารามิเตอร์การเริ่มต้น เว็บคอนเทนเนอร์จะห่อหุ้มพารามิเตอร์การเริ่มต้นเหล่านี้ไว้ในออบเจ็กต์ ServletConfig โดยอัตโนมัติเมื่อสร้างออบเจ็กต์อินสแตนซ์เซิร์ฟเล็ต และเมื่อเรียกใช้เมธอด init ของเซิร์ฟเล็ต ออบเจ็กต์ ServletConfig จะถูกส่งไปยังเซิร์ฟเล็ต นอกจากนี้ โปรแกรมเมอร์สามารถรับข้อมูลพารามิเตอร์การเริ่มต้นของเซิร์ฟเล็ตปัจจุบันผ่านอ็อบเจ็กต์ ServletConfig
รหัสตัวอย่างจะเป็นดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
แพ็คเกจ com.yyz.servletconfig;
นำเข้า java.io.IOException;
นำเข้า java.util.Enumeration;
นำเข้า javax.servlet.ServletConfig;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServlet;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
ServletConfigDemo1 ระดับสาธารณะขยาย HttpServlet {
การกำหนดค่า ServletConfig;
โมฆะสาธารณะ doGet (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
// รับพารามิเตอร์เริ่มต้นที่ระบุ
ค่าสตริง = config.getInitParameter("xxx");
response.getOutputStream().write(value.getBytes());
// รับพารามิเตอร์เริ่มต้นทั้งหมด
การแจงนับ e = cofig.getInitParameterNames();
ในขณะที่(e.hasMoreElements()){
ชื่อสตริง = (สตริง) e.nextElement();
ค่า = config.getInitParameter (ชื่อ);
response.getOutputStream().write((ชื่อ+"="+value+"<br/>").getBytes());
-
-
โมฆะสาธารณะ doPost (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
doGet(ร้องขอ, ตอบกลับ);
-
@แทนที่
โมฆะสาธารณะ init (การกำหนดค่า ServletConfig) พ่น ServletException {
this.config = กำหนดค่า;
-
-
web.xml ที่เกี่ยวข้องจะเป็นดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
<?xml version="1.0" encoding="UTF-8"?>
<เว็บแอป 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"
รุ่น = "2.5">
<เซิร์ฟเล็ต>
<servlet-name>ServletConfigDemo1</servlet-name>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo1</servlet-คลาส>
<init-พารามิเตอร์>
<param-name>xxx</param-name>
<param-value>yyy</param-value>
</init-พารามิเตอร์>
<init-พารามิเตอร์>
<ชื่อพารามิเตอร์>ชื่อ</ชื่อพารามิเตอร์>
<param-value>yyz</param-value>
</init-พารามิเตอร์>
<init-พารามิเตอร์>
<param-name>รหัสผ่าน</param-name>
<param-value>yyy</param-value>
</init-พารามิเตอร์>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>ServletConfigDemo1</servlet-name>
<url-pattern>/servlet/ServletConfigDemo1</url-pattern>
</การแมปเซิร์ฟเล็ต>
</เว็บแอป>
ผลการทดสอบมีดังนี้:
ในโค้ดข้างต้น มีวัตถุ ServletConfig ในวัตถุ ServletConfigDemo1 ซึ่งไม่จำเป็นจริงๆ เนื่องจาก ServletConfigDemo1 สืบทอด HttpServlet ซึ่งจะสืบทอด GenericServlet ในทางกลับกัน GenericServlet รักษาวัตถุ ServletConfig ไว้ภายในแล้ว การใช้งานที่เกี่ยวข้องมีดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
GenericServlet คลาสนามธรรมสาธารณะ
ใช้ Servlet, ServletConfig, java.io.Serializable
-
-
การกำหนดค่า ServletConfig ชั่วคราวส่วนตัว
สาธารณะ ServletConfig getServletConfig() {
ส่งคืนการกำหนดค่า;
-
-
ดังนั้นเราจึงสามารถรับอ็อบเจ็กต์ ServletConfig ได้โดยตรงผ่านเมธอด getServletConfig() ของอ็อบเจ็กต์ Servlet ที่เราเขียน โค้ดตัวอย่างจะเป็นดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
แพ็คเกจ com.yyz.servletconfig;
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServlet;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
ServletConfigDemo2 ระดับสาธารณะขยาย HttpServlet {
โมฆะสาธารณะ doGet (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
ค่าสตริง = this.getServletConfig().getInitParameter("name");
System.out.println (ค่า);
-
โมฆะสาธารณะ doPost (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
doGet (คำขอ, การตอบสนอง);
-
-
ไฟล์ web.xml:
คัดลอกรหัสรหัสดังต่อไปนี้:
<?xml version="1.0" encoding="UTF-8"?>
<เว็บแอป 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"
รุ่น = "2.5">
<เซิร์ฟเล็ต>
<servlet-name>ServletConfigDemo2</servlet-name>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo2</servlet-class>
<init-พารามิเตอร์>
<ชื่อพารามิเตอร์>ชื่อ</ชื่อพารามิเตอร์>
<param-value>yyz</param-value>
</init-พารามิเตอร์>
</เซิร์ฟเล็ต>
<การแมปเซิร์ฟเล็ต>
<servlet-name>ServletConfigDemo2</servlet-name>
<url-pattern>/servlet/ServletConfigDemo2</url-pattern>
</การแมปเซิร์ฟเล็ต>
</เว็บแอป>