Servlet访问RoboHelp.zip

时间:2019-02-28 12:58:15

标签: java jsp servlets

这个问题是特定的编程问题,也许还有一些一般性建议。

特定的编程问题:

我正在编写一个非常小的应用程序,该应用程序是JSP调用Apache Tomcat 9,动态Web模块版本4.0上的Servlet。

如果用户单击JSP中的“帮助”按钮,则POST返回Java Servlet。 Servlet中的doPost方法调用showHelp方法。一切正常。

我想要showHelp(HttpsServletRequest请求,HttpsServletResponse响应)方法来打开一个包含RoboHelp生成的帮助文件的zip(AdminHelp.zip),该文件从index.htm开始。我确实将WEB-INF / help目录放在我的构建路径中。当ZipFile构造函数尝试打开AdminHelp.zip文件时,出现以下错误:

\ Web-INF \ help \ AdminHelp.zip(系统找不到指定的路径)

由于WEB-INF \ help在构建路径中,并且相邻的WEB-INF \ css和WEB-INF \ classes目录都在工作,所以看不到缺少的内容吗?

private void showHelp(HttpServletRequest request, HttpServletResponse response)
        throws IOException, URISyntaxException {

    ZipFile zipFile = null;
    InputStream stream = null;
    try {
        zipFile = new ZipFile("/WEB-INF/help/AdminHelp.zip");
        stream = zipFile.getInputStream(zipFile.getEntry("index.htm"));

        // Need code here to get help pages back to client.

        RequestDispatcher dispatcher = request.getRequestDispatcher("/ShowHelp.jsp");
        try {
        dispatcher.forward(request, response);
        } catch (ServletException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    } catch (Exception ex) {
        System.out.println(ex.getMessage());
    } finally {

        if(stream != null)
        stream.close();
        if(zipFile != null)
        zipFile.close();
    }
}

一般建议问题:

有没有更简单的方法为用户提供RoboHelp文件?我想知道仅安装以index.htm开头的RoboHelp文件和目录,然后提供链接。看来我需要Apache httpd服务器才能使其正常工作。我想知道是否将Web服务器安装在仅使用Tomcat下的Servlet提供简单Web服务的盒子上是否为时过早。

0 个答案:

没有答案