Java 从servlet访问WebContent文件夹中的文件
我正在尝试使用FOP生成PDF文档。pdf生成代码保存在servlet中,xsl保存在WebContent文件夹中的特定文件夹中 如何通过提供相对路径来访问此xsl文件?只有在我给出文件对象中的完整路径时,它才起作用 我需要动态生成xml内容。如何将动态生成的xml作为源而不是文件对象Java 从servlet访问WebContent文件夹中的文件,java,servlets,apache-fop,Java,Servlets,Apache Fop,我正在尝试使用FOP生成PDF文档。pdf生成代码保存在servlet中,xsl保存在WebContent文件夹中的特定文件夹中 如何通过提供相对路径来访问此xsl文件?只有在我给出文件对象中的完整路径时,它才起作用 我需要动态生成xml内容。如何将动态生成的xml作为源而不是文件对象 请提供您的建议。要获得路径,您只需执行以下操作: String path = s.getServletContext().getRealPath("/WEB-INF/somedir/hdfeeh");
请提供您的建议。要获得路径,您只需执行以下操作:
String path = s.getServletContext().getRealPath("/WEB-INF/somedir/hdfeeh");
s
是实现HTTPServlet
的类。如果是servlet类,也可以使用this.getServletContext()
然后将其作为参数传递
就使用动态生成的XML而言,您使用的库应该支持使用输入流,编写XML,将其转换为字节数组,然后将其封装在
ByteArrayInputStream中,并使用它。对于直接和独立的容器实现,您可以使用以下方法getResource()访问资源在servlet中:
/启动servlet/
/endservlet/我使用以下方法读取web内容下的文件
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getSession().getServletContext().getResourceAsStream("/json/sampleJson.json")));
现在,reader对象中的所有文件内容都可用。不幸的是,我无法将资源加载到流中。我得到了我打印的servletContext异常java.net.MalformedURLException,它显示为com.ibm.ws.webcontainer.facade。ServletContextFacade@36c29971有什么想法吗?在使用servletContext.getRealPath(filePath)之后;工作正常:)在这里,代码工作正常。我正在使用Tomcat6.*。现在我看到您正在使用IBM平台。也许,这就是结果之间的差异。我不太明白。我不知道什么是s
?@newbies
是一个实现的对象HttpServlet
扩展了一个实现ServletConfig
的类。这意味着如果您的类扩展了HttpServlet
,您可以执行这个.getServletContext()
。它对我不起作用。如果我检查文件是否存在这样的路径,它将返回false。看看我的问题:
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getSession().getServletContext().getResourceAsStream("/json/sampleJson.json")));