JSP 從配置文件獲取參數(shù)詳解
javax.servlet.ServletContext接口(上下文參數(shù))是針對(duì)整個(gè)項(xiàng)目的全局設(shè)置, 而javax.servlet.ServletConfig接口(初始化參數(shù))是針對(duì)當(dāng)前Servlet的設(shè)置。 兩者的設(shè)置內(nèi)容都寫(xiě)在web.xml中。在Eclipse中新建Servlet時(shí), 可以看到設(shè)置初始化參數(shù)的位置,如下圖:
而上下文參數(shù)就沒(méi)這么方便,只能通過(guò)手工編輯web.xml來(lái)添加了。 好在Eclipse提供了方便的XML編輯器, 打開(kāi)web.xml之后即可看到各個(gè)Servlet的配置情況, 右鍵單擊最頂層的“web-app”元素,選擇Add Child->context-param, 然后分別修改 param-name 和 param-value 即可。
那么在程序中如何取得這兩類參數(shù)?請(qǐng)看這幾個(gè)方法:
javax.servlet.GenericServlet.getServletConfig()
返回當(dāng)前Servlet的ServletConfig對(duì)象。
javax.servlet.ServletConfig.getServletContext()
返回當(dāng)前應(yīng)用程序的ServletContext對(duì)象。
通過(guò)這兩個(gè)方法,我們就可以獲得當(dāng)前Servlet的初始化參數(shù)對(duì)象和上下文參數(shù)對(duì)象。
ServletContext的主要方法:
String getInitParameter(String name)
獲取指定上下文參數(shù)的值。
ServletConfig的主要方法:
String getInitParameter(String name)
獲取指定初始化參數(shù)的值。
java.util.Enumeration getInitParameterNames()
獲取所有的初始化參數(shù)的名稱。
示例程序分別通過(guò)ServletContext和ServletContent讀出值并顯示出來(lái)。 因?yàn)閰?shù)值在Servlet的生命周期中是不變的,僅需讀取一次即可, 所以將取得參數(shù)的代碼寫(xiě)在了 init() 方法而不是 doGet()方法中。 其他沒(méi)什么特別需要說(shuō)明的地方,參數(shù)追加的方法參考前文即可。
示例下載:initparam_jb51net.zip
+++++++++++++++++++++++++++++++++++++==
package com.idv2.learnjsp;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class for Servlet: InitParam
*
*/
public class InitParam extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
/**
* 自動(dòng)生成的序列號(hào)
*/
private static final long serialVersionUID = 7732869603825506920L;
/**
* 程序名稱
*/
private String appName;
/**
* 頁(yè)面標(biāo)題
*/
private String title;
public void init() {
// 獲取參數(shù)
ServletConfig config = getServletConfig();
ServletContext context = config.getServletContext();
title = config.getInitParameter("title");
appName = context.getInitParameter("appname");
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body>");
out.println("Application name: " + appName);
out.println("</body>");
out.println("</html>");
}
}
相關(guān)文章
JSP使用Servlet作為控制器實(shí)現(xiàn)MVC模式實(shí)例詳解
這篇文章主要介紹了JSP使用Servlet作為控制器實(shí)現(xiàn)MVC模式的方法,以完整實(shí)例形式較為詳細(xì)的分析了MVC模式的原理及Servlet實(shí)現(xiàn)MVC模式的原理與相關(guān)注意事項(xiàng),需要的朋友可以參考下2015-09-09JSP實(shí)現(xiàn)帶查詢條件的通用分頁(yè)組件
這篇文章主要為大家詳細(xì)介紹了JSP實(shí)現(xiàn)帶查詢條件的通用分頁(yè)組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05jsp登錄會(huì)話的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇jsp登錄會(huì)話的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06JSP程序運(yùn)行原理、文檔結(jié)構(gòu)及簡(jiǎn)單輸入輸出實(shí)例分析
這篇文章主要介紹了JSP程序運(yùn)行原理、文檔結(jié)構(gòu)及簡(jiǎn)單輸入輸出,以完整實(shí)例形式較為詳細(xì)的分析了JSP程序的運(yùn)行原理、文檔結(jié)構(gòu)及簡(jiǎn)單輸入輸出詳細(xì)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09