質問

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 つのオプションがあります。

  1. アプリケーションをコンテキスト パスにデプロイします / (アプリケーションサーバー固有の仕組み)
  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を設計します:

PrettyFaces - SEO、動的パラメータ、ブックマーク、およびJSFのためのナビゲーション/ JSF2する

また、このような例のために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に自分のブラウザを指すことによって、それを調べることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top