JSFを使用してJAVAで記述されたエンタープライズアプリケーションがあります(RichFaces 3.3を使用)。現在、私のURLは次のようになっています。
http://localhost/WebApplication/faces/folder1/page.jsp
問題は、URLをマスクして次のようにする方法です。
http://localhost/folder1/page.jps
基本的に「Application/faces/」を非表示にしたい
ありがとう
JSFを使用してJAVAで記述されたエンタープライズアプリケーションがあります(RichFaces 3.3を使用)。現在、私のURLは次のようになっています。
http://localhost/WebApplication/faces/folder1/page.jsp
問題は、URLをマスクして次のようにする方法です。
http://localhost/folder1/page.jps
基本的に「Application/faces/」を非表示にしたい
ありがとう
PrettyFaces を使用すると、URL を書き換えることができます。より軽量なものを好む場合は、NavigationHandler を拡張し、handleNavigation をオーバーライドします。たとえば、context.getExternalContext().redirect() を呼び出します。
/faces/ は のマッピングによるものであることに注意してくださいweb.xml
。これは JSF の標準マッピングですが、拡張マッピング (つまり.faces
、URL の末尾) を使用することもできます。
たとえば、ここにあるアプリケーションでは、これは web.xml ファイルにあります。
<servlet-mapping>
<servlet-name>Persistent Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
これは IceFaces を使用していますが、RichFaces の場合も同様です。おそらく次のようになります<url-pattern>/faces/*</url-pattern>
。上記のように変更すると*.faces
、最終 URL は次のようになります。
http://localhost/WebApplication/folder1/page.faces
これを、ルート Web アプリケーションとしてデプロイすることについて Peter Hilton が示した回答と組み合わせて使用すると、最終 URL は次のようになります。
http://localhost/folder1/page.faces
これは、ほぼ正確にあなたが望んでいたものです。
アプリケーション内で URL を書き換えるには、UrlRewriteを使用できます。ただし、この場合、Web アプリケーションのコンテキスト パスを削除したいようです。この場合、次の 2 つのオプションがあります。
/
(アプリケーションサーバー固有の方法です)アパッチ構成:
<Proxy http://localhost:8080/*>
Order Allow,Deny
Allow From All
</Proxy>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/WebApplication/
ProxyPassReverse / http://localhost:8080/WebApplication/
うん。この状況を正確に処理するために、PrettyFaces を設計しました。
たとえば、次のように、フォルダ名をfacesからjspに変更することもできます。
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/jsp/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>jsp/index.jsp</welcome-file>
</welcome-file-list>
そして、URLは次のようになります。
http://localhost/WebApplication/jsp/folder1/page.jsp
アプリケーションをアプリケーションサーバーのコンテキストパス/にデプロイすると、次のようになります。
http://localhost/jsp/folder1/page.jsp
ラマーにJSFを使用していることを確認するのは難しいでしょう;-)しかし、ハッカーはブラウザを次のようなURLにポイントすることで調査できます。http://localhost/folder1/page.jsp