【问题标题】:Servlet which intercepts and redirects to another port拦截并重定向到另一个端口的 Servlet
【发布时间】:2012-11-20 18:13:07
【问题描述】:

我有一台运行两台服务器的机器:-

  • 一个 Java Web 容器 (Weblogic),以及
  • 非 Java 网络服务器

显然在 700115000 两个不同的端口上。

服务器(及其网络)的安全策略限制只允许我们远程访问Java web container(只有它的端口可以访问)。

我需要在我的 Java Web 容器上部署一个 servlet 或过滤器,它将某些请求重定向到非 Java Web 服务器并返回它们的结果。

有没有可用的Servletfilter 可以做到这一点?

我可以将文件上传到非 Java Web 应用程序(从同一台机器访问时)。是否可以通过Port Mapping Servlet启用此功能?

【问题讨论】:

  • 您的架构中是否有 HTTP 服务器,位于 Weblogic 服务器前面?
  • 不,直接访问Weblogic即可。

标签: java web-applications servlets port servlet-filters


【解决方案1】:

如果只有一个服务器是公开可用的,那么重定向将无济于事,因为浏览器将无法访问他被重定向到的端口。在这种情况下,您需要的是 WebLogic 中的代理。例如Jetty Proxy Servlet,但我不知道它的可移植性如何,它可能还需要 servlet 3.0。

【讨论】:

    【解决方案2】:

    没有标准方法可以做到这一点。换句话说,JavaEE 规范中没有任何内容要求容器提供此类功能。

    你必须自己写。为此,我会使用过滤器而不是 Servlet。

    【讨论】:

      【解决方案3】:

      你不能重定向,因为重定向是客户端的,你需要做一个最简单的代理。您可以创建一个接受一些 param=web-url 的 servlet,然后使用 URLConnection 或 commons http 客户端连接到此 URL,然后您只需将进入的页面写入 servletResponse。根据页面内容,您可能还需要传递一些 http 标头,但在最简单的情况下,架构就像我描述的那样

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-13
        • 2012-01-22
        • 2017-05-15
        • 1970-01-01
        • 2021-05-28
        • 1970-01-01
        相关资源
        最近更新 更多