从外部的web.xml文件访问servlet类的可访问性

3

我有两个Web应用程序。但只有其中一个包含Java servlet类。我想从另一个应用程序的web.xml文件中访问该servlet类。是否可能?如果是,如何实现?

1个回答

2

web.xml 中无法完成此操作。但是,您可以创建一个新的 servlet,然后将请求重定向/转发到另一个 Web 应用程序的 servlet。重定向很容易,只需让 URL 指向特定的 servlet。

response.sendRedirect("/otherwebapp/theservlet");

转发需要更多的工作。由于安全限制,这通常默认情况下是不可能的。首先,您需要配置servlet容器以在相关的Web应用程序之间启用跨上下文访问。由于不清楚您使用的是哪个容器,因此这里只提供了一个针对Tomcat的示例,以便您知道应该寻找自己的servlet容器:对于这两个Web应用程序,您需要将<Context>元素的crossContext属性设置为true。请注意保留HTML标签。
<Context crossContext="true">

通过在Servlet中使用ServletContext#getContext(),您可以获取其他上下文:

ServletContext othercontext = getServletContext().getContext("/otherwebapp");

最后,您可以通过以下方式将请求转发:
othercontext.getRequestDispatcher("/theservlet").forward(request, response);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接