从外部 web.xml 文件中访问 Servlet 类
我有两个 Web 应用程序。但其中只有一个包含 Java servlet 类。我想从其他应用程序的 web.xml 文件中访问该 servlet 类。这可能吗?如果是,怎么可能?。
I have two web applications.But only one among them includes Java servlet class.I want to access that servlet class from within the web.xml file of other application.Is it possible?.If yes,How will be it possible?.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不能在
web.xml
中执行此操作。但是,您可以创建一个新的 servlet,该 servlet 又将请求重定向/转发到其他 Web 应用程序的 servlet。重定向很简单,只需让 URL 指向特定的 servlet 即可。转发需要做更多的工作。由于安全限制,默认情况下这是不可能的。首先,您需要配置 servlet 容器以启用相关 Web 应用程序之间的跨上下文访问。目前还不清楚您使用的是哪一个,因此这里只是一个针对 Tomcat 的示例,以便您了解应该向哪个方向寻找自己的 servletcontainer:对于这两个 Web 应用程序,您需要设置
crossContext
属性
元素为true
:这样您可以通过
ServletContext#getContext()
在 Servlet 内:最后,您可以通过它转发请求,如下所示:
You can't do that in the
web.xml
. You can however create a new servlet which in turn redirects/forwards the request to the servlet of the other webapplication. Redirecting is easy, just let the URL point to the particular servlet.Forwarding requires a bit more work. This is by default not possible due to security restrictions. First you need to configure the servletcontainer to enable cross context access between the webapplications in question. It's unclear which one you're using, so here's just a Tomcat targeted example so that you understand in what direction you should look for your own servletcontainer: for the both webapps, you need to set the
crossContext
attribute of the<Context>
element totrue
:This way you can obtain the other context by
ServletContext#getContext()
inside a servlet:Finally you can forward the request through it as follows: