博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet 远程服务IO流传输数据
阅读量:5261 次
发布时间:2019-06-14

本文共 2936 字,大约阅读时间需要 9 分钟。

在项目中,不同的两个服务器如果存在相互传输数据的时候,如果一般用HTTP-URL传输的话,要考虑很多问题,而且URL的get方法不能传输过多的数据。

出于安全和业务方面的考虑,服务器之间、客户端和服务器之间使用IO流来传输数据不失为一种很好的解决方案。也不用过多考虑出现乱码的问题等。
而在绝大多数时候,我们涉及的是较大规模的数据交换和敏感信息加密等,使用带参数的格式显然不能满足我们的要求,这就涉及了不同Web主机上的Servlet之间数据对象的相互传输的问题。
基于JSON 的数据传输技术(发送并接收)

1         String jsonStr="{'user':'user1','password':'16468498498'}"; 2         String ecod=null; 3         //加密 4         try { 5             ecod = Des3.encode(jsonStr); 6         } catch (Exception e1) { 7             e1.printStackTrace(); 8         } 9 10         try {11             12             13             URL url = new URL("http://www.testService.com/data.action"); 14             HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); 15             urlConn.setDoOutput(true);16             urlConn.setDoInput(true);17             urlConn.setUseCaches(false);  18             urlConn.setRequestProperty("Content-type","application/x-java-serialized-object");  19             urlConn.setRequestMethod("POST");  20             urlConn.connect();  21             OutputStream outStrm = urlConn.getOutputStream();  22             outStrm.write(ecod.getBytes()); 23             outStrm.flush();24             outStrm.close();25         }26         27         //接收到的返回数据 已加密(使用特定的密钥)28         InputStream i = urlConn.getInputStream(); 29         BufferedReader in = new BufferedReader(new InputStreamReader(i));30         StringBuffer buffer = new StringBuffer();31         String line = "";32         while ((line = in.readLine()) != null){33               buffer.append(line);34         }35         line = buffer.toString();36         System.out.println(line);

基于JSON 的数据传输技术处理并返回

1     public void doPost(HttpServletRequest request, HttpServletResponse response) 2             throws ServletException, IOException { 3  4          5         request.setCharacterEncoding("UTF-8"); 6         String dcod = null; 7         InputStream i = request.getInputStream(); 8         BufferedReader in = new BufferedReader(new InputStreamReader(i)); 9         StringBuffer buffer = new StringBuffer();10         String line = "";11             while ((line = in.readLine()) != null){12                   buffer.append(line);13             }14             dcod = buffer.toString();15             String s = null;16             if(dcod!=null){17             18                 try {19                 //解密    20                 s = Des3.decode(dcod);21                 } catch (Exception e) {22                 23                 e.printStackTrace();24              }25             }26 27             ActionMap amp= (ActionMap) JsonUtil.getDtoFromJsonObjStr(s,ActionMap.class);//将json数据转换成对象28             /***这里是业务逻辑处理***/29         OutputStream ooo = response.getOutputStream();30         31         //返回数据32         ooo.write(result.getBytes());33         ooo.flush();34         ooo.close();35 36     }

 

 

 

转载于:https://www.cnblogs.com/molao-doing/articles/3665881.html

你可能感兴趣的文章
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>
Linux pipe函数
查看>>
java equals 小记
查看>>
爬虫-通用代码框架
查看>>
2019春 软件工程实践 助教总结
查看>>
YUV 格式的视频呈现
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>