- - PR -
リクエストURIの取得方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-12-25 16:24
Tomcat+Spring環境なのですが、
例えば、http://localhost:8080/foo/WEB-INF/pages/bar.jsp というJSPに対して、 http://localhost:8080/foo/bar.html というURLをディスパッチしております。 JSPの中で、"/foo/bar.html"の部分(つまり、リクエストしたURI)を取得したかった ので、request.getRequestURI() とかしてみたのですが、 "/foo/WEB-INF/pages/bar.jsp"の方が取れてしまいます。 request.getServletPath() も同様にjspの方が取れます。 "/foo/bar.html"の方を取得する方法を教えてください。 最悪、"/foo/WEB-INF/pages/bar.jsp"という文字列から、"/foo/bar.html"に変換する ことも可能ですが、"なんだかなぁ"です。 あるいは、taglib の"${url}"に"bar.html"の部分は持っているので、 JSPのJavaのディレクティブ内(<% 〜 %>の中)から、taglib の"${url}"の値を 取得する方法を教えていただけないでしょうか。 よろしくお願いいたします。 | ||||
|
投稿日時: 2006-12-25 17:02
RequestDispatcher#forward(ServletRequest,ServletResponse)
すると、getRequestURI()が返す値が ServletRequest#getRequestDispatcher(String)で指定した値に 置き換わるようですね。 Tomcat 4.1.31で試したところそうなってました。 これが仕様通りなのか、このバージョンのバグなのかは分かりませんが。 代わりに、ServletRequest#getRequestURL()を使用して 以下のようにすることで、お望みのものを取得できました。
[ メッセージ編集済み 編集者: koe 編集日時 2006-12-25 17:03 ] | ||||
|
投稿日時: 2006-12-25 17:20
koeさん、調査してくださってありがとうございます。
私はTomcat-5.5.9なのですが、 request.getRequestURL()でも同様にjspの方が取れてしまいます。 |
1