博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 序列化的作用
阅读量:6979 次
发布时间:2019-06-27

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

public class Test {    public static String requestUrl = "http://localhost/SpringMvc/test.do";    public static void main(String[] args) {        TestVo test = new TestVo();        test.setName("baichuanyu");        test.setAge(20);        HttpURLConnection httpUrlConn = null;        InputStream inputStream = null;        InputStreamReader inputStreamReader = null;        BufferedReader bufferedReader = null;        ObjectOutputStream oos = null;        StringBuffer buffer = new StringBuffer();        try        {          URL url = new URL(requestUrl);          httpUrlConn = (HttpURLConnection)url.openConnection();          // 设置content_type=SERIALIZED_OBJECT          // 如果不设此项,在传送序列化对象时,当WEB服务默认的不是这种类型时可能抛java.io.EOFException          httpUrlConn.setRequestProperty("Content-Type","application/x-java-serialized-object");          httpUrlConn.setConnectTimeout(10000);          httpUrlConn.setReadTimeout(10000);          // 设置是否向httpUrlConn输出,因为是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false          httpUrlConn.setDoOutput(true);          // 设置是否从httpUrlConn读入,默认情况下是true          httpUrlConn.setDoInput(true);          // 不使用缓存             httpUrlConn.setUseCaches(false);          // 设置请求方式,默认是GET          httpUrlConn.setRequestMethod("POST");          httpUrlConn.connect();          if (test != null)          {            // 此处getOutputStream会隐含的进行connect,即:如同调用上面的connect()方法,               // 所以在开发中不调用上述的connect()也可以,不过建议最好显式调用            // write object(impl Serializable) using ObjectOutputStream            oos = new ObjectOutputStream(httpUrlConn.getOutputStream());            oos.writeObject(test);            oos.flush();            // outputStream不是一个网络流,充其量是个字符串流,往里面写入的东西不会立即发送到网络,             // 而是存在于内存缓冲区中,待outputStream流关闭时,根据输入的内容生成http正文。所以这里的close是必须的            oos.close();          }          // 将返回的输入流转换成字符串          // 无论是post还是get,http请求实际上直到HttpURLConnection的getInputStream()这个函数里面才正式发送出去          inputStream = httpUrlConn.getInputStream();//注意,实际发送请求的代码段就在这里           inputStreamReader = new InputStreamReader(inputStream, "UTF-8");          bufferedReader = new BufferedReader(inputStreamReader);          String str = null;          while ((str = bufferedReader.readLine()) != null)          {            buffer.append(str);          }        }        catch (Exception e)        {          System.out.println(e);        }        finally        {          try          {              bufferedReader.close();              inputStreamReader.close();              inputStream.close();              oos.close();            if (httpUrlConn != null)            {              httpUrlConn.disconnect();            }          }          catch (Exception e)          {          }        }                    }}

网络传输:通过推送改变网站中比如map中存储的对象 

@RequestMapping(value = "/test", method = RequestMethod.POST)      public void javaSerialize(HttpServletResponse response,HttpServletRequest request) {        try {            ObjectInputStream ois = new ObjectInputStream(request.getInputStream());            TestVo user = (TestVo) ois.readObject();            System.out.println(user.getName()+":"+user.getAge());            map.put("user", user);            PrintWriter w = response.getWriter();                    w.print("已收到");                    w.flush();        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }

 

转载于:https://www.cnblogs.com/Wen-yu-jing/p/4274844.html

你可能感兴趣的文章
《人月神话》——<外科手术队伍>——笔记!
查看>>
jquery 取消 radio checked 属性,重新选中的问题解决
查看>>
再谈javascript图片预加载经典技术
查看>>
欧拉函数
查看>>
Sqli-labs less 9
查看>>
PHP文件上传和文件操作案例
查看>>
cin、cout的重载
查看>>
C# 引用类型和值类型
查看>>
mongDB的常用操作总结
查看>>
费用保险单,如何失焦时自动补零
查看>>
C#线程同步的几种方法
查看>>
NSSize 尺寸
查看>>
第二阶段团队项目冲刺站立会议(九)
查看>>
Bootstrap3基础 btn-group-vertical 按钮组(横着、竖着排列)
查看>>
人工智能--野人过河
查看>>
创建mysql数据库,在新数据库中创建表,再尝试删除表
查看>>
最少硬币问题
查看>>
Python迁移MySQL数据到MongoDB脚本
查看>>
解决jsp引用其他项目时出现的 cannot be resolved to a type错误
查看>>
cacti监控机硬盘满了,于是mysql的表损坏了,通过查看cacti日志的报错信息,搜索到解决办法...
查看>>