URL da máscara no JSF

Eu tenho um aplicativo corporativo escrito em JAVA com JSF (usando RichFaces 3.3). Atualmente meu URL é assim:

http: //localhost/WebApplication/faces/folder1/page.jsp

Pergunta é como eu mascarar minha url para torná-lo assim:

http: //localhost/folder1/page.jps

Basicamente eu quero esconder “Application / faces /”

obrigado

Para rewrite URLs dentro de seu aplicativo, você pode usar o UrlRewrite . No entanto, neste caso, parece que você deseja remover o caminho de contexto do seu aplicativo da Web. Nesse caso, você tem duas opções:

  1. implemente seu aplicativo no caminho de contexto / (como é o servidor de aplicativos específico)
  2. execute o Apache na porta 80 e use o mod_proxy para fazer proxy de determinadas URLs para o servidor de aplicativos em execução em uma porta diferente, usando uma configuração semelhante à seguinte.

Configuração do Apache:

  Order Allow,Deny Allow From All  ProxyPreserveHost On ProxyPass / http://localhost:8080/WebApplication/ ProxyPassReverse / http://localhost:8080/WebApplication/ 

Note que o / faces / é devido ao mapeamento em web.xml . Este é um mapeamento padrão para o JSF, no entanto, você também pode usar o mapeamento de extensão – ou seja, .faces no final da URL.

Por exemplo, em um aplicativo que tenho aqui, isso está no arquivo web.xml:

  Persistent Faces Servlet *.faces  

Isso está usando IceFaces, no entanto, será semelhante para você com RichFaces. O seu provavelmente será parecido com isto: /faces/* . Se você alterá-lo para ter *.faces como acima, seu URL final ficará assim:

http: //localhost/WebApplication/folder1/page.faces

Se você usar isso em conjunto com a resposta que Peter Hilton deu sobre a implantação como um aplicativo da Web raiz, sua URL final será semelhante a esta:

http: //localhost/folder1/page.faces

Qual é quase exatamente o que você queria.

PrettyFaces permite que você reescreva sua URL. Se você preferir algo mais leve, estenda o NavigationHandler e substitua o handleNavigation, por exemplo chamando context.getExternalContext (). Redirect ()

Sim. Nós projetamos PrettyFaces exatamente para lidar com essa situação:

PrettyFaces – SEO, parâmetros dynamics, marcadores e navegação para JSF / JSF2

Você também pode alterar o nome da pasta de faces para jsp, por exemplo, assim:

  Faces Servlet /jsp/*    30    jsp/index.jsp  

E então sua url será semelhante a:

 http://localhost/WebApplication/jsp/folder1/page.jsp 

e se você implementar seu aplicativo no caminho de contexto / do servidor de aplicativos, ele se parecerá com:

 http://localhost/jsp/folder1/page.jsp 

será difícil agora descobrir que você usa o JSF para lamers 😉 mas um hacker pode investigá-lo apontando seu navegador para o URL como este http://localhost/folder1/page.jsp

    Intereting Posts