JSPクライアント要求

ブラウザがページを要求すると、それは、一連の情報を送信するHTTPヘッダー情報の一部としてこの情報を送信するために、ウェブサーバに直接読み込むことができません。 あなたはより多くの情報を取得するためにHTTPプロトコルを確認することができます。

次の表は、ブラウザのヘッダーの重要な内容の一部を示し、ネットワークプログラミングの後、あなたは、多くの場合、この情報が表示されます。

情報 説明
受け入れます ブラウザまたは扱うことができる他のクライアントのMIMEタイプを指定します。 その値は、通常、 画像/ PNGまたは画像/ jpegのです
受け入れ、文字セット ブラウザを使用する文字セットを指定します。 たとえば、ISO-8859-1
受け入れエンコード エンコードの種類を指定します。 その値は、通常、gzip圧縮されています
Accept-Language クライアントの優先言語を指定して、サーブレットは、サーブレットは、この言語の単語をサポートしている場合、憲法の現在の言語に結果セットを返すために優先させます。 例えばアン、EN-US、RUなど
承認 別のユーザーがパスワードで保護されたWebページへのアクセスを特定します
接続 これは、クライアントがHTTPの永続的接続を処理できるかどうかを示します。 永続的な接続は、クライアントまたはブラウザが単一の要求で複数のファイルを取り込むことができます。 キープアライブは、永続的な接続を可能に示しています
コンテンツ長 POSTリクエストのみ、データPOSTのバイト数
クッキー 以前にサーバーにブラウザのクッキーに送信された戻り値
ホスト ホスト名とポート番号の元のURLと指摘
変更 - 開始 ページがクライアントにのみ、このウェブサイトを必要と指定した日付に変更された場合にのみ表示します。 サーバーには更新されたリソースが存在しないことをクライアント304ヤードを送信します
もし、変更されていない、ので、 変更された-以来場合は、逆に、唯一のドキュメントが指定した日付以降に変更されていないと、操作は成功します
リファラー 参照することによってマークされたページのURL。 あなたが1ページである場合たとえば、その後、そのページのURL 1がブラウザに含まれる2ページへのリンクは、ページヘッダ2を要求します
ユーザーエージェント これは、クライアントによって送信された異なるブラウザまたは要求を区別するために使用され、ブラウザの異なるタイプの異なるコンテンツを返すこと

HttpServletRequestのクラス

javax.servlet.http.HttpServletRequest requestオブジェクトがクラスのインスタンスです。 クライアントがページを要求するたびに、JSPエンジンは、要求を表す新しいオブジェクトを生成します。

requestオブジェクトがようにフォームデータ、クッキー、HTTPメソッド、およびを含むHTTPヘッダー情報を取得するために一連の方法を提供します。

次は、JSPプログラミング方法でいくつかの共通のGet HTTPヘッダをご紹介します。 詳細については、下記の表を参照してください。

いいえ。 メソッド 説明
1 クッキー[] getCookies()

クライアントのクッキーのすべての配列を返します
2 列挙getAttributeNames()

リクエスト・オブジェクト名のすべてのプロパティのコレクションを返します
3 列挙getHeaderNames()

HTTPヘッダーのすべての名前のコレクションを返します
4 列挙getParameterNamesメソッド()

要求のすべてのパラメータのコレクションを返します
5 HttpSessionののgetSession()

戻り値は、対応するセッションオブジェクトを要求し、そうでない場合は、作成します
6 HttpSessionののgetSession(boolean型を作成します)

戻り値は、パラメータなしの場合は、対応するセッションオブジェクトを要求し、作成trueで、新しいセッションオブジェクトを返します。
7 ロケールのgetLocale()

リターンこのページロケールオブジェクトは、応答して提供されてもよいです
8 オブジェクトのgetAttribute(文字列名)

属性値名の名前を返し、ノーリターンのヌルが存在しない場合。
9 ServletInputStreamのgetInputStream()

入力ストリームの要求を返します。
10 文字列getAuthType()

このような「BASIC」または「SSL」またはnullなし保護措置JSPかのように、サーブレットを保護するために使用される認証方式の名前を返します
11 文字列getCharacterEncoding()

リクエスト文字エンコーディングセット名を返します。
12 文字列のgetContentType()

知られていない場合は、MIMEの主な要求のタイプ、またはnullを返します。
13 文字列getContextPath()

リクエストURIで指定されたコンテキストパスを返します。
14 文字列のgetHeader(文字列名)

メッセージヘッダに指定された名前を返します。
15 文字列getMethod()メソッド

このようなGET ,, POST、またはPUTのように、HTTPリクエストメソッドを返します。
16 文字列のgetParameter(ストリング名)

ていないが存在する場合、リクエストパラメータ名指定、またはnullを返します
17 文字列getPathInfo()

この要求に関連付けられた任意の余分なパスのURLを返します。
18 文字列getProtocol()

この要求によって使用されるプロトコルの名前とバージョンを返します。
19 文字列getQueryString()

これは、URLが含まれているクエリ文字列要求を返します。
20 文字列getRemoteAddr()

クライアントのIPアドレスを返します。
21 文字列getRemoteHost()

クライアントの完全な名前を返します。
22 文字列はgetRemoteUser()

ユーザーが認証されない場合、ユーザログイン認証を介してクライアントに返された場合はnull
23 文字列getRequestURI()

リクエストURIを返します。
24 文字列getRequestedSessionId()

指定されたセッションID要求を返します。
25 文字列getServletPath()

要求されたバックサーブレットパス
26 String []型getParameterValues(文字列名)

戻り値のパラメータは、すべての値の名前を指定する、またはnullでない場合が存在します
27 ブール値のisSecure()

リクエストがHTTPSなど、チャネルを暗号化するかどうかを返します
28 int型getContentLength()

リクエストボディに含まれるバイト数を返し、不明な場合は-1となり
29 int型getIntHeader(文字列名)

戻り値は、リクエストヘッダの名前を指定します
30 int型getServerPort()

サーバーのポート番号を返します。

HTTPヘッダーの例

この例では、HTTPヘッダーを読み取ることgetHeaderNamesのHttpServletRequestクラス()メソッドを使用します。 このメソッドは、現在のHTTPリクエストのヘッダー情報の列挙を返します。

Enumerationオブジェクトを取得した後、標準的な方法は、Enumerationオブジェクトを横断する、hasMoreElements()メソッドは、各パラメータの名前を取得するにはnextElement()メソッドの使用を停止するかを決定します。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>本教程(w3write.com)</title>
</head>
<body>
<h2>HTTP 头部请求实例</h2>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>Header Name</th><th>Header Value(s)</th>
</tr>
<%
   Enumeration headerNames = request.getHeaderNames();
   while(headerNames.hasMoreElements()) {
      String paramName = (String)headerNames.nextElement();
      out.print("<tr><td>" + paramName + "</td>\n");
      String paramValue = request.getHeader(paramName);
      out.println("<td> " + paramValue + "</td></tr>\n");
   }
%>
</table>
</body>
</html>

アクセスmain.jspは、以下の結果が得られます:

あなたは上記のコードでのHttpServletRequestクラスの他の方法を試すことができます。