我在一个应用程序中有两个单独的REST服务.让我们说一个主要的"人"服务和一个辅助"管理"服务.我想要的是在服务器上的不同路径中公开它们.我正在使用JAX-RS,RESTEasy和Spring.
例:
@Path("/people")
public interface PeopleService {
// Stuff
}
@Path("/management")
public interface ManagementService {
// Stuff
}
Run Code Online (Sandbox Code Playgroud)
在web.xml我目前有如下设置:
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<listener>
<listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/public</param-value>
</context-param>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/public/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
在PeopleService和ManagementService实施只是春豆.上面的web.xml配置将它们都暴露在外/public(因此分别具有/public/people和/public/management).
我想要完成的是暴露PeopleServiceon /public,以便完整路径将成为/public/people并暴露ManagementServiceon /internal,以便它的完整路径将成为/internal/management.
不幸的是,我无法更改@Path注释的值.
我该怎么办?
我应该如何从.jsp访问ServletContext?例如,如何从.jsp内部调用getRealPath方法.
这是一个Servlet,工作正常:
protected void doGet(
HttpServletRequest req,
HttpServletResponse resp
) throws ServletException, IOException {
resp.setContentType( "text/html; charset=UTF-8" );
final PrintWriter pw = resp.getWriter();
pw.print( "<html><body>" );
pw.print( getServletContext().getRealPath( "text/en" ) );
pw.print( "</body></html>" );
pw.flush();
pw.close();
}
Run Code Online (Sandbox Code Playgroud)
现在我正在寻找我应该在下面的.jsp中插入的确切行,以完成与上面的servlet完全相同的操作.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
... // What should I insert here
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我想 ServletContext 在我的Servlet项目中使用如下
ServletContext context =request.getServletContext();
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试使用它时,我找不到getServletContext(); 请求对象.
我得到的是在附件中看到的

我是Servlets的新手,只是从视频教程系列中得到它,请指导我如何获得ServletContext();我的applocation