这个问题是特定的编程问题,也许还有一些一般性建议。
特定的编程问题:
我正在编写一个非常小的应用程序,该应用程序是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服务的盒子上是否为时过早。