我的App Engine项目的war / WEB-INF文件夹中有一个文件。我在FAQ中读到,您可以在servlet上下文中从那里读取文件。我不知道如何形成资源的路径:
/war/WEB-INF/test/foo.txt
我将如何构造到该资源的路径以与File()一起使用,就像上面一样?
有两种方法可以做到这一点。只要扩展WAR文件(一组文件而不是一个.war文件),就可以使用以下API:
ServletContext context = getContext();
String fullPath = context.getRealPath("/WEB-INF/test/foo.txt");
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletContext.html#getRealPath(java.lang.String)
这将为你提供所需资源的完整系统路径。但是,如果Servlet容器从不展开WAR文件(例如Tomcat),则将无法使用。起作用的是使用ServletContext
的getResource
方法。
ServletContext context = getContext();
URL resourceUrl = context.getResource("/WEB-INF/test/foo.txt");
或者,如果你只想要输入流:
InputStream resourceContent = context.getResourceAsStream("/WEB-INF/test/foo.txt");
http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletContext.html#getResource(java.lang.String)
无论你使用哪种Servlet容器以及应用程序的安装位置,后一种方法都将起作用。仅当在部署之前解压缩WAR文件时,前一种方法才有效。
编辑: getContext()
方法显然是你必须实现的东西。JSP页面使其可用作context字段。在Servlet中,你可以从中获取它,ServletConfig
并将其传递到Servlet的init()
方法中。如果在那时存储它,则此后任何时候都可以获取ServletContext
。
我刚刚开始使用JSP,遇到了一个问题。 据我所知,WEB-INF下的JSP页面可以通过浏览器在localhost中使用URL进行访问: 但是,如果我在WEB-INF文件夹(即'MyFolder')中创建另一个子文件夹,并尝试通过URL访问相同的JSP页面: 它给出了一个错误404。JSP文件导航系统与HTML文件导航系统有区别吗? 编辑:我正在使用servlet来显示我的JSP页面: EDIT2:
资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等。比方说,如果你的Hexo项目中只有少量图片,那最简单的方法就是将它们放在 source/images 文件夹中。然后通过类似于 ![](/images/image.jpg) 的方法访问它们。 对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组
如何将本地存储文件夹中的JSP文件包含在WEB-INF下? 我在config.properties定义了绝对路径${externalFolder}到包含外部jsp文件的文件夹,控制器映射到 /page和jsp页面page.jsp在WEB-INF/jsp/目录中。 在此文件页面中。我想调用的jsp: WEB-INF/jsp/page。jsp 谢谢你的帮助。
问题内容: 我有一个Web应用程序,其中包含我的应用程序服务之一的配置xml文件,该文件显示为spring bean。另外,我在同一个工作区中有一个独立的Java应用程序(从其pom.xml引用我的Web应用程序项目),该应用程序使用Spring TestContext框架运行测试,并且其中一个测试检查该XML文件的配置。 但是我从独立应用程序访问此xml文件时遇到问题: 在设置测试之前,在我之前
我正在从主类访问资源文件夹中的文件 我收到了这个错误: 我甚至打开了jar文件,remoteUnitsIdsInOldServer.txt文件就在那里,在类内部
如何从资源文件夹的子文件夹中读取文件。 我在资源文件夹中有一些json文件,例如: 现在我想在我的课堂上读到这个 这是我正在尝试的,但是失败了。 不起作用,那么我正在尝试: 这两样东西都不工作。