我已经得到了需要知道JSPX当前HttpServletRequest
的getServerName()
。该JSPX可以#{mybean.serverName}
从豆提货,这样的:如何在代理服务器后面可靠地访问jspx中的HttpServletRequest?
public String getServerName() {
HttpServletRequest request = (HttpServletRequest) FacesInstance.getCurrentInstance().getExternalContent().getRequest();
return request.getServerName();
}
然而,当这个供应代理服务器后面(跟Apache的mod_proxy),getServerName()
将有时返回节点的主机名代替前端的主机名。其他时候它正常工作。
与<% request.getServerName(); %>
一个普通的JSP会,但是,总是返回前端的主机名。
什么是与FacesInstance的HttpServletRequest
问题?有没有办法获取“真正的”请求对象?
+1和是'$ {pageContext.request.serverName}'是合法的。 – BalusC 2009-11-25 12:33:01
$ {pageContext.request.serverName}在我的.jspx中为空。我也尝试了#{pageContext.request.serverName},也没有成功。 – neu242 2009-11-25 12:48:22
@ neu242:这是由代理引起的,可能还包括DNS。 – BalusC 2009-11-25 13:25:43