2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

Servlet如何讀取Web資源文件?【操作演示】

更新時間:2022-04-12 來源:黑馬程序員 瀏覽量:

IT培訓班

在實際開發中,有時候可能會需要讀取Web應用中的一些資源文件,比如配置文件,圖片等。為此,在ServletContext接口中定義了一些讀取Web資源的方法,這些方法是依靠Servlet容器來實現的。Servlet容器根據資源文件相對于Web應用的路徑,返回關聯資源文件的IO流、資源文件在文件系統的絕對路徑等。表3-5中列舉了ServletContext接口中用于獲取資源路徑的相關方法,具體如下:

ServletContext接口的常用方法
ServletContext接口的常用方法

了解了ServletContext接口中用于獲得Web資源路徑的方法后,接下來通過一個案例,分步驟演示如何使用ServletContext對象讀取資源文件,具體如下:

(1)創建一個資源文件。在chapter03項目中右擊src目錄,選擇【New】—>【Other】選項,進入創建文件的界面,如圖3-40所示。

創建文件

新建文件的界面單擊圖3-40所示的【Next】按鈕,進入填寫文件名稱的界面,如下圖所示。

填寫文件名稱

填寫文件名稱的界面在上圖中,【File name】文本框中的內容為資源文件的名稱,在此,將創建的資源文件命名為itcast.properties,并且選擇存放的目錄為src目錄。單擊【Finish】按鈕,完成配置文件的創建。在創建好的itcast.properties文件中,輸入如下所示的配置信息:

Company = itcast
Address= Beijing

需要注意的是,Eclipse中src目錄下創建的資源文件在Tomcat服務器啟動時會被復制到項目的WEB-INF/classes目錄下,如下圖所示。

WEB-INF/classes目錄

(2)編寫讀取itcast.properties資源文件的Servlet。在cn.itcast.servlet包中創建一個名稱為TestServlet06的Servlet類,該類的實現代碼如文件3-9所示。

文件TestServlet06.java

package cn.itcast.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);
    }
}

在文件3-9中,使用ServletContext的getResourceAsStream(String path)方法獲得了關聯itcast.properties資源文件的輸入流對象,其中的path參數必須以正斜線“/”開始,表示itcast.properties文件相對于Web應用的相對路徑。

(3) 啟 動Tomcat服 務 器 , 在 瀏 覽 器 的 地 址 欄 中 輸 入地址“http://localhost:8080/chapter03/TestServlet06”訪問TestServlet06,瀏覽器的顯示結果如圖3-43所示。

啟 動Tomcat服 務 器

運行結果從圖3-43中可以看出,itcast.properties資源文件的內容被讀取出來。由此可見,使用ServletContext可以讀取到Web應用中的資源文件。

(4)有的時候,開發者需要獲取的是資源的絕對路徑。接下來,對文件3-9TestServlet06.java進行修改,通過使用getRealPath(String path)方法獲取資源文件的絕對路徑,修改后的代碼如文件3-10所示。

文件3-10TestServlet06.java

package cn.itcast.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 {
        PrintWriter out = response.getWriter();
        ServletContext context = this.getServletContext();
        //獲取文件絕對路徑
        String path = context
                    .getRealPath("/WEB-INF/classes/itcast.properties");
        FileInputStream in = new FileInputStream(path);
        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);
    }
}

在文件3-10中,使用ContextServlet對象的getRealPath(String path)方法獲得itcast.properties資源文件的絕對路徑path,然后使用這個路徑創建關聯itcast.properties文件的輸入流對象。

(5)啟動Tomcat服務器,在瀏覽器的地址欄中再次輸入地址“http://localhost:8080/chapter03/TestServlet06”訪問TestServlet06,同樣可以看到圖3-43所顯示的內容。



猜你喜歡:

Servlet是用來做什么的?Servlet技術的特點

servlet事件監聽器工作步驟介紹

ServletFileUpload類方法有哪些?

Java培訓之ServletContext的介紹與獲取

黑馬程序員Java高級軟件工程師培訓

分享到:
在線咨詢 我要報名
和我們在線交談!