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();
}
}

java 序列化的作用的更多相关文章

  1. Java序列化的作用和反序列化

    1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但 ...

  2. JAVA序列化的作用

    所谓的Serializable,就是java提供的通用数据保存和读取的接口.至于从什么地方读出来和保存到哪里去都被隐藏在函数参数的背后了.这样子,任何类型只要实现了Serializable接口,就可以 ...

  3. Java序列化的几种方式以及序列化的作用

    Java序列化的几种方式以及序列化的作用 本文着重讲解一下Java序列化的相关内容. 如果对Java序列化感兴趣的同学可以研究一下. 一.Java序列化的作用    有的时候我们想要把一个Java对象 ...

  4. Java序列化的几种方式

    本文着重解说一下Java序列化的相关内容. 假设对Java序列化感兴趣的同学能够研究一下. 一.Java序列化的作用    有的时候我们想要把一个Java对象变成字节流的形式传出去,有的时候我们想要从 ...

  5. Java序列化接口的作用总结

    一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做”持久化”. 把堆内存中的对象的生命周期延长,存入硬盘,做持久化操作.当下次再需要这个对象的时候,我们不用new了,直接从硬盘中读取就可以了. ...

  6. (转)java 序列化ID的作用

    序列化ID的作用: 其实,这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的.在进行反序 ...

  7. Java序列化接口Serializable接口的作用总结

    一.Java序列化接口Serializable的作用: 一个对象有对应的一些属性,把这个对象保存在硬盘上的过程叫做”持久化”. 对象的默认序列化机制写入的内容是:对象的类,类签名,以及非瞬态和非静态字 ...

  8. java 序列化 serialVersionUID 的作用 和 两种添加方式

    serialVersionUID适用于Java的序列化机制.简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的.在进行反序列化时,JVM会把传来的字节流中的 ...

  9. 什么是Java序列化,如何实现Java序列化?或者请解释Serializable接口的作用?

    象序列化的目标是将对象保存到磁盘中,或允许在网络中直接传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久保存在磁盘上,通过网络将这种二进制流传输到另 ...

随机推荐

  1. SDWebImage源代码解析(一)

    一.概念 SDWebImage是一个开源的第三方库,它提供了UIImageView的一个分类.以支持从远程server下载并缓存图片的功能. 二.优势 自从iOS5.0開始.NSURLCache也能够 ...

  2. 常用sql语句记录

    1.表 --建表 if OBJECT_ID('Student') is not null create table Student( ID ,) not null, Name ), Code ), f ...

  3. 在Telerik for silverlight控件radtreeview中如何通过路径得到节点(转载)

    页面<telerik:RadTreeView Margin="8" x:Name="radTreeView" SelectionChanged=" ...

  4. Linux Ctrl+z bg fg jobs命令使用

    一.暂停前台运行时间长的程序 使用Ctrl + z然后可以看到系统提示: []+ Stopped /home/test/demo.sh 二.bg命令 将程序放到后台处理 bg  %jobnumber ...

  5. openresty+lua在反向代理服务中的玩法

    openresty+lua在反向代理服务中的玩法 phith0n · 2015/06/02 10:35 0x01 起因 几天前学弟给我介绍他用nginx搭建的反代,代理了谷歌和维基百科. 由此我想到了 ...

  6. AndroidManifest.xml配置

    AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅.下面是一个标准的AndroidManifest.xm ...

  7. 关于linux系统下 无法解析主机的问题

    linux无法解析主机 xxx: 解决方法: 1. sudo gedit /etc/hosts 找到如下行: 127.0.1.1       XXX 将其修改为: 127.0.1.1       (你 ...

  8. java-ApiDemo

    "飞机大战"玩了一段时间,稍后补上飞机大战完全代码. 赶紧继续后续课程 API String相关方法: 注意:涉及截取/删除/插入字符串位置时,指的是下标x的位置:如果是范围,则带 ...

  9. c++ 宏 #val 在unicode下的使用。

    #define CHECK(condition) cout<<check failed:<<#condition<<endl; 上面这句宏,当你 CHECK(myf ...

  10. Editing a Book UVA - 11212 IDA*

    You have n equal-length paragraphs numbered 1 to n . Now you want to arrange them in the order of 1 ...