访问Jersey中的ServletContext

时间:2013-10-29 11:19:22

标签: java tomcat servlets jersey

我正在进行jee编程。从基本教程中,如果我想在扩展HttpServlet的类中读取我的应用程序目录,我使用getServletContext()。getRealPath(relativePath)。但就我而言,我使用Jersey进行序列化。 Servlet没有扩展HttpServlet,请查看图像enter image description here。我主要是前程序员,所以也许这是一个愚蠢的问题,但我想要简单的static / util方法来解决我的webapp中不同静态资源的问题。我在Tomcat上运行它。唯一的servlet就像在图像上一样。

2 个答案:

答案 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";