- - PR -
サーバURLの取得
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-04-14 03:09
サーブレット、JSPに対して
次のURLにリクエストがあったときに http://hogehoge.com/myweb/sub/hoge.jsp 次のところまでの文字列を取得したいと思っています。 http://hogehoge.com/myweb/ この文字列をメソッド一発ぐらいでとれる簡単な方法ってないでしょうか? よろしくお願いします。 [補足] -HTMLのBASEタグで上のURLを指定して、個別のリンク箇所にはコンテキストルートからのパスを指定したいと思っています。 -カスタムタグは利用せず、生サーブレット/JSPの範囲内で解決できる手段を探しています -ちなみに今、こんな感じです。 String base = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/" ; | ||||
|
投稿日時: 2005-04-14 10:41
一発ではムリですが、こんなのはどうでしょう。
StringBuffer sbRequestURL = request.getRequestURL (); String sServletPath = request.getServletPath (); int index = sbRequestURL.lastIndexOf (sServletPath); String base = sbRequestURL.substring (0, index+1); [ メッセージ編集済み 編集者: yos 編集日時 2005-04-14 10:43 ] | ||||
|
投稿日時: 2005-04-14 20:33
yosさん。
回答ありがとうございます。 リクエストURL http://hogehoge.com/myweb/sub/hoge.jsp からサーブレットパス /sub/hoge.jsp の差分をとるとは、面白い方法ですね。 <del>あ、サーブレットパスだと、フォワードしたときリクエストのURLと違っちゃいますね(それがよい場合もあるでしょうけど)。</del> うーん。 JSPの式に書いて、あまり目立たないぐらいの長さだといいんですけど、 ユーテリティなり何なり作って呼ぶしかないか。。。 [ メッセージ編集済み 編集者: みやも 編集日時 2005-04-14 20:34 ] [ メッセージ編集済み 編集者: みやも 編集日時 2005-04-18 20:24 ] | ||||
|
投稿日時: 2005-04-14 20:38
ちなみにStrutsの<html:base/>タグ(から使われるRequestUtils)はこんな感じのようです。
|
1