2017-01-12 12 views
-1

こんにちは私はサーブレットの初心者で、javascriptからajaxを使用してサーブレットにオブジェクトを送信しようとしています。 javascriptコードは次のようになります。
ajaxからjsonデータを送信してサーブレットで解析します

$.ajax({ 
     url:'GetUserServlet', 
     contentType: "application/json", 
     data: JSON.stringify(response), 
     type:'post', 
     cache:false, 
     success:function(data){ 
     //alert(data); 
     $('#somediv').text("user info sent successfully"); 
     }, 
     error:function(){ 
      $('#somediv').text("some error occured"); 
     } 
    } 

);

ここで、レスポンスはfacebook apiから受け取ったオブジェクトです。これは、次のとおりです。

reponse={ first_name: "Jhon", last_name: "Doe", id: "19862217575855" } 

GetUserServletdoPost方法は次のように定義されています

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
Gson gson = new Gson(); 
    User user = gson.fromJson(request.getParameter(response), User.class); 
    System.out.println(user); 
} 

User.classfirst_namelast_nameid

のためにゲッターとセッターを含む別のクラスである。しかしプログラムが取得されていませんコンパイルされた。私は多くの構文変更を使用しましたが、正しい値を見つけることができません。サーブレット内でresponseオブジェクトを取得するにはどうすればよいですか?

答えて

0
 // 1. get received JSON data from request 
     BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream())); 
     String json = ""; 
     if(br != null){ 
      json = br.readLine(); 
     } 

     // 2. initiate jackson mapper 
     ObjectMapper mapper = new ObjectMapper(); 

     // 3. Convert received JSON to User 
     User user = mapper.readValue(json, User.class); 

     // 4. Set response type to JSON 
     response.setContentType("application/json");    

     System.out.println("..user.." + user); 
関連する問題