This example show you how to read a text file in a servlet. Using the ServletContext.getResourceAsStream()
method will enable you to read a file whether the web application is deployed in an exploded format or in a war file archive.
The following servlet read the configuration.properties
file from the /WEB-INF
directory in our web application. The configuration.properties
file is just a regular text file with the following contents.
app.appname=Servlet Examples
app.version=1.0
app.copyright=2021
Here is our ReadTextFileServlet
servlet class.
package org.kodejava.servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
@WebServlet(name = "ReadTextFileServlet", urlPatterns = "/read-text-file")
public class ReadTextFileServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
// We are going to read a file called configuration.properties. This
// file is placed under the WEB-INF directory.
String filename = "/WEB-INF/configuration.properties";
ServletContext context = getServletContext();
// First get the file InputStream using ServletContext.getResourceAsStream()
// method.
InputStream is = context.getResourceAsStream(filename);
if (is != null) {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader reader = new BufferedReader(isr);
PrintWriter writer = response.getWriter();
String text;
// We read the file line by line and later will be displayed on the
// browser page.
while ((text = reader.readLine()) != null) {
writer.println(text + "</br>");
}
}
}
}
To access the servlet you can type http://localhost:8080/read-text-file in your browser URL address bar.
Maven dependencies
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>