我假设您使用JSF 2和Java EE 6来获得此答案。
实际机制的实现会根据您需要原始URL的程度而有所不同。
首先,您需要访问生成的HttpServletRequest对象的基础servlet容器(假定为一个,而不是portlet容器)。使用该
FacesContext对象以以下方式访问HttpServletRequest对象:
HttpServletRequest origRequest = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
的
HttpServletRequest类提供了几种实用方法,以获得原始请求的近表示:
getRequestURL()
,它提供原始请求而没有查询字符串getScheme
,getServerName
,getServerPort
,getContextPath
,getServletPath
,getPathInfo
和getQueryString
其所有输出可以顺序组合,以获得原始的请求。如果需要较小的URL片段,则可能必须省略后面的调用。



