使用tomcat 6,我在www / templates / templatefile.html
中创建了一个模板如何从servlet访问它?我想阅读html文件并解析它。
我尝试使用request.getRealPath(request.getServletPath())
获取真实路径
并从那里转到模板目录但由于某种原因它仍然无法找到该文件。
答案 0 :(得分:3)
假设www
是公共Web内容根目录中的文件夹,那么您可以使用ServletContext#getRealPath()
将相对Web路径转换为绝对磁盘文件系统路径,如下所示:
String relativeWebPath = "/www/templates/templatefile.html";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
InputStream input = new FileInputStream(file);
// ...
请注意,当未扩展WAR时,这将不起作用(默认修剪中的Tomcat会执行此操作,但可以配置为不执行此操作)。如果你想要的最终结果是InputStream
,那么你更愿意使用ServletContext#getResourceAsStream()
。
String relativeWebPath = "/www/templates/templatefile.html";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
// ...