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