一】重點方法: 1》存取對象 void setAttribute(String name, Object object);//將object存入ServletContext對象中,并取名為name(方便取出,與Map類似) Object getAttribute(String name);//獲取name對應的對象 2》解析web.xml中<context-param>標簽 String getInitParameter(String name);//獲取name標簽對應的標簽值 Enumeration getInitParameterNames();//獲取所有的標簽名,可以用于遍歷標簽值 3》請求轉發器(用于轉發網頁) RequestDispatcher getRequestDispatcher(String path);//獲取指向特定資源的一個轉發器 void forward(ServletRequest request, ServletResponse response);//調用轉發器指向的資源,并進行轉發 二】總結: 1)在web應用中,由服務器創建的唯一的一個對象是ServletContext 2)ServletContext對象在每個Servlet對象中取得的都是相同的 3)ServletContext對象有存取方法: void setAttribute(String name, Object object);//將object存入ServletContext對象中,并取名為name(方便取出,與Map類似) Object getAttribute(String name);//獲取name對應的對象 二、ServletContext對象有如下應用: 一】多個Servlet對象可以通過ServletContext對象共享數據 1》第一個Servlet對象:設置值 //取得客戶端的請求參數 String username = request.getParameter("username"); //取得這個工程的唯一一個ServletContext對象 ServletContext sc = this.getServletContext(); //將信息存入ServletContext對象 sc.setAttribute("USERNAME", username); 2》第二個Servlet對象:取出值 //取得唯一一個ServletContext對象 ServletContext context = this.getServletContext(); //獲取ServletContext對象內容 String username = (String) context.getAttribute("USERNAME"); response.getOutputStream().write(("用戶名="+username).getBytes()); 二】在web引用中,可以取得web應用的初始化參數 1》web.xml部分 <context-param> <param-name>郵箱</param-name> <param-value>434507250</param-value> </context-param> <context-param> <param-name>電話號碼</param-name> <param-value>18381330428</param-value> </context-param> 2》Servlet對象部分 ServletContext context = this.getServletContext(); String email = context.getInitParameter("郵箱"); String tel = context.getInitParameter("電話號碼"); if(email!=null && tel!=null ){ response.setContentType("text/html;charset=utf-8"); response.getWriter().write("郵箱:" +email + "<br />"); response.getWriter().write("電話號碼" + tel + "<br />"); } 三】ServletContext能夠實現轉發功能,即307+location。 步驟: 1》獲取一個ServletContext對象 2》獲取一個定位到指定資源的轉發器 3》利用轉發器進行調度,并進行轉發 code: // 1,獲取指向fail.html的定位器 RequestDispatcher rd = context.getRequestDispatcher("/success.html"); // 2,利用此定位器進行轉發 rd.forward(request, response); 四】利用ServletContext對象讀取資源文件--默認目錄為:工程(應用)路徑 重點方法: InputStream getResourceAsStream("文件路徑"); code: ServletContext context = this.getServletContext(); InputStream is = context.getResourceAsStream("/doc/config.
新聞熱點
疑難解答