3
我有两个Web应用程序,但其中只有一个包含Java servlet类。我想从其他应用程序的web.xml文件中访问该servlet类。有可能吗?如果是的话,怎么可能?从外部web.xml文件中访问servlet类
我有两个Web应用程序,但其中只有一个包含Java servlet类。我想从其他应用程序的web.xml文件中访问该servlet类。有可能吗?如果是的话,怎么可能?从外部web.xml文件中访问servlet类
你不能这样做在web.xml
。但是,您可以创建一个新的servlet,然后将该请求重定向/转发到其他Web应用程序的servlet。重定向很简单,只需让URL指向特定的servlet即可。
response.sendRedirect("/otherwebapp/theservlet");
转发需要更多的工作。由于安全限制,这在默认情况下是不可能的。首先,您需要配置servletcontainer以在相关Web应用程序之间启用跨上下文访问。目前尚不清楚您使用的是哪一个,所以这里只是一个Tomcat目标示例,以便您了解应该在哪个方向上查找自己的servlet容器:对于这两个webapps,需要将<Context>
元素的crossContext
属性设置为true
:
<Context crossContext="true">
这样你就可以通过ServletContext#getContext()
获得servlet的内部其他方面:
ServletContext othercontext = getServletContext().getContext("/otherwebapp");
最后,你可以通过它转发请求如下:
othercontext.getRequestDispatcher("/theservlet").forward(request, response);