1

Appアプリケーションをデフォルトアプリケーションとして設定するとHttpServletRequest.getContextPath()、コンテキスト パスのない URL から呼び出したときに、コンテキスト パスの値が空になります。

ブラウザバーで次の URL を使用してサイトをリクエストしています (いいえ/App!):/foo/bar.xhtml

次の値になります。

HttpServletRequest.getContextPath()= ""
HttpServletRequest.getServletPath()= "/foo/bar.xhtml"
HttpServletRequest.getRequestURI()= "/App/foo/bar.xhtml"

request /App-uri を取得するときに削除しないでください。


uri から context-path を削除するための次のコード行 (多くの質問で使用されます) は機能しなくなります。

request.getRequestURI().substring(request.getContextPath().length());

または、これを安全に置き換える必要があります:?

request.getContextPath() + request.getServletPath()

Glassfish 3.1.2 で mojarra 2.1.23 を使用する

Glassfish 設定:
アプリケーションApp- コンテキスト ルート:/App
仮想サーバー - デフォルトの Web モジュール:App

/AppURLから省略できるように。

4

0 に答える 0