我正在进行jee编程。从基本教程中,如果我想在扩展HttpServlet的类中读取我的应用程序目录,我使用getServletContext()。getRealPath(relativePath)。但就我而言,我使用Jersey进行序列化。 Servlet没有扩展HttpServlet,请查看图像。我主要是前程序员,所以也许这是一个愚蠢的问题,但我想要简单的static / util方法来解决我的webapp中不同静态资源的问题。我在Tomcat上运行它。唯一的servlet就像在图像上一样。
答案 0 :(得分:2)
根据规范(JAX-RS 1.1,ch.6.1),在资源类中添加:
@Context
private ServletContext application;
完全诽谤的名字是:
import javax.servlet.ServletContext;
import javax.ws.rs.core.Context;
答案 1 :(得分:0)
可以访问webApp/WEB-INF/classes
目录的绝对路径,如下所示:
URL resource = getClass().getResource("/");
String path = resource.getPath();
这会返回一个像这样的绝对路径:
/C:/SERVERS/x/y/x/yourApp/WEB-INF/classes
从这里你可以获得webapp目录的路径:
path = path.replace("WEB-INF/classes/", "");
现在,如果您的静态资源直接位于webapp
下,则可以使用以下命令访问该资源:
path = path + "resource_name";