取得要求ライン
- 要求取得方法
ストリングgetMethod()を
System.out.println(request.getMethod());
コンソールの結果:
- リソース取得要求
1.String getRequestURL()
System.out.println(request.getRequestURL());
コンソールの結果:
2.String getRequestURI()
System.out.println(request.getRequestURI());
コンソールの結果:
- アプリケーション名を取得します。
System.out.println(request.getContextPath());
- ゲットするクエリパラメータ
System.out.println(request.getQueryString());
コンソールの結果:
取得要求ヘッダ
- すべてのリクエストヘッダー名を取得します。
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
System.out.println(headerNames.nextElement());
}
- ヘッダ情報を取得します
System.out.println(request.getHeader("accept"));
コンソールは、結果を印刷します:
- すべてのリクエストヘッダとリクエストヘッダの内容を印刷
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
String s = headerNames.nextElement();
String s1 = request.getHeader(s);
System.out.println(s+":"+s1);
}
コンソールは、結果を印刷します:
- リファラは
私に各地からどのサーバーページへのリンクを教えて
System.out.println(request.getHeader("referer"));
注:
以下の方法を取得するリクエストを送信します:
- 直接<HREF = ""
- 送信またはフォームを送信(POSTまたはGET)
- JavaScriptでフォーム(POSTまたはGET)を提出しました
次の方法でませんリファラ:
- お気に入りリンクから
- Homeまたはカスタムアドレスをクリックしてください
取得要求ボディ
- 値を取得します
request.getParameter("name");
- 複数の値を取得し、配列が返されます。
String[] parameterValues = request.getParameterValues("hobby");
- すべてのリクエストパラメータ名を取得し、それが列挙を返します。
Enumeration<String> parameterNames = request.getParameterNames();
- すべてのリクエストパラメータを取得します。
Map<String, String[]> parameterMap = request.getParameterMap();
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
System.out.println(entry.getKey());
System.out.println(Arrays.toString(entry.getValue()));
}
中国の文字化けの問題を解決
- 道とポスト取得する方法を使用するときに
パラメータをあなたがどのデータベースの使用取得するために書き込まれる必要はありません送りました。
ポストを使用してデータベースに保存する必要が送信パラメータ。
ポストフォームデータのために提出一般的なデータ - 文字化けの原因
HTMLブラウザをコードUTF-8は、転送リクエストパラメータを使用したときに設定されますが、デコード時にISO8859-1が中国をサポートしていないデフォルトは、その文字化けで使用されています。 - 一般的なソリューションは
、対応するパラメータ、ISO8859-1バックによってビットを取得し、その後、UTF-8形式の文字列に変換され、問題がある、各パラメータのビットが反転されなければならないし、次に文字列に変換しました。
str = new String(str.getBytes("ISO8859-1"),"utf-8");
- 中国を解決するためのリクエストメソッドは文字化け:のみのポストに適用されます
request.setCharacterEncoding("utf-8");
要求の転送
違いによって転送された要求をリダイレクトします:
- リダイレクト:2つの要求をした、ブラウザを伝える、応答を設定することで、ブラウザはservlet2を聞かせて要求を送信する、にservlet1を見つけ、アドレスバーが変更されます。
- リクエストフォワード:にservlet1を見つけるために、直接、一度だけ送信する転送要求、直接にservlet1 servlet2に転送、ブラウザに指示しないは、唯一の要求、まだにservlet1あるブラウザのアドレスバーに、送信、変更されません。
フォワードを実現します:
- するRequestDispatcher、トランスポンダリターンを通じて要求オブジェクトを取得
getRequestDispatcherオブジェクトのWEB-INFディレクトリの内容も表示されています。 - 転送のリピータ、リピータコールフォワード方式を経由して転送。
RequestDispatcher dispatcher = request.getRequestDispatcher("/Servlet5");
dispatcher.forward(request,response);
リクエストフィールドオブジェクト:
要求を処理するには、要求が共有されています。サーブレットのセットの中のパラメータは、サーブレットは、同じが取り出され、別のものに転送されます。
ライフサイクル:
- 作成:オブジェクトが要求を送信する要求を作成します。
- 破壊:リクエストの終わりには、ブラウザが破壊され、応答を与えます。
- 範囲:最初にそれらを要求します。
クライアントのアドレスとサーバー側のアドレス
- クライアントのアドレスの
アドレス、サーバアドレス、外部クライアントアクセスサーバーは、Webアプリケーション/アプリケーション名/リソースの名前を書いている時点で、書き込みに使用します。 - サーバーアドレスの
アドレスは、Webアプリケーション名/リソース名を記述する必要はありません、社内のサービスを使用していました。