【问题标题】:send json data from ajax and parse in servlet从ajax发送json数据并在servlet中解析
【发布时间】:2017-05-28 06:16:03
【问题描述】:

您好,我是 servlet 的新手,正在尝试使用 ajax 将对象从 javascript 发送到 servlet。 javascript 代码如下所示:

$.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.class 是另一个包含 first_namelast_nameid 的 getter 和 setter 的类

但是程序没有被编译。我使用了许多语法更改,但找不到正确的值。如何在 servlet 中获取 response 对象?

【问题讨论】:

    标签: javascript json ajax servlets


    【解决方案1】:
            // 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-05
      • 2020-10-18
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      相关资源
      最近更新 更多