JavaEE中關(guān)于ServletConfig的小結(jié)
在Servlet的配置文件中,可以使用一個或多個<init-param>標簽為servlet配置一些初始化參數(shù)。當servlet配置了初始化參數(shù)后,web容器在創(chuàng)建servlet實例對象時,會自動將這些初始化參數(shù)封裝到ServletConfig對象中,并在調(diào)用servlet的init方法時,ServletConfig對象傳遞給servlet。進而,程序員通過ServletConfig對象就可以得到當前servlet的初始化參數(shù)信息。
示例代碼如下:
package com.yyz.servletconfig;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletConfigDemo1 extends HttpServlet {
ServletConfig config;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//獲取指定的初始化參數(shù)
String value = config.getInitParameter("xxx");
response.getOutputStream().write(value.getBytes());
//獲取所有的初始化參數(shù)
Enumeration e = cofig.getInitParameterNames();
while(e.hasMoreElements()){
String name = (String) e.nextElement();
value = config.getInitParameter(name);
response.getOutputStream().write((name+"="+value+"<br/>").getBytes());
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
}
相應(yīng)的web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns=" xmlns:xsi=" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee version="2.5">
<servlet>
<servlet-name>ServletConfigDemo1</servlet-name>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo1</servlet-class>
<init-param>
<param-name>xxx</param-name>
<param-value>yyy</param-value>
</init-param>
<init-param>
<param-name>name</param-name>
<param-value>yyz</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>yyy</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServletConfigDemo1</servlet-name>
<url-pattern>/servlet/ServletConfigDemo1</url-pattern>
</servlet-mapping>
</web-app>
測試結(jié)果如下:
在上面的代碼中,ServletConfigDemo1對象中有一個ServletConfig對象,其實這是不必要的。因為ServletConfigDemo1繼承了HttpServlet,HttpServlet又繼承了GenericServlet 。GenericServlet 已經(jīng)在內(nèi)部維護了一個ServletConfig對象。相關(guān)實現(xiàn)如下:
public abstract class GenericServlet
implements Servlet, ServletConfig, java.io.Serializable
{
… …
private transient ServletConfig config;
public ServletConfig getServletConfig() {
return config;
}
}
因而我們可以通過我們寫的Servlet對象的getServletConfig()方法直接拿到ServletConfig對象,示例代碼如下:
package com.yyz.servletconfig;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletConfigDemo2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String value = this.getServletConfig().getInitParameter("name");
System.out.println(value);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
web.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="
xmlns:xsi="
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
version="2.5">
<servlet>
<servlet-name>ServletConfigDemo2</servlet-name>
<servlet-class>com.yyz.servletconfig.ServletConfigDemo2</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>yyz</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServletConfigDemo2</servlet-name>
<url-pattern>/servlet/ServletConfigDemo2</url-pattern>
</servlet-mapping>
</web-app>
相關(guān)文章
Hibernate一對多關(guān)聯(lián)雙向關(guān)聯(lián)代碼實現(xiàn)分享
Hibernate一對多關(guān)聯(lián)雙向關(guān)聯(lián)代碼實現(xiàn)分享,大家參考使用吧2013-12-12JavaWeb開發(fā)基于ssm的校園服務(wù)系統(tǒng)(實例詳解)
這篇文章主要介紹了JavaWeb開發(fā)基于ssm的校園服務(wù)系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02spring boot validation參數(shù)校驗實例分析
這篇文章主要介紹了spring boot validation參數(shù)校驗,結(jié)合實例形式分析了spring boot validation進行數(shù)據(jù)有效性驗證的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11Spring Security系列教程之會話管理處理會話過期問題
會話過期,是指當用戶登錄網(wǎng)站后,較長一段時間沒有與服務(wù)器進行交互,將會導(dǎo)致服務(wù)器上的用戶會話數(shù)據(jù)(即session)被銷毀。這篇文章主要介紹了Spring Security系列教程之會話管理處理會話過期問題,需要的朋友可以參考下2021-10-10SpringBoot使用郵箱發(fā)送驗證碼實現(xiàn)注冊功能
這篇文章主要為大家詳細介紹了SpringBoot使用郵箱發(fā)送驗證碼實現(xiàn)注冊功能實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02