// the servlet will open it's own web.xml file
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.util.Properties;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ReadFile extends HttpServlet
{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType( "text/html" ); // MIME type
PrintWriter servletresponse = response.getWriter();
outputXHTMLHeader( "Read File Example", servletresponse );
servletresponse.println("<body>");
String contextPath = request.getContextPath();
String servletName = getServletName();
String submitTarget = contextPath + "/" + servletName;
servletresponse.println( "request.getContextPath() / getServletNamesubmitTarget = " + submitTarget + "<br />");
ServletContext myServletContext = getServletContext() ;
Properties currentSystemProperties = System.getProperties();
String fileseperatorsymbol = currentSystemProperties.getProperty( "file.separator" );
String realpath = myServletContext.getRealPath( fileseperatorsymbol );
String webInfDirectory = realpath + "WEB-INF/";
servletresponse.println( "realpath + WEB-INF/ = " + webInfDirectory + "<br />" );
displayFileContents( webInfDirectory , "web.xml" , servletresponse );
servletresponse.println( "</body></html>" );
servletresponse.close();
} //end doGet()
private static void displayFileContents( String path , String filename , PrintWriter servletresponse )
{
servletresponse.println( "opening " + path + filename );
try{
FileReader myFileReader = new FileReader( path + filename );
BufferedReader myBufferedReader = new BufferedReader( myFileReader );
String inputfilename_contents = "";
servletresponse.println( "<pre>" );
while ( ( inputfilename_contents = myBufferedReader.readLine() ) != null)
{
String result = inputfilename_contents.replaceAll("<", "<" );
servletresponse.println( result );
}
servletresponse.println( "</pre>" );
myFileReader.close(); // only have to close the outermost wrapper
}
catch( IOException e )
{
e.printStackTrace();
servletresponse.println( "error reading " + filename + " from " + path );
}
} // end displayFileContents
private static void outputXHTMLHeader( String title , PrintWriter servletresponse )
{
servletresponse.println( "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">");
servletresponse.println( "<html xmlns=\"http://www.w3.org/1999/xhtml\">" );
servletresponse.println( "<head><title>" + title + "</title>" );
servletresponse.println( "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />" );
servletresponse.println( "</head>" );
} //end outputXHTMLHeader
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doGet( request, response);
}
} //end class