Java如何在Servlet中读取文本文件?
本示例说明如何在servlet中读取文本文件。使用该ServletContext.getResourceAsStream()方法将使您能够以爆炸格式或战争文件存档部署Web应用程序来读取文件。
以下servletconfiguration.properties从/WEB-INF我们的Web应用程序中的目录中读取文件。该configuration.properties文件只是具有以下内容的常规文本文件。
app.appname=Servlet Examples app.version=1.0 app.copyright=2007
这是我们的ReadTextFileServletservlet类。
package org.nhooo.example.servlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; public class ReadTextFileServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); //我们将读取一个名为configuration.properties的文件。这个 //文件放置在WEB-INF目录下。 String filename = "/WEB-INF/configuration.properties"; ServletContext context = getServletContext(); //首先使用ServletContext.getResourceAsStream()获得文件InputStream。 //方法。 InputStream is = context.getResourceAsStream(filename); if (is != null) { InputStreamReader isr = new InputStreamReader(is); BufferedReader reader = new BufferedReader(isr); PrintWriter writer = response.getWriter(); String text; //我们逐行读取文件,稍后将显示在 //浏览器页面。 while ((text = reader.readLine()) != null) { writer.println(text + "</br>"); } } } }
创建servlet类后,我们需要注册servlet并在web.xml文件中创建servlet映射。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Servlet Examples</display-name> <servlet> <servlet-name>ReadTextFileServlet</servlet-name> <servlet-class>org.nhooo.example.servlet.ReadTextFileServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ReadTextFileServlet</servlet-name> <url-pattern>/readTextFileServlet</url-pattern> </servlet-mapping> </web-app>
要访问servlet,可以http://localhost:8080/readTextFileServlet在浏览器URL地址栏中输入。