📄 dispatchservlet.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/DispatchServlet.java,v $// $Revision: 1.2.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 javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bbn.openmap.io.FormatException;import com.bbn.openmap.layer.vpf.DcwRecordFile;/** * This class infers the format of a VPF file from the name of the * file, and dispatches to the appropriate servlet for that type. * * This could probably also be handled by a long set of * servlet-mapping tags in the deployment descriptor. (web.xml) */public class DispatchServlet extends VPFHttpServlet { public static final String RECORD_FILE_OBJ = "com.bbn.openmap.vpf_tools.table_obj"; public static final String ROOTPATH_FILENAME = "com.bbn.openmap.vpf_tools.url_path"; /** * A do-nothing constructor - init does all the work. */ public DispatchServlet() { super(); } /** * Just a test main to parse vpf datafiles * * param args files to parse, plus other command line flags */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String pathInfo = setPathInfo(request); String rootpath = contextInfo.resolvePath(pathInfo); if (!pathOkay(rootpath, pathInfo, response)) { return; } PrintWriter out = response.getWriter(); File rp = new File(rootpath); String filename = rp.getName().toLowerCase(); String end = "</BODY></HTML>\r\n"; // ByteArrayOutputStream bos = new ByteArrayOutputStream(); // PrintStream s = new PrintStream(bos); // System.setOut(s); request.setAttribute(ROOTPATH_FILENAME, rootpath); try { if (rp.isDirectory()) { RequestDispatcher rd = request.getRequestDispatcher("/DirectoryList"); rd.forward(request, response); return; } else if (filename.endsWith("x") || filename.endsWith("x.")) { response.setContentType("text/html"); out.println(HTML_DOCTYPE + "<HTML><HEAD><TITLE>" + filename + "</TITLE></HEAD>\r\n<BODY>\r\n<H1>Table " + filename + "</H1>\r\n"); out.println(getStylesheetHTML(request)); out.println("Skipping VLI format - this format is simply an index to find rows in a corresponding table file, it isn't very interesting to look at so its getting skipped."); } else if (filename.endsWith("ti")) { RequestDispatcher rd = request.getRequestDispatcher("/Thematic"); rd.forward(request, response); } else if (filename.endsWith("si") || filename.endsWith("si.")) { RequestDispatcher rd = request.getRequestDispatcher("/SpatialIndex"); rd.forward(request, response); } else if (filename.endsWith(".doc")) { RequestDispatcher rd = request.getRequestDispatcher("/DocFile"); rd.forward(request, response); } else { response.setContentType("text/html"); out.println(HTML_DOCTYPE + "<HTML>\n<HEAD><TITLE>" + filename + "</TITLE></HEAD>\r\n<BODY>\r\n<H1>Table " + filename + "</H1>\r\n"); out.println(getStylesheetHTML(request)); DcwRecordFile foo = new DcwRecordFile(rootpath); request.setAttribute(RECORD_FILE_OBJ, foo); RequestDispatcher rd = request.getRequestDispatcher("/Schema"); rd.include(request, response); RequestDispatcher rd2 = request.getRequestDispatcher("/Data"); rd2.include(request, response); foo.close(); } } catch (FormatException f) { throw new ServletException("Format Error: ", f); } // s.close(); out.println("<pre>"); out.println("Context Path: " + request.getContextPath()); out.println("PathInfo: " + request.getPathInfo()); out.println("ServletPath: " + request.getServletPath()); out.println("Query String: " + request.getQueryString()); // out.print(bos.toString()); out.println("</pre>" + end); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -