我正在使用一些旧的jsp应用程序,并且我们正在移动服务器,因此URL已更改。我们获得的新网址中包含端口号-http://example.com:8686/theapp
现在,此行getServletContext().getInitParameter("contextName")
返回example/
而不是example:8686/
。
是否可以使用类似的功能或参数,以便将端口号显示在url中?
最佳答案
getServletContext().getInitParameter()
返回给定名称的<context-param>
的值,该值在web.xml
中很难指定。这不是动态值。基本上,您需要编辑有问题的<context-param>
以便提供“正确的”值。
要动态获取当前HTTP Servlet请求的端口号,您需要改用HttpServletRequest#getServerPort()
或HttpServletRequest#getLocalPort()
,具体取决于您要获取的端口号:Host
标头中指定的端口号,或服务器实际使用的服务器。
请注意,通常使用HttpServletRequest#getContextPath()
来获取上下文名称。
关于java - getServletContext()。getInitParameter(“contextName”)不会在url中返回端口号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8510275/