package yoonforh.dir; /** * DirServletSSI.java * Copyright (c) 1998 Yoon Kyung Koo. All rights reserved. * * contact via yoonforh@moon.daewoo.co.kr * * first release date 1998/08/22 * @version 1.1 1998/09/28 * @author Yoon Kyung Koo */ import java.io.*; import java.util.*; import java.net.*; import java.text.*; import javax.servlet.*; import javax.servlet.http.*; // import sun.security.x509.*; /** * DirServletSSI class */ public class DirServletSSI extends HttpServlet { public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //value chosen to limit denial of service if (req.getContentLength() > 8*1024) { res.setContentType("text/html"); ServletOutputStream out = res.getOutputStream(); out.println("
Invalid path
"); return; } listFiles(out, file, urlBase, path, recursive); } private void listFiles(ServletOutputStream out, File file, String baseURL, String path, boolean recursive) throws IOException { String[] files=file.list(); // first list up files and then directories out.println("
"); out.print(" | "); out.println(""+convertToASCII(files[i])+" | "); out.print(""); out.println(String.valueOf(newFile.length())+convertToASCII(" ¹ÙÀÌÆ®")+" | "); out.print(""); out.println(convertToASCII(DateFormat.getDateTimeInstance().format(new Date(newFile.lastModified())))+" | "); out.println(""); } else continue; } out.println("
"); out.println(""); out.println(""+convertToASCII(files[i])+""); } } else continue; } } /** * convertToASCII() * this method converts Cp949 encoded character to ISO8859_1 encoded * @param String string to converted * @return String converted string */ public String convertToASCII(String str) { try { byte[] kscBytes=str.getBytes("Cp949"); str=new String(kscBytes, "8859_1"); } catch (java.io.UnsupportedEncodingException e) { System.err.println(e.toString()); } return str; } public String getServletInfo() { return "A servlet that displays directory contents"; } }