質問: formのaction属性に設定する値に関する素朴な疑問 という記述を時々みます。 request.getrequesturl() であれば、 http://~からはじまる urlになるので 意味はわかるのですが、 request.getrequesturi()になっているのは なぜでしょう。 これだと、/コンテクスト名/~ のような記述になってしまい。 webサーバのホスト名を識別するような 情報がどこにもみあたらないのですが・・ いったい、どういうことなのでしょうか?
回答: おつかれさまです。 javaサーブレット等のwebシステムを動作させるためにtomcat等のサーブレットエンジンは一般的に 「http://www.~」とかかれていない限り同一のサーバへリクエストを返します。 つまり http://www.****.co.jp/index.jsp内に <%= response.encodeurl(request.getrequesturi()) %> のような記述が合った場合サーブレットエンジンは http://www.****.co.jp/コンテクスト名/~へリクエストを返します。