我正在尝试使用FOP生成PDF文档。 PDF生成代码位于servlet中,xsl位于WebContent文件夹中的特定文件夹中。
如何通过相对路径访问此xsl文件?仅在File对象中提供完整路径时才有效。
我需要动态生成xml内容。如何将此动态生成的XML作为源,而不是作为File对象提供?
请提供您的建议。
如何通过相对路径访问此xsl文件?仅在File对象中提供完整路径时才有效。
我需要动态生成xml内容。如何将此动态生成的XML作为源,而不是作为File对象提供?
请提供您的建议。
要获取路径,你可以直接执行以下操作:
String path = s.getServletContext().getRealPath("/WEB-INF/somedir/hdfeeh");
s
是实现HTTPServlet
的类。如果它是你的servlet类,你也可以使用this.getServletContext()
。
然后将此作为参数传递。
至于使用动态生成的XML,你正在使用的库应支持使用输入流,编写XML,将其转换为字节数组,然后将其包装在ByteArrayInputStream
中并使用它。
如果您需要一个直接且独立的容器实现,您可以在Servlet内使用以下方法getResource()访问资源:
/开始Servlet/
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();
}
/结束servlet/
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getSession().getServletContext().getResourceAsStream("/json/sampleJson.json")));
s
是什么? - newbies
是一个实现了ServletConfig
接口的对象。HttpServlet
继承了一个实现了ServletConfig
的类。这意味着如果你的类继承了HttpServlet
,你可以使用this.getServletContext()
。 - Austin Moore