Obter contexto no JSF

Preciso muito de uma ajuda, tenho um problema: obter a informação, na classe bean (como exemplo managerBean), do local da página que faz requisições a essa classe bean.
Como exemplo, imagine o cenário: Tenho um Contexto de aplicação que se chama “Teste”, dentro desse contexto existem as pastas básicas, META-INF, WEB-INF e um index.html, além de mais uma pasta chamada publico, sendo que dentro tem uma página chamada principal.xhtml.

//O código de principal.xhtml:
...
<h:body>
	<h:form>

		<h:commandLink action="#{managerBean.imprime}">Imprime</h:commandLink>

	</h:form>
</h:body>
...
//O código da classe managerBean:

@ManagedBean(name="managerBean")
@RequestScoped
public class ManagerBean {

	public void imprime() {

		System.out.println(FacesContext.getCurrentInstance().getExternalContext().getRequestContextPath());
	}
}

Meu problema aqui é que a informação que está sendo impressa na saída padrão é /Teste, e eu esperava, baseado no meus estudos, que getRequestContextPath() me retornasse /Teste/publico, pois a requisição de request partiu de uma página de dentro de /Teste/publico.

Para resolver esse problema criei, o que acho, um “enjambragato”, porém acredito que isso não vá funcionar sempre:

//O código de principal.xhtml:

...
<h:body>

	<h:inputHidden id="publico" value="publico"/>
	<h:form>
		<h:commandLink action="#{managerBean.imprime}">Imprime</h:commandLink>
	</h:form>

</h:body>
...
//O código da classe managerBean:

@ManagedBean(name="managerBean")
@RequestScoped
public class ManagerBean {

	public void imprime() {

		FacesContext aFacesContext = FacesContext.getCurrentInstance();
		
		Map<String, String> map = aFacesContext.getExternalContext().getRequestParameterMap();
		Set<String> chaves = map.keySet();
		Iterator<String> i = chaves.iterator();
			
		System.out.println(map.get(i.next()+":publico"));
	}
}

Opa, um colega me deu uma solução porém ainda tenho o problema de ter informação a mais da que eu quero, pois gostaria que o principal.jsf não fosse retornado, mas apenas o /Teste/publico

HttpServletRequest req = (HttpServletRequest)aFacesContext.getExternalContext().getRequest();

se alguém tiver uma solução, as dicas ainda são bem vindas :slight_smile: