一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

ServletContext

 厶汀 2013-10-25
WEB容器在啟動(dòng)時(shí),它會(huì)為每個(gè)WEB應(yīng)用程序都創(chuàng)建一個(gè)對(duì)應(yīng)的ServletContext對(duì)象,它代表當(dāng)前web應(yīng)用。
   ServletConfig對(duì)象中維護(hù)了ServletContext對(duì)象的引用,開發(fā)人員在編寫servlet時(shí),可以通過ServletConfig.getServletContext方法獲得ServletContext對(duì)象。
  由于一個(gè)WEB應(yīng)用中的所有Servlet共享同一個(gè)ServletContext對(duì)象,因此Servlet對(duì)象之間可以通過ServletContext對(duì)象來實(shí)現(xiàn)通訊。ServletContext對(duì)象通常也被稱之為context域?qū)ο蟆?
1.多個(gè)Servlet通過ServletContext對(duì)象實(shí)現(xiàn)數(shù)據(jù)共享。
在InitServlet的Service方法中利用ServletContext對(duì)象存入需要共享的數(shù)據(jù)
/*獲取ServletContext對(duì)象*/ 
ServletContext context = this.getServletContext();  
//存入共享的數(shù)據(jù)   
context.setAttribute("name", "haha");
在其它的Servlet中利用ServletContext對(duì)象獲取共享的數(shù)據(jù)  
/*獲取ServletContext對(duì)象*/ 
ServletContext context = this.getServletContext();  
//獲取共享的數(shù)據(jù)  

String name = context.getAttribute("name");  

System.out.println("共享的內(nèi)容值是:"+name); 

2.獲取WEB應(yīng)用的初始化參數(shù)。

在web.xml文件中配置需要初始化的參數(shù)信息。

<web-app>  

<context-param>  

<param-name>url</param-name>  

<param-value>jdbc:mysql://localhost:3306/4g</param-value>  

</context-param>  

<context-param>  

<param-name>password</param-name>  

<param-value>1314qr</param-value>  

</context-param>  

<context-param>  

  <param-name>user</param-name>  

  <param-value>root</param-value>  

  </context-param>  

</web-app> 

在DemoServlet的doPost方法中測(cè)試獲取初始化參數(shù)的步驟如下:  

/*獲取ServletContext對(duì)象*/ 

ServletContext context = this.getServletContext();  

/*獲取初始化參數(shù)*/ 

//獲取指定名稱的初始化參數(shù)  

String url = context.getInitParameter("url");

//獲取web.xml文件中所有的初始化應(yīng)用參數(shù)         

Enumeration<String> enumer = context.getInitParameterNames();  

while(enumer.hasMoreElements()){  

String name = enumer.nextElement();  

String value = context.getInitParameter(name);  

System.out.println(name+"=========="+value);  

    }  

2.實(shí)現(xiàn)Servlet的轉(zhuǎn)發(fā):

在測(cè)試的Servlet中實(shí)現(xiàn)轉(zhuǎn)發(fā)的步驟如下: 

/*要利用ServletContext對(duì)象實(shí)現(xiàn)轉(zhuǎn)發(fā)獲取對(duì)象*/ 

ServletContext context = this.getServletContext();  

//在request對(duì)象中存入name屬性   

request.setAttribute("name", "haha");  

/*根據(jù)轉(zhuǎn)發(fā)的地址獲取 RequestDispatcher對(duì)象*/ 

RequestDispatcher  rd  = context.getRequestDispatcher("/index.jsp");  

//調(diào)用轉(zhuǎn)發(fā)方法 以下采用任意方法即可   

rd.forward(request, response);  

  //rd.include(request, response);  

注意:forward與include的區(qū)別

forward方法是把請(qǐng)求的內(nèi)容轉(zhuǎn)發(fā)到另外的一個(gè)servlet.而include是把另一個(gè)servlet處理過后的內(nèi)容拿過來.

(forward方法調(diào)用后在響應(yīng)中的沒有提交的內(nèi)容被自動(dòng)消除。將請(qǐng)求轉(zhuǎn)發(fā)給其他的Servlet后,由

    被調(diào)用的Servlet負(fù)責(zé)對(duì)請(qǐng)求做出響應(yīng),而原先Servlet的執(zhí)行則終止。     

   include方法使原先的Servlet和轉(zhuǎn)發(fā)到的Servlet都可以輸出響應(yīng)信息,即原先的Servlet還可以繼續(xù)輸出響應(yīng)信息)

3.利用ServletContext對(duì)象讀取資源文件。 

讀取資源文件(properties文件(屬性文件))的三種方式

配置的properties的內(nèi)容如下:  

url=jdbc\:mysql\://localhost\:3306/3g ;

user=root;

password=root; 

獲取實(shí)現(xiàn)的代碼如下:  

/*獲取ServletContext對(duì)象*/ 

ServletContext context = this.getServletContext();    

//第一種方式   

URL url = context.getResource("WEB-INF/classes/db.properties");  

InputStream is =  url.openStream();  

//第二種方式  

/*讀取db.properties文件*/ 

String path =context.getRealPath("WEB-INF/classes/db.properties");  

/*根據(jù)文件的路徑 構(gòu)建文件對(duì)象*/ 

File file = new File(path);  

/*根據(jù)file文件對(duì)象 創(chuàng)建輸入流*/ 

InputStream is = new FileInputStream(file);  

//第三種方式  

InputStream is = context.getResourceAsStream("WEB-INF/classes/db.properties ");   

以三種方式任意一種可以:   

  /*解析properties的文件*/ 

     Properties prop = new Properties();  

     //從輸入流中讀取屬性列表(鍵和元素對(duì))。  

      prop.load(is);  

      Set<String> set = prop.stringPropertyNames();  

       //遍歷set集合  

       Iterator<String> it = set.iterator();  

       while(it.hasNext()){  

           String key = it.next();  

           String value = prop.getProperty(key);  

           System.out.println(key+"-----"+value);  

              }   

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    五月的丁香婷婷综合网| 热久久这里只有精品视频| 不卡免费成人日韩精品| 99热九九热这里只有精品| 中文字幕av诱惑一区二区| 丝袜人妻夜夜爽一区二区三区| 黄色三级日本在线观看| 青青操视频在线观看国产| 精品人妻一区二区三区免费看| 国产亚洲中文日韩欧美综合网| 成年人黄片大全在线观看| 欧美亚洲91在线视频| 欧美精品一区二区三区白虎| 国产盗摄精品一区二区视频| 国产精品久久男人的天堂| 欧美一区日韩二区亚洲三区| 日韩欧美一区二区久久婷婷| 亚洲欧美日本视频一区二区| 国产老熟女超碰一区二区三区| 中文字幕五月婷婷免费 | 国产又大又硬又粗又黄| 国产精品激情在线观看| 亚洲av一区二区三区精品| 亚洲专区一区中文字幕| 夜色福利久久精品福利| 欧美日韩国产免费看黄片| 欧美大粗爽一区二区三区| 亚洲天堂有码中文字幕视频| 国产熟女一区二区三区四区| 儿媳妇的诱惑中文字幕| a久久天堂国产毛片精品| 伊人国产精选免费观看在线视频 | 欧美亚洲国产日韩一区二区| 欧美日韩中国性生活视频| 亚洲夫妻性生活免费视频| 激情五月激情婷婷丁香| 日本国产欧美精品视频| 久久国产亚洲精品成人| 日本妇女高清一区二区三区| 日韩欧美一区二区久久婷婷| 国产一区欧美午夜福利|