HttpServletRequest オブジェクトはクライアントのリクエストを表します。クライアントが HTTP プロトコルを通じてサーバーにアクセスすると、HTTP リクエスト ヘッダー内のすべての情報がこのオブジェクトにカプセル化されます。
一般的なリクエスト方法:
1. クライアント環境情報を取得する一般的な方法:
1. getRequestURL メソッドは、クライアントがリクエストを行うと完全な URL を返します。
2. getRequestURI メソッドは、リクエスト行のリソース名部分を返します。
3. getQueryString メソッドは、リクエスト行のパラメータ部分を返します。
4. getRemoteAddr メソッドは、要求を行ったクライアントの IP アドレスを返します。
5. getRemoteHost メソッドは、要求を行ったクライアントの完全なホスト名を返します。
6. getRemotePort メソッドは、クライアントが使用するネットワーク ポート番号を返します。
7. getLocalAddr メソッドは、WEB サーバーの IP アドレスを返します。
8. getLocalName メソッドは、WEB サーバーのホスト名を返します。
9.getMethod はクライアントのリクエストメソッドを取得します。
次のようにコードをコピーします。
パッケージcom.yyz.request;
インポート java.io.IOException;
java.io.OutputStreamをインポートします。
インポート javax.servlet.ServletException;
インポート javax.servlet.http.HttpServlet;
インポート javax.servlet.http.HttpServletRequest;
インポート javax.servlet.http.HttpServletResponse;
パブリック クラス RequestDemo extends HttpServlet {
public void doGet(HttpServletRequest リクエスト、HttpServletResponse レスポンス)
ServletException、IOExceptionをスローします{
/**
※URLはURIのサブセットです。
※URIはリソースを識別するために使用されます。
※URLはインターネット上のリソースを識別するために使用されます。
*/
System.out.println(request.getRequestURL());//リクエストURLアドレスを取得する
System.out.println(request.getRequestURI());// 要求されたリソースを取得します
System.out.println(request.getQueryString());
System.out.println(request.getRemoteAddr());//訪問者のIPを取得する
System.out.println(request.getRemoteHost());
//DNS に登録されていないため、印刷結果は 127.0.0.1 のままです。Baidu がこのプログラムにアクセスした場合、www.baidu.com を印刷します。
System.out.println(request.getRemotePort());// 要求されたリソースを取得します
System.out.println(request.getMethod());// 要求されたリソースを取得する
}
public void doPost(HttpServletRequest リクエスト、HttpServletResponse レスポンス)
ServletException、IOExceptionをスローします{
doGet(リクエスト, レスポンス);
}
}
ブラウザのアドレス バーに http://localhost:8080/test/servlet/RequestDemo と入力すると、バックグラウンド出力は次のようになります。
2. クライアント要求ヘッダーを取得します。
1.getHeader(文字列名)メソッド
2.getHeaders(文字列名)メソッド
3.getHeaderNames()メソッド
次のようにコードをコピーします。
パッケージcom.yyz.request;
インポート java.io.IOException;
java.util.Enumeration をインポートします。
インポート javax.servlet.ServletException;
インポート javax.servlet.http.HttpServlet;
インポート javax.servlet.http.HttpServletRequest;
インポート javax.servlet.http.HttpServletResponse;
//リクエストヘッダーを取得する
パブリック クラス RequestDemo extends HttpServlet {
public void doGet(HttpServletRequest リクエスト、HttpServletResponse レスポンス)
ServletException、IOExceptionをスローします{
文字列ヘッド = request.getHeader("Accept-Encoding");
//一部のブラウザは圧縮データをサポートしていません
if(head.contains("gzip")){
//圧縮データを出力する
}それ以外{
//非圧縮データを出力する
}
//指定された名前のヘッダーの値をすべて取得します
列挙体 e = request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
文字列値 = (文字列) e.nextElement();
System.out.println(値);
}
System.out.println("------------------------");
//すべてのヘッダーと値を取得します
e = request.getHeaderNames();
while(e.hasMoreElements()){
文字列名 = (String)e.nextElement();
文字列値 = request.getHeader(name);
System.out.println(名前+"="+値);
}
}
public void doPost(HttpServletRequest リクエスト、HttpServletResponse レスポンス)
ServletException、IOExceptionをスローします{
doGet(リクエスト, レスポンス);
}
}
ブラウザでプログラムにアクセスすると、バックグラウンド出力は次のようになります。
3. クライアント要求パラメーター (クライアントによって送信されたデータ) を取得します。
1.getParameter(name)メソッド
2.getParameterValues(文字列名)メソッド
3.getParameterNamesメソッド
4.getParameterMap メソッド。フレームワークを作成するときによく使用されます。
パッケージ com.yyz.request; インポート java.util.Enumeration; インポート javax.servlet.ServletException; .HttpServlet インポート javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; //リクエストデータを取得します public class RequestDemo extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse) throws ServletException, IOException { //http://localhost:8080/test/servlet/RequestDemo?名前=yyz 文字列値 = request.getParameter("名前"); System.out .println(value); //http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance String likes[] = request.getParameterValues("like"); ){ for(String like : likes){ System.out.println(like) } } // 以下は、この種のトラバーサルを記述する専門的な方法、配列データを取得する方法 (null ポインター例外を回避するため) for(int i=0;likes!=null&&i<likes.length;i++){ System.out .println(likes[ i]); } //すべての名前を取得し、名前に基づいて値を取得します。 Enumeration e = request.getParameterNames(); String name = (String) e.nextElement(); 値 = request.getParameter(name); System.out.println("----------- ---------"); //リクエスト オブジェクト内のデータをカプセル化するために使用される Map コレクションを取得します Map<String,String[]> map = request.getParameterMap(); for(Entry<String, String[ ] > 私:map.entrySet()){ 文字列名 = me.getKey(); String [] v = me.getValue(); System.out.println(name+"="+v[0]); } } public void doPost(HttpServletRequest 要求、HttpServletResponse 応答) は ServletException、IOException をスローします。 { doGet(リクエスト, レスポンス) } }