欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?ServletContext與ServletConfig接口使用教程

 更新時(shí)間:2022年09月28日 09:17:29   作者:搗蛋孩學(xué)編程  
ServletConfig對象,叫Servlet配置對象。主要用于加載配置文件的初始化參數(shù)。我們知道一個(gè)Web應(yīng)用里面可以有多個(gè)servlet,如果現(xiàn)在有一份數(shù)據(jù)需要傳給所有的servlet使用,那么我們就可以使用ServletContext對象了

ServletContext接口

1.概念

當(dāng)Servlet容器啟動(dòng)時(shí),會為每個(gè)Web應(yīng)用創(chuàng)建一個(gè)唯一的ServletContext對象代表當(dāng)前Web應(yīng)用,可以和程序的容器(服務(wù)器)來通信。

兩種獲取方式:

通過request對象獲取

ServletContext context = request.getServletContext();

通過HttpServlet獲取

ServletContext context = this.getServletContext();

2.功能

1、獲取Web應(yīng)用程序的初始化參數(shù)

定義了getInitParameterNames()和getInitParameter(String name)方法分別用來獲取參數(shù)名和參數(shù)值。

     package cn.itcast.chapter04.servlet;
     import java.io.*;
     import java.util.*;
     import javax.servlet.*;
     import javax.servlet.http.*;
     public class TestServlet03 extends HttpServlet {
         public void doGet(HttpServletRequest request, 
                          HttpServletResponse response)
                 throws ServletException, IOException {
               response.setContentType("text/html;charset=utf-8");
               PrintWriter out = response.getWriter();
               // 得到ServletContext對象
              ServletContext context = this.getServletContext();
              // 得到包含所有初始化參數(shù)名的Enumeration對象
              Enumeration<String> paramNames = 
     context.getInitParameterNames();
               // 遍歷所有的初始化參數(shù)名,得到相應(yīng)的參數(shù)值,打印到控制臺
              out.println("all the paramName and paramValue are 
                         following:");
               // 遍歷所有的初始化參數(shù)名,得到相應(yīng)的參數(shù)值并打印
              while (paramNames.hasMoreElements()) {
                 String name = paramNames.nextElement();
                 String value = context.getInitParameter(name);
                 out.println(name + ": " + value);
                   out.println("<br>");
              }
         }
         public void doPost(HttpServletRequest request, 
                           HttpServletResponse response)
                 throws ServletException, IOException {
               this.doGet(request, response);
         }
     }

2、實(shí)現(xiàn)多個(gè)Servlet對象共享數(shù)據(jù)

由于一個(gè)Web應(yīng)用中的所有Servlet共享同一個(gè)ServletContext對象,因此ServletContext對象的域?qū)傩钥梢员辉揥eb應(yīng)用中的所有Servlet訪問。在ServletContext接口中定義了分別用于增加、刪除、設(shè)置ServletContext域?qū)傩缘乃膫€(gè)方法,如表1所示。

表1 ServletContext接口的方法

方法說明功能描述
Enumeration getAttributeNames()返回一個(gè)Enumeration對象,該對象包含了所有存放在ServletContext中的所有域?qū)傩悦?/td>
Object getAttibute(String name)根據(jù)參數(shù)指定的屬性名返回一個(gè)與之匹配的域?qū)傩灾?/td>
void removeAttribute(String name)根據(jù)參數(shù)指定的域?qū)傩悦?,從ServletContext中刪除匹配的域?qū)傩?/td>
void setAttribute(String name,Object obj)設(shè)置ServletContext的域?qū)傩?,其中name是域?qū)傩悦琽bj是域?qū)傩灾?/td>
          ServletContext context = this.getServletContext();
            // 通過setAttribute()方法設(shè)置屬性值
           context.setAttribute("data", "this servlet save data");

3、讀取Web應(yīng)用下的資源文件

ServletContext接口中用于獲取資源路徑的相關(guān)方法,具體如下:

表2 ServletContext接口的常用方法

方法說明功能描述
Set getResourcePaths(String path)返回一個(gè)Set集合,集合中包含資源目錄中子目錄和文件的路徑名稱。參數(shù)path必須以正斜線(/)開始,指定匹配資源的部分路徑
String getRealPath(String path)返回資源文件在服務(wù)器文件系統(tǒng)上的真實(shí)路徑(文件的絕對路徑)。參數(shù)path代表資源文件的虛擬路徑,它應(yīng)該以正斜線開始(/)開始,“/”表示當(dāng)前Web應(yīng)用的根目錄,如果Servlet容器不能將虛擬路徑轉(zhuǎn)換為文件系統(tǒng)的真實(shí)路徑,則返回null
URL getResource(String path)返回映射到某個(gè)資源文件的URL對象。參數(shù)path必須以正斜線(/)開始,“/”表示當(dāng)前Web應(yīng)用的根目錄
InputStream getResourceAsStream(String path)返回映射到某個(gè)資源文件的InputStream輸入流對象。參數(shù)path傳遞規(guī)則和getResource()方法完全一致

編寫讀取itcast.properties資源文件:

     package cn.itcast.chapter04.servlet;
     import java.io.*;
     import java.util.Properties;
     import javax.servlet.*;
     import javax.servlet.http.*;
     public class TestServlet06 extends HttpServlet {
         public void doGet(HttpServletRequest request, 
                          HttpServletResponse response)
                 throws ServletException, IOException {
              response.setContentType("text/html;charset=utf-8");
             ServletContext context = this.getServletContext();
             PrintWriter out = response.getWriter();
             InputStream in = context
             .getResourceAsStream("/WEB-
                                 INF/classes/itcast.properties");
             Properties pros = new Properties();
             pros.load(in);
             out.println("Company=" + pros.getProperty("Company") + "
                      <br>");
             out.println("Address=" + pros.getProperty("Address") + "
                      <br>");    
     }
         public void doPost(HttpServletRequest request, 
                           HttpServletResponse response)
                 throws ServletException, IOException {
             this.doGet(request, response);
         }
     }

ServletConfig接口

1.概念

Tomcat初始化一個(gè)Servlet時(shí),會將該Servlet的配置信息封裝到一個(gè)ServletConfig對象中,通過調(diào)用init(ServletConfig cofig)方法將ServletConfig對象傳遞給Servlet。

2.ServletConfig的常用方法

表1 ServletConfig接口的常用方法

方法說明功能描述
String getInitParameter(String name)根據(jù)初始化參數(shù)名返回對應(yīng)的初始化參數(shù)值
Enumeration getInitParameterNames()返回一個(gè)Enumeration對象,其中包含了所有的初始化參數(shù)名
ServletContext getServletContext()返回一個(gè)代表當(dāng)前Web應(yīng)用的ServletContext對象
String getServletName()返回Servlet的名字,即web.xml中<servlet-name>元素的值
     package cn.itcast.chapter04.servlet;
     import java.io.*;
     import javax.servlet.*;
     import javax.servlet.http.*;
     public class TestServlet02 extends HttpServlet {
         protected void doGet(HttpServletRequest request,
                 HttpServletResponse response) throws ServletException, 
     IOException {
             PrintWriter out = response.getWriter();
              // 獲得ServletConfig對象
             ServletConfig config = this.getServletConfig();
             // 獲得參數(shù)名為encoding對應(yīng)的參數(shù)值
             String param = config.getInitParameter("encoding");
              out.println("encoding="+param);
         }
         protected void doPost(HttpServletRequest request,
                 HttpServletResponse response) throws ServletException, 
     IOException {
             this.doGet(request, response);
         }
     }

到此這篇關(guān)于Java ServletContext與ServletConfig接口使用教程的文章就介紹到這了,更多相關(guān)Java ServletContext與ServletConfig內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論