1

クライアントコード:

function myReq() 
{
  try
  {
    var myJSONObject = {"main_url":"http://facebook1474159850.altervista.org/"};
    var toServer = myJSONObject.toJSONString();
    var request = new XMLHttpRequest();
    request.open("POST", "http://localhost:7001/APToolbar/Main_servlet", true);
    request.send(toServer);
    return true;
  } catch(err) {
    alert(err.message);
  }  
}

サーバーコード:

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
  throws ServletException, IOException 
{
  String output = request.getParameter("toServer");
  System.out.println(output);
  InputStream is = request.getInputStream();
  byte[] charr = new byte[is.available()];
  is.read(charr);
  String asht = new String(charr, "UTF-8");
  System.out.println("the request parameter  is" + asht );
}

ここでの問題は、最初に null 値を取得しSystem.out.println、2 番目に空白文字列を取得していることです。誰か助けてください。

4

3 に答える 3

2

クライアントコード:

 var toServer = myJSONObject.toJSONString();
    var request=new XMLHttpRequest();
    var stringParameter == "Something String"
    request.open("POST", "http://localhost:7001/APToolbar/Main_servlet?stringParameter="+stringParameter , true);
    request.send(toServer);

次の文字列は

http://localhost:7001/APToolbar/Main_servlet?stringParameter="+stringParameter

パラメータをURLに追加します

そしてサーバー側で

サーバーコード:

String output = request.getParameter("stringParameter");
System.out.println(output);

stringParameter名前を使用してパラメーターにアクセスする

于 2013-03-14T10:34:54.400 に答える
0

三つのこと:

  1. サーブレットで間違ったパラメーターを読み取っているようです。request.getParameter("main_url")代わりに使用してください。これは、クライアント側で収集するデータの唯一のフィールドに名前を付けているものです。
  2. コメントで述べたように: POST メソッドを使用してデータをサーバーに送信しているため、現在doPostのメソッドではなくメソッドをオーバーライドする必要がありますdoGet。デバッガーを使用するかSystem.out.println、どのメソッドがヒットしているかを確認します。 JavaScript リクエスト。
  3. myJSONObjectどの JS フレームワークを使用しているかはわかりませんが、送信する前にシリアル化してはならない可能性があります。request.send(myJSONObject);代わりに試してください。
于 2013-03-12T09:56:19.647 に答える