📄 directoryservlet.java
字号:
// **********************************************************************// <copyright>// BBN Technologies// 10 Moulton Street// Cambridge, MA 02138// (617) 873-8000// // Copyright (C) BBNT Solutions LLC. All rights reserved.// </copyright>// **********************************************************************// $Source: /cvs/distapps/openmap/src/vpfservlet/WEB-INF/src/com/bbn/openmap/vpfservlet/DirectoryServlet.java,v $// $Revision: 1.3.2.2 $ $Date: 2005/08/11 21:03:10 $ $Author: dietrick $// **********************************************************************package com.bbn.openmap.vpfservlet;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bbn.openmap.layer.util.html.HtmlListElement;/** * This servlet lists the files in a directory of a configured VPF * database. Directory listing can be disabled, see the * listDirectories servlet parameter in the deployment descriptor. * (web.xml) */public class DirectoryServlet extends VPFHttpServlet { /** * A do-nothing constructor - init does all the work. */ public DirectoryServlet() { super(); } /** * false if this servlet should generate a "disabled by * administrator" method rather than a directory list. */ private boolean listFiles; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String filePath = (String) request.getAttribute(DispatchServlet.ROOTPATH_FILENAME); if (filePath == null) { String path = setPathInfo(request); filePath = contextInfo.resolvePath(path); if (!pathOkay(filePath, path, response)) { return; } } File fp = new File(filePath); String pathInfo = getPathInfo(request); PrintWriter out = response.getWriter(); String filename = fp.getName().toLowerCase(); // This was never used!!! String end = "</BODY></HTML>"; response.setContentType("text/html"); out.println(HTML_DOCTYPE + "<HTML>\n<HEAD><TITLE>" + filename + "</TITLE></HEAD>\r\n<BODY>\r\n<H1>Directory " + filename + "</H1>\r\n"); out.println(getStylesheetHTML(request)); if (!listFiles) { out.println("Directory listing disabled by administrator."); } else if (!fp.isDirectory()) { out.println("Requested path is not a directory."); } else { out.println(""); File files[] = fp.listFiles(); ArrayList filenames = new ArrayList(); ArrayList directories = new ArrayList(); for (int i = 0; i < files.length; i++) { String name = files[i].getName(); if (files[i].isDirectory()) { directories.add(name); } else { filenames.add(name); } } Collections.sort(directories); Collections.sort(filenames); if (!pathInfo.endsWith("/")) { pathInfo += '/'; } HtmlListElement filelist = new HtmlListElement("Sub-Directories"); for (Iterator dir = directories.iterator(); dir.hasNext();) { String url = fileURL(request, response, pathInfo, (String) dir.next()); filelist.addElement(url); } filelist.generate(out); filelist = new HtmlListElement("Files"); for (Iterator file = filenames.iterator(); file.hasNext();) { String url = fileURL(request, response, pathInfo, (String) file.next()); filelist.addElement(url); } filelist.generate(out); } out.println(end); } public void init(ServletConfig config) throws ServletException { super.init(config); listFiles = Boolean.valueOf(config.getInitParameter("listDirectories")) .booleanValue(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -