本示例说明如何在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地址栏中输入。