質問
JSF を使用して JAVA で書かれたエンタープライズ アプリケーションがあります (RichFaces 3.3 を使用)。現在、私の URL は次のようになります。
http://localhost/WebApplication/faces/folder1/page.jsp
質問は、URL を次のようにマスクする方法です。
http://localhost/folder1/page.jps
基本的に「Application/faces/」を非表示にしたいのですが
ありがとう
解決
アプリケーション内の URL を書き換えるには、次を使用できます URL書き換え. 。ただし、この場合は、Web アプリケーションのコンテキスト パスを削除したいようです。この場合、次の 2 つのオプションがあります。
- アプリケーションをコンテキスト パスにデプロイします
/
(アプリケーションサーバー固有の仕組み) - ポート 80 で Apache を実行し、mod_proxy を使用して、次のような構成を使用して、別のポートで実行されているアプリケーション サーバーに特定の URL をプロキシします。
Apache 構成:
<Proxy http://localhost:8080/*>
Order Allow,Deny
Allow From All
</Proxy>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/WebApplication/
ProxyPassReverse / http://localhost:8080/WebApplication/
他のヒント
/顔/ web.xml
にマッピングによるものであることに留意されたいです。これは、JSFのための標準的なマッピングである、しかし、あなたはまた、拡張子マッピング使用することができます - 。URLの末尾に、すなわち.faces
を
は、たとえば、アプリケーションでは、私はここに、この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アプリケーションとして展開について与えた答えと一緒にそれを使用する場合は、あなたの最後のURLは次のようになります。
ます。http://localhost/folder1/page.facesする
ほぼ正確にあなたが望んでいたものです。
PrettyFacesあなたのURLを書き換えることができます。 あなたはより軽量なものを好む場合は、NavigationHandlerおよびオーバーライドを拡張 handleNavigation、例えばcontext.getExternalContext()を呼び出すことによって。リダイレクト()
うん。私たちは、この状況に対処するために、正確にPrettyFacesを設計します:
また、このような例のために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
それはあなたがlamersのためにJSFを使用することを見つけるために、今は難しいでしょう;-)しかし、ハッカーはこのhttp://localhost/folder1/page.jsp
のようなURLに自分のブラウザを指すことによって、それを調べることができます。