【问题标题】:Tomcat _localhost:port_ set globally for every systemTomcat _localhost:port_ 为每个系统全局设置
【发布时间】:2013-01-07 07:14:12
【问题描述】:

我有 localhost:port 用于 webApplication。我可以将其声明为全局吗? 就像我创建 .war 后,我可以在任何 tomcat 或任何系统中使用它,而无需更改它?

String url=http://localhost:8080/app/xyz.jsp

我想将 localhost:8080 声明为全局(当我将其硬编码到我的应用程序时),就像用户可定义的标志一样。

谢谢。

我明白了,我使用 localhost 作为 127.0.0.1 点自我 以及端口地址

Server server = ServerFactory.getServer();
        Service[] services = server.findServices();
        for (Service service : services) {
            for (Connector connector : service.findConnectors()) {
                ProtocolHandler protocolHandler = connector
                        .getProtocolHandler();
                if (protocolHandler instanceof Http11Protocol
                        || protocolHandler instanceof Http11AprProtocol
                        || protocolHandler instanceof Http11NioProtocol) {
                    serverPort = String.valueOf(connector.getPort());
                }
            }
        }

感谢您的帮助。

【问题讨论】:

  • .war 是您的应用程序特定和端口号的更改。是特定于服务器的。您在任何系统或服务器实例上部署您的战争,您必须根据您的要求或您的意图更改服务器端口号。
  • 你好,如果我需要为应用程序中的任何 jsp 页面添加 localhost:port 硬编码,那么我该如何管理呢?
  • servlet请求的用户服务器路径或服务器名称和上下文路径对象
  • 重新编辑,您不需要任何这些,正如您已经被告知的那样。您需要的所有信息都可以通过 HttpServletRequest 获得。
  • @EJP 在 RESTlet 中,并且在使用 http://127.0.0.1:" + serverPort+ "/app/xyz.jsp 的 java 类中,它适用于所有人,我在 Servlet 中尝试了你的答案,我知道,但上面可能对我来说很舒服.

标签: java jakarta-ee tomcat tomcat6 tomcat7


【解决方案1】:

这甚至是不可取的。您可以在运行时获取信息,例如通过 EL:

#{request.scheme}://#{request.serverName}:#{request.serverPort}/#{request.contextPath}/...

然后您的应用程序可以在任意重新托管、Tomcat 的重新配置、端口的重新分配......由其他人进行。根本不需要任何操作。

【讨论】:

  • 您能否详细说明“EL”到底是什么?
  • @Snake EL 是 Expression Language 的缩写。阅读此处了解更多信息:stackoverflow.com/tags/el/info
  • 实际上在 EL 中并没有隐式的 request 对象。要访问 HttpServletRequest 属性,您应该使用 ${pageContext.request.propertyName}(或 # 而不是 $),其中 propertyName 是 HttpServletRequest / ServletRequest 属性之一。例如:${pageContext.request.scheme}
【解决方案2】:

I don't think so this is possible.

部署的war文件属于applicationHostnameport属于服务器配置,可以根据您的要求进行配置。您也可以将它们配置为在 SSL 上运行应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    相关资源
    最近更新 更多