0

次のようなパラメーターの数を持つ非常に長いURLがあります

http://localhost:8080/BUUK/dbcc?dssin=9371062001&roundid=JS&KIPL=02&PLATFORM=1&FREQUENCY=2&DRBEARER=1&BUYTYPE=1&EUP=12&TID=72123456435653654&SHORTCODE=54300&ADCODE=234rfdfsf&Buytag=3&Checkpoint=5,6,7&CHARGEMODEL=complete&restbalance=1

この URL からすべてのパラメータを取得したい。

使えるか心配だったrequest.getParamter("restbalance");

必要に応じて、さらに情報を提供します。ありがとう

4

5 に答える 5

1

あなたが扱っているなら、HttpServletRequestあなたは使うことができます

String restbalance = request.getParameter("restbalance");

または...すべてのパラメーターを取得するには、次のようにします。

String[] params = request.getParameterValues();

このクラスのjavadocにはHttpServletRequest、使用可能なすべてのメソッドがリストされています。

于 2013-07-30T11:49:53.503 に答える
0

ええと、リクエスト パラメータを取得したい場所からサーブレットにヒットしrequest.getparameter()た場合にのみ正常に動作します。目的に関連するすべてのメソッドについては、ドキュメントのServletRequestインターフェイスを参照してください。request

  1. getParameter();

  2. getParameterNames();

  3. getParameterValues();

  4. getParameterMap();

カスタム解析にHttpServletRequest#getQueryString()を使用することもできます。

通常の Java コードの場合、URL.getQuery()によって返された文字列を自分で解析してデータを抽出できます。

于 2013-07-30T11:52:07.003 に答える
0

はい、request が HttpServletRequest のオブジェクトである request.getParameter を使用できます。

javadocs getParameterから

java.lang.String getParameter(java.lang.String name) リクエスト パラメータの値を文字列として返すか、パラメータが存在しない場合は null を返します。リクエスト パラメータは、リクエストとともに送信される追加情報です。HTTP サーブレットの場合、パラメーターはクエリ文字列または投稿されたフォーム データに含まれます。このメソッドは、パラメーターの値が 1 つだけであることが確実な場合にのみ使用してください。パラメータに複数の値がある可能性がある場合は、getParameterValues(java.lang.String) を使用します。

このメソッドを多値パラメータとともに使用すると、返される値は、getParameterValues によって返される配列の最初の値と等しくなります。

HTTP POST リクエストで発生するように、パラメータ データがリクエスト ボディで送信された場合、getInputStream() または getReader() を介してボディを直接読み取ると、このメソッドの実行が妨げられる可能性があります。

于 2013-07-30T11:48:40.263 に答える
0

試すgetParameterMap()

Map params = request.getParameterMap();
Iterator i = params.keySet().iterator();
while ( i.hasNext() )

{

String key = (String) i.next();

String value = ((String[]) params.get( key ))[ 0 ];

}
于 2013-07-30T11:50:27.457 に答える