1. ホーム
  2. java

[解決済み] HttpServletRequestのgetRequestURIメソッドとgetPathInfoメソッドの違いは何ですか?

2022-04-25 13:29:22

質問

私は、シンプルで非常に軽量なフロントコントローラーを作っています。正しいハンドラを選択するために、リクエストパスを異なるハンドラ(アクション)にマッチさせる必要があります。

私のローカルマシンでは HttpServletRequest.getPathInfo() HttpServletRequest.getRequestURI() は同じ結果を返します。しかし、本番環境ではどのような結果が返されるのか、よくわかりません。

では、これらの方法の違いは何なのか、何を選択すればいいのか?

解決方法は?

getPathInfo() は、サーブレットへのアクセスに使用される URI の後に余分なパス情報を与えます。 getRequestURI() は、完全なURIを指定します。

Servletはそもそも独自のURIパターンで構成されなければならないので、この2つは異なるものだと考えていました。

例えば、サーブレット 'Foo' が URI '/foo' にマップされている場合、私はその URI を考えていました。

/foo/path/to/resource

という結果になる。

RequestURI = /foo/path/to/resource

そして

PathInfo = /path/to/resource