PHPの$_SERVER['XXXXX']の様にJavaでも値を取得したいが、値によって取り方が異なり、面倒。
また、ServletからJSPにフォワードすると(通常はそう)、さらに値が取りにくくなる。(「フォワードしない」というのは、Servletを介さず直接JSPを呼ぶこと。)
●Accessing the Standard CGI Variables
名前の通り基本ね。「値によって取り方が異なり、面倒」ってこと。phpinfo()代わりにそのまま使えそうなサンプルコード有。
●JSP CGI - A JSP that prints the equivalent of CGI variables
上記のJSP版。こっちのほうが見やすい?
●haeder、headerValues(リクエストヘッダ)
日本語。サンプルコードは下記のほうが良い。
●Example - Get Request Header Values from Map
This example shows how to get request headers using the JSP expression language (EL) implicit object headerValues.
●(追記)サーブレットの様々なサンプル ― (3)リクエストのHTTPヘッダ情報の取得
サーブレットで、Enumulation型を使って取得。
○HTTPヘッダ情報の種類
参考。
で、本題の、ServletからJSPにフォワードした場合(通常はそう)のヘッダ情報取得について。
フォワードを意識しないと、
<%= request.getRequestURI() %><br />
などとJSPに書いて、
/WEB-INF/addtestbdatas.jsp
などと内部のパスが見えてしまう。
したがって、サーブレットで値を取得してJSPに渡せば可能に。つまり、
req.setAttribute("RequestURI", req.getRequestURI());
とサーブレットで書き、JSPでは、
${RequestURI}<br />
などと値を取得できる。
サーブレットで書かずに直接JSPで取得するには、以下。
●HttpServletRequest#getRequestURL()とforward
ちょっとこの頁は分かりにくいが、例えば以下JSPコード例。
<%= request.getAttribute("javax.servlet.forward.request_uri") %><br />