Java_喬曉鬆_Servlet--ServletContext的總結以及應用例項
ServletContext
WEB容器在啟動時,它會為每個WEB應用程式都建立一個對應的ServletContext物件,它代表當前web應用。
ServletConfig物件中維護了ServletContext物件的引用,開發人員在編寫servlet時,可以通過ServletConfig.getServletContext方法獲得ServletContext物件。
也可以使用 this.getServletContext方法
由於一個WEB應用中的所有Servlet共享同一個ServletContext物件,因此Servlet物件之間可以通過ServletContext物件來實現通訊。多個Servlet通過ServletContext物件實現資料共享。
ServletContext物件通常也被稱之為context域物件。(request,session,page)
setAttribute(),getAttribute();
獲取WEB應用的初始化引數。
<context-param>
<param-name> data</param-name>
<param-value> xxxx</param-value>
</context-param>
實現Servlet的轉發。
RequestDispatcher rd = getServletContext().getRequestDispatcher(“/1.jsp”);
rd.forward(request,response);
如何把資料傳到 1.jsp?(可以通過request域,不能用context域)
ServletConfig和ServletContext的區別
整個Web應用只有一個ServletContext,在部署Web應用的時候,容器會建立這一個ServletContext物件,這個上下文對Web應用中的每個Servlet和JSP都可用。
Web應用中的各個Servlet都有自己的ServletConfig,它只對當前Servlet有效。
1. 寫出獲取ServletContext的兩種方式
2.使用ServletContext實現兩個Servlet資料共享
3.設定ServletContext初始化引數,然後對其之。
4. 編寫一個轉發
5.通過ServletContext讀取配置檔案的內容。(使用兩種方式)
6.通過一般的java類讀取配置檔案的內容。
//獲取ServletContext
ServletContext context1 = this.getServletConfig().getServletContext();
ServletContext context2 = this.getServletContext();
/使用ServletContext實現兩個Servlet資料共享
String value = "xiaosong";
this.getServletContext().setAttribute("namev", value);
String namevalue = (String) this.getServletContext().getAttribute("namev");
System.out.println(namevalue);
設定ServletContext初始化引數,然後對其之。
web.xml初始化程式碼:
/* <context-param>
<param-name>data</param-name>
<param-value>aaaaa</param-value>
</context-param>*/
輸出程式碼 :System.out.println(this.getServletContext().getInitParameter("data"));
//轉發
this.getServletContext().setAttribute("username","xiaosong");
RequestDispatcher rd = this.getServletContext().getRequestDispatcher("/index.jsp");
rd.forward(request, response);
//通過ServletContext讀取配置檔案的內容,方法一:
InputStream in = this.getServletContext().getResourceAsStream("WEB-INF/classes/db.properties");
Properties pro = new Properties();
pro.load(in);
String driver = pro.getProperty("driver");
String url = pro.getProperty("url");
String name = pro.getProperty("name");
String possword = pro.getProperty("possword");
System.out.println(driver+"..."+url+"..."+name+"..."+possword);
//通過ServletContext讀取配置檔案的內容,方法二:
String path = this.getServletContext().getRealPath("WEB-INF/classes/db.properties");
FileInputStream fis = new FileInputStream(path);
Properties pro1 = new Properties();
pro1.load(fis);
String driver1 = pro1.getProperty("driver");
String url1 = pro1.getProperty("url");
String name1 = pro1.getProperty("name");
String possword1 = pro1.getProperty("possword");
System.out.println(driver1+"..."+url1+"..."+name1+"..."+possword1);
//通過一般的java類讀取配置檔案的內容
InputStream in3 = Context2.class.getClassLoader().getResourceAsStream("db.properties");
Properties pro3 = new Properties();
pro3.load(in3);
String driver3 = pro3.getProperty("driver");
String url3 = pro3.getProperty("url");
String name3 = pro3.getProperty("name");
String possword3 = pro3.getProperty("possword");
System.out.println(driver3+"..."+url3+"..."+name3+"..."+possword3);
相關文章
- Java喬曉鬆-Hibernate原理與應用入門Java
- HttpModule學習總結例項應用-讀書筆記HTTP筆記
- java_隨機數(統計例項)Java隨機
- ”innerHTML“的應用例項HTML
- dd應用例項
- hive應用例項1Hive
- 智慧Web應用例項Web
- calico docker 應用例項Docker
- ORACLE外部表的應用例項Oracle
- 叢集的應用例項(zt)
- DSP應用例項(一)--輕鬆實現BT多點下載 (轉)
- 用原生 JS 實現雙向繫結及應用例項JS
- 設計用例的方法總結
- php和json的應用例項PHPJSON
- findmnt 命令的八個應用例項
- localStorage應用程式碼例項
- sqoop應用例項1OOP
- NCF的Dapr應用例項的執行
- 例項總結Oracle知識點大全Oracle
- 2 Spring鬆耦合例項Spring
- face_recognition的5個應用例項
- 大資料應用的真例項子大資料
- 基於規則的應用例項——流
- WebSocket 簡介及應用例項Web
- 機器視覺應用例項視覺
- redis應用場景及例項Redis
- python幾個應用例項Python
- opacity應用程式碼例項
- 基本複製應用例項(轉)
- 【總結】註冊碼洩露原理以及例題
- Grub安裝、配置以及使用例項彙總講解(轉)
- linux下常用iptables配置例項總結Linux
- 關於Redis資料型別以及應用場景的分析與總結Redis資料型別
- oracle利用中游標取資料庫的結果集應用例項(轉)Oracle資料庫
- 輕鬆搭建基於 Serverless 的 Go 應用(Gin、Beego 舉例)ServerGo
- asp.net和json的應用例項ASP.NETJSON
- vim的正規表示式(二)應用例項
- 再談應用程式的例項問題 (轉)