8

我正在尝试使用 FOP 生成 PDF 文档。pdf 生成代码保存在 servlet 中,而 xsl 位于 WebContent 文件夹中的特定文件夹中。

如何通过提供相对路径来访问此 xsl 文件?仅当我在 File 对象中提供完整路径时,它才有效。

我需要动态生成 xml 内容。如何将此动态生成的 xml 作为源而不是 File 对象?

请提供您的建议。

4

3 回答 3

19

要获得路径,您可以这样做:

String path = s.getServletContext().getRealPath("/WEB-INF/somedir/hdfeeh");         

s是实现的类。如果它是您的 servlet 类,HTTPServlet您也可以使用。this.getServletContext()

然后将其作为参数传递。

至于使用动态生成的 XML,您使用的库应该支持使用输入流,编写您的 XML,将其转换为字节数组,然后将其包装在 a 中ByteArrayInputStream并使用它。

于 2009-09-25T19:13:49.007 回答
6

对于直接且独立的容器实现,您可以在 servlet 中使用以下方法 getResource() 访问资源:

/启动小服务程序/

public InputStream getResource(String resourcePath) {
  ServletContext servletContext = getServletContext();
  InputStream openStream = servletContext.getResourceAsStream( resourcePath );
  return openStream;
}

public void testConsume() {
  String path = "WEB-INF/teste.log";
  InputStream openStream = getResource( path );

  int c = -1;
  byte[] bb = new byte[1024];
  while ( -1 != ( c = openStream.read( bb ) ) ) {
    /* consume stream */
  }
  openStream.close();
}

/结束小服务程序/

于 2009-09-25T19:23:18.883 回答
1

我用下面的方法读取了web content下的文件

BufferedReader reader = new BufferedReader(new InputStreamReader(request.getSession().getServletContext().getResourceAsStream("/json/sampleJson.json")));

现在所有文件内容都在阅读器对象中可用。

于 2015-05-20T11:41:25.133 回答