精华内容
下载资源
问答
  • servlet获取json的小例子

    热门讨论 2011-11-07 12:58:46
    servlet获取json的小例子
  • $.ajax({ url:"log", type:'post', contentType: 'application/json', data: JSON.stringify(list), success:function(res){ console.log(res); alert(res); } }); }) script> body> html> 三、工具类 package ...

    一、jar包准备

    jar: fastJson / gson

    二、前端代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <button id="btn">click</button>
    <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
     <script type="text/javascript">
     
     $("#btn").click(function(){
    	 
    	 var list = {"list":[{name:'sf',age:'fs'}]};
    	 $.ajax({
    		url:"log",
    		
    		type:'post',
    		contentType: 'application/json',
    		data: JSON.stringify(list),
    		success:function(res){
    			console.log(res);
    			alert(res);
    		}
    	 });
     })
     </script>
    </body>
    </html>
    

    三、工具类

    package com.qst.until;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    import javax.servlet.ServletInputStream;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    
    public class JsonUtils {
    	
    
    	 public  static JSONArray getJson(InputStreamReader req) {
    		 
    			JSONObject json = new JSONObject();
    			 JSONArray list = new JSONArray();
    		        BufferedReader br;
    		        String jsonStr = null;
    		        String jsonStr2 = null;
    		        try {
    		            br = new BufferedReader(req);
    		            String line = null;
    		            StringBuilder sb = new StringBuilder();
    
    		            while ((line = br.readLine()) != null) {
    		                sb.append(line);
    		            }
    		            json= JSONObject.parseObject(sb.toString());
    		            jsonStr = JSONObject.toJSONString(json);
    		            list = json.getJSONArray("list");
    		            jsonStr2 = JSONArray.toJSONString(list);
    		        } catch (IOException e) {
    		            e.printStackTrace();
    		        }
    		        return list;
    		        
    	 }
    
    }
    
    

    四、servlet代码

    package com.qst.servlet;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletInputStream;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    import com.google.gson.JsonObject;
    import com.qst.until.JsonUtils;
    
    @WebServlet("/log")
    public class log extends HttpServlet {
    
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		doGet(req, resp);
    
    	}
    
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		req.setCharacterEncoding("utf-8");
    		resp.setCharacterEncoding("utf-8");
    		resp.setContentType("text/html;charset=UTF-8");
    		String name = null;
    
    		InputStreamReader reader = new InputStreamReader((ServletInputStream) req.getInputStream());
    
    		JSONArray list = JsonUtils.getJson(reader);
    
    		System.out.println("list===============");
    		System.out.println(list);
    		System.out.println("逐个取出===============");
    		for (int i = 0; i < list.size(); i++) {
    			JSONObject object = (JSONObject) list.get(i);
    			System.out.println("name" + object.getString("name") + "age" + object.getString("age"));
    			name = object.getString("name");
    		}
    
    		resp.getWriter().write(name);
    	}
    
    }
    
    

    在这里插入图片描述

    展开全文
  • servlet 接收json数据并响应

    万次阅读 2018-07-28 11:11:16
    客户端发送json数据servlet服务端 /*HttpClient.java*/ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io....

    客户端发送json数据给servlet服务端

    /*HttpClient.java*/
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import net.sf.json.JSONObject;
    public class HttpClient {
    	public HttpClient(){
    	}
        public static String doPost(String httpUrl, String param) {
            HttpURLConnection connection = null;
            InputStream is = null;
            OutputStream os = null;
            BufferedReader br = null;
            String result = null;
            try {
                URL url = new URL(httpUrl);
                // 通过远程url连接对象打开连接
                connection = (HttpURLConnection) url.openConnection();
                // 设置连接请求方式
                connection.setRequestMethod("POST");
                // 设置连接主机服务器超时时间:15000毫秒
                connection.setConnectTimeout(15000);
                // 设置读取主机服务器返回数据超时时间:60000毫秒
                connection.setReadTimeout(60000);
                // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
                connection.setDoOutput(true);
                // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
                connection.setDoInput(true);
                // 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                // 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
                connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
                // 通过连接对象获取一个输出流
                os = connection.getOutputStream();
                // 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
                os.write(param.getBytes());
                // 通过连接对象获取一个输入流,向远程读取
                if (connection.getResponseCode() == 200) {
    
                    is = connection.getInputStream();
                    // 对输入流对象进行包装:charset根据工作项目组的要求来设置
                    br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
    
                    StringBuffer sbf = new StringBuffer();
                    String temp = null;
                    // 循环遍历一行一行读取数据
                    while ((temp = br.readLine()) != null) {
                        sbf.append(temp);
                        sbf.append("\r\n");
                    }
                    result = sbf.toString();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (null != br) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != os) {
                    try {
                        os.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (null != is) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                // 断开与远程地址url的连接
                connection.disconnect();
            }
            return result;
        }
        public static String test(String url){
        	String result=null;
        	JSONObject json = new JSONObject();
        	json.put("comm", "comm");
        	json.put("stu", "stu");
        	System.out.println("请求的json数据:\n"+json.toString());
        	result=HttpClient.doPost(url, json.toString());
    		System.out.println("响应返回的json数据:\n"+result);
            return result;
        } 
    }
    
    
    
    

    服务端接收请求并相应回去

    /*HttpServer.java*/
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import data.ResponseData;
    import data.Student;
    import net.sf.json.JSONObject;
    import service.Service;
    import service.ServiceImpl;
    @WebServlet("/HttpServer")
    public class HttpServer extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        public HttpServer() {
            super();
        }
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doPost(request, response);
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		response.setHeader("content-type","text/html;charset=UTF-8");
    		response.setHeader("Access-Control-Allow-Origin", "*");
    		/* 星号表示所有的异域请求都可以接受, */
    		response.setHeader("Access-Control-Allow-Methods", "GET,POST");
    		PrintWriter out=response.getWriter();
    		// 读取请求内容
    		BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
    		String line = null;
    		StringBuilder sb = new StringBuilder();
    		while ((line = br.readLine()) != null) {
    			sb.append(line);
    		}
    		//将json字符串转换为json对象
    		JSONObject json=JSONObject.fromObject(sb.toString());
    		//将数据转化为java对象,注:之前客户端是封装了两个数据(stu,comm),所以处理时
            //需要对其转换
    		Student stu=(Student) JSONObject.toBean((JSONObject) json.get("stu"), Student.class);
    		System.out.println(stu.toString());
    		Comm comm=(Comm) JSONObject.toBean((JSONObject) json.get("comm"), Comm.class);
    		
    		//数据处理,数据库连接方面,用来响应消息
    		Service service=new ServiceImpl();
    		ResponseData responseData=service.getStuInfo(stu);
    		//ResponseData responseData=Data.getStuInfo(stu);
    		
    	    JSONObject newJson=new JSONObject();
    	    newJson.put("comm", json.get("comm"));
    	    newJson.put("data", responseData);
    	    out.write(newJson.toString());
    	    System.out.println(newJson.toString());
    	}
    }
    
    
    
    

    展开全文
  • 前后端对接后端部分。post方式接受前端传递的json数据,在postman亲测可用,未完待续!如有错误尽请指正!

    关与作者更多博客请访问云里云外开源社区

    一、postman使用post方式接受json数据

    先在Headers设置请求头。Content-Type —— application/json
    在这里插入图片描述在Body使用raw方式添加json字符串。如果还有其他需要也可以在Params添加数据

    在这里插入图片描述

    二、后台接受json数据的两种方式(未完待续)

    第一种

    BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
            String body = IOUtils.read(reader);
            out.write(body);
    

    在这段代码doPost方法中,用到了IO流来获取post提交的body,这样我们就获取了客户端提交的参数。
    需要注意的是:获取body参数,需要在request.getParameter()方法之前调用(如果有需要取QueryString参数的话)
    另外,这里使用了dubbo-2.5.3.jar的IOUtils.read(reader)方法来读取post body的内容。
    百度网盘下载
    https://pan.baidu.com/s/1zOknknDQQJBVejTmRvcdeQ

    第二种

    BufferedReader br = request.getReader();
            String str = "";
            String listString = "";
            while ((str = br.readLine()) != null) {
                listString += str;
            }
            out.println(listString );
    

    具体哪种效果更好,我也正在测试。仅供参考!

    展开全文
  • jQuery 向 servlet 发送和接受JSON数据

    万次阅读 2016-05-05 11:24:49
    (⊙o⊙)…文章关于jQuery 向 后台发送和接收JSON数据的 某些代码,应该有很多方式其他我还没用过。 一、发送JSON格式的数据 ★注意要用到 jquery.json 的 js文件。下载地址:http://code.google.com/p/jquery-json/ ...

    吐舌头(⊙o⊙)…文章关于jQuery 向 后台发送和接收JSON数据的 某些代码,应该有很多方式其他我还没用过。

    一、发送和接收JSON格式的数据

    ★注意要用到 jquery.json 的 js文件。下载地址:http://code.google.com/p/jquery-json/

          

     上图粗略解释:  1. $.toJSON() 方法是 jquery.json.js里面的方法,应该是序列化JSON对象。

                                  2.我这里用的是$.ajax()方法,具体的参数及相关的返回值类型参照这个$.ajax()方法详解的博客,地址如下:

                                   http://www.cnblogs.com/tylerdonet/p/3520862.html

                                   谢谢这个博主为我们详列了这些内容。

                                  3.至于为什么用complete,具体参照上面地址给出的博客的参数及返回值类型作自我思考。

                                  4. eval() 函数将传回来的json数据转换成JSON的对象,具体从后台发回来的参数看下部分。

                                  5.(⊙o⊙)哦,error 参数我没认真弄,所以上图最后部分的error参数不要我的。


    二、在servlet接收JSON数据



    上图粗略解释:1.利用流接收传过来的数据,这里用的是字符流,你也可以用字节流。

                                2.JSONObject.fromObject() 方法的参数是String类型参数,所以用 toString()方法(⊙o⊙)。



    三、serlvet发送JSON数据回前端



    ★此文仅供参考,我也是从很多人那里参考过来的,经验总结:百度搜索引擎挺坑的。

    展开全文
  • servlet接收以JSON传输的数据

    千次阅读 2019-05-23 22:11:23
    这两天着手接口对接的事情,接口采用上一篇帖子中的方法进行post请求,数据json形式进行传输,本文即对上篇文章中的传输方式进行数据接收。 protected void doPost(HttpServletRequest request, ...
  • 1、出现postman使用post请求传递json数据时,接收的数据全部为null。 2、代码执行完成,没有报错且数据成功插入数据库,但是浏览器却出现如下错误 (No ‘Access-Control-Allow-Origin’ header is present on the...
  • Servlet解析JSON数据和发送JSON数据

    万次阅读 2017-03-16 13:11:12
    package com.qst.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException;...import javax.servlet.http.HttpServletRe
  • servlet通过流接收第三方接口传送json数据
  • ajax接受servlet传送json数据中文乱码

    千次阅读 2017-07-24 22:44:36
    response.setCharacterEncoding("utf-8");  ServletOutputStream outputStream = response.getOutputStream();  outputStream.println("中文"); ...如果这样写的话,依旧会造成乱码 ...只需要把response....
  • servlet如何获取json数据

    千次阅读 2018-07-25 20:55:55
    // data: "para="+para, 此处data可以为 a=1&b=2类型的字符串 或 json数据。 data: { "name":"张三"; "age":18 }, cache: false, async : false, dataType: "json", success: ...
  • JAVA使用servlet接收json格式的方法

    千次阅读 2019-09-10 11:54:32
    JAVA中使用HttpServletRequest接收前台传入的参数,其中json的格式是[{“penalty”:“0.5”,“deductPointsItem”:“7”,“photoUrl”:“image%26quality=80%26size=b9999_10000%26sec=1563345441764%26di=f860a9dfb...
  • 最近在弄Security权限时遇到attemptAuthentication接口接收...像以往我们在Controller的时候处理json数据转换只需要标注@RequestBody注解即可. 有问题就要解决,打开debug找了一下request的字段内容,并没有发现我所需...
  • Servlet接收post请求的json数据

    千次阅读 2019-08-27 15:53:52
    Servlet接收post请求的json数据 InputStreamReader insr = new InputStreamReader(request.getInputStream(),"utf-8"); String result = ""; int respInt = insr.read(); while(respInt!=-1) ...
  • 后端servlet代码 ,返回json数组到前端 //查询出reader一条数据 Reader reader = readerService.getOneReader(reaReaderNum); PrintWriter out=resp.getWriter(); // List&lt;Reader&gt; readerList ...
  • servlet整合ajax接受和返回json数据 1.准备工作和前提条件 ide工具使用的是eclipse(自我感觉eclipse建普通的servlet的项目比idea简洁轻便) 使用tomcat版本是7 使用的servlet是2.5(建议使用这个版本,是xml配置版本) ...
  • 第一步:确认JSON格式 [ {"name":"张三","sex":"男","age":17}, {"name":"李四","sex":"男","age":18}, {"name":"王五","sex":"男","age":19} ] 需要注意的是,最后一个对象是没有逗号的 第二步:创建...
  • 我们在请求Servlet时,Servlet会将从数据库中查询到的数据封装成一个List数组,存储在request对象中,然后请求转发到另外一个页面,如以下代码使用request对象携带reportList转发到publication.jsp页面。 //1.将...
  • 1.servlet接收前端通过ajax传送的json字符串时是使用流的形式。 2,servlet将对象发送给前端也是以... * 定义一个实体对象用来封装json数据后台返回值 */ public class Resultdata { private Boolean flag; //...
  • 用POST方式也是,可以直接拿到值,虽然Post方式前面只有服务器地址,参数是在Body部分,java服务器依然可以request.getParameter("xxx")的...实际开发中,后台给的接口各式各样,现在遇到iOS客户端发送json格式数据,j
  • 后台用servlet拼接出json字符串,前台用ajax接收,datatype设为text/html能顺利取到字符串,但是datatype改为json后ajax响应错误 String json="{"; json+="'userName':'tiny',"; json+="'userNo':'123'}"; ...
  • 已经纠结了一天,帮帮忙,越详细越好,已经实现从servlet中获取json格式的数据,那么,在servlet如何获取ajax中以json格式传入的数据
  • Servlet处理JSON字符串传输问题

    千次阅读 2018-07-08 11:02:00
    然后同学告诉我是因为json数据是通过request body(请求体)传送的,而request.getParameter()只能获取request head(请求头)中的数据,所以原来的方法无效。 2、Java解析json问题 2.1 实现方法 放弃...
  • 1.原生AJAX代码 get请求: //创建xhr,IE低版本不支持 ...//servlet地址 var url="/Website01/index.view"; xhr.open("get", url, true); //xhr处理事件,异步 xhr.onreadystatechange = function() { if ...
  • // 遍历 jsonarray 数组,把每一个对象转成 json 对象 JSONObject job = json.getJSONObject(i); // 得到 每个对象中的属性值 System. out .println(job. get ( "name" )+ "=" ) ; } System. out ....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,660
精华内容 7,464
关键字:

servlet接受json数据