[解決済み] コンテキストパスなしでリクエストURIを取得するには?
質問
方法 request.getRequestURI() は、コンテキストパスを持つURIを返します。
例えば、あるアプリケーションのベース URL が
http://localhost:8080/myapp/
(すなわち、コンテキストパスが
myapp
である)、そして私は
request.getRequestURI()
に対して
http://localhost:8080/myapp/secure/users
の場合は
/myapp/secure/users
.
この部分のみを取得する方法はありますか?
/secure/users
の部分だけ、つまりコンテキストパスなしのURIを取得する方法はありますか?
どのように解決するのですか?
フロントコントーラーサーブレットの内部で、次のようなプレフィックスパターンに マップされている場合
/foo/*
のようなプレフィックスパターンにマップされている場合、 単に
HttpServletRequest#getPathInfo()
.
String pathInfo = request.getPathInfo();
// ...
この例でサーブレットがマッピングされているのは
/secure/*
にマップされているとすると、これは
/users
を返します。これは、典型的なフロントコントローラサーブレット内で唯一の関心事となる情報です。
しかし、もしサーブレットが
*.foo
のようなサフィックスパターンにマップされている場合 (あなたの URL の例ではそうなっていません)、 あるいは実際にフィルタの中にいる場合 (呼び出されるサーブレットがまだ確定していない場合、なので
getPathInfo()
を返すかもしれません。
null
を返すかもしれません)、最良の方法は、 コンテキストパスの長さに基づいてリクエスト URI を自分で部分文字列化することで、 通常の
String
メソッドを使うことです。
HttpServletRequest request = (HttpServletRequest) req;
String path = request.getRequestURI().substring(request.getContextPath().length());
// ...
関連
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
jd-gui Java Exceptionが発生しました。
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
プロジェクトの依存関係を解決できなかった 解決
-
Intellij IDEAのエラー「CreateProcess error=2, system could not find specified file」に対する完璧な解決策です。
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] メソッドの戻り値の型を汎用的にするにはどうすればよいですか?
-
[解決済み] JavaによるHTTP URLアドレスのエンコード
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
jd-gui Java Exceptionが発生しました。
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
Javaエラーメッセージがenclosingクラスでない
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
[解決済み] HttpServletRequestのgetRequestURIメソッドとgetPathInfoメソッドの違いは何ですか?