0 0

struts action 中通过ObjectInputStream读取对象5

我用HttpURLConnection访问一个action时,用对象输出流输出对象,但在action 中用对象输入流读取对象时报java.io.EOFException异常,代码如下:
                  URL url = new URL("http://localhost/istat3/bbtb/bbTbAction.do?act=saveDataInfo");
		// 请求连接
		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//		URLConnection connection = url.openConnection();
		// 设置连接属性
		connection.setUseCaches(false);
		connection.setDefaultUseCaches(false);
		connection.setDoOutput(true);
		connection.setDoInput(true);
		

		// 定义请求的对象输出流
		OutputStream out = connection.getOutputStream();
		ObjectOutputStream objOutStream = new ObjectOutputStream(out);
		// 发送请求的参数
		objOutStream.writeObject(object);
		objOutStream.flush();
		
		if (objOutStream != null) {
			objOutStream.close();
		}
		
		//得到服务端的响应,
		int responseCode = connection.getResponseCode();

另外将请求的url指定到一个servlet时却能正常地读到对象,这是为什么,不是action 继承自servlet吗,一个可以,一个却不行。
                  URL url = new URL("http://localhost/istat3/servlet/changeModelServlet");
		// 请求连接
		HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//		URLConnection connection = url.openConnection();
		// 设置连接属性
		connection.setUseCaches(false);
		connection.setDefaultUseCaches(false);
		connection.setDoOutput(true);
		connection.setDoInput(true);
		

		// 定义请求的对象输出流
		OutputStream out = connection.getOutputStream();
		ObjectOutputStream objOutStream = new ObjectOutputStream(out);
		// 发送请求的参数
		objOutStream.writeObject(object);
		objOutStream.flush();
		
		if (objOutStream != null) {
			objOutStream.close();
		}
		
		//得到服务端的响应,
		int responseCode = connection.getResponseCode();


这样就能在servlet中根据对象输入流得到对象:
                           InputStream in = request.getInputStream();
			
			ObjectInputStream objInStream = new ObjectInputStream(in);
			
			Object obj = objInStream.readObject();
2009年4月22日 15:38

1个答案 按时间排序 按投票排序

0 0

谁说action 继承servlet了,当然没有,都是不一样的类

2009年4月22日 15:45

相关推荐

    ObjectInputStream

    - `ObjectInputStream`首先读取字节流,然后根据字节流中的信息判断要创建的对象类型。 - 接下来,它调用对象的默认构造函数创建一个新对象。 - 然后,它使用字段的值填充新创建的对象,这些值是从字节流中读取的...

    Java存储与读取对象.rar

    让我们深入探讨一下Java中对象存储和读取的相关知识点。 首先,Java提供了多种方式来持久化数据,即存储对象到非内存介质中,以便在后续程序运行时能够恢复这些数据。最常见的方法是使用文件存储和数据库存储。 1....

    基于Java的源码-存储与读取对象.zip

    在Java编程语言中,对象的存储与读取是常见的任务,尤其在持久化数据、序列化和反序列化等场景中。"基于Java的源码-存储与读取对象.zip"这个压缩包很可能包含了实现这一功能的相关代码示例。本文将深入探讨Java中...

    封装保存和读取数据对象的工具类

    2. **对象读取**:`loadObject`方法接收一个文件路径作为参数,它会从该文件中读取字节流,然后反序列化成原来的对象。这个过程需要确保对象的类定义在加载时仍然是可访问的,否则可能导致反序列化失败。 3. **自动...

    对象的写入与读取。将一个类的对象(例如:Calendar)写入到文件,然后顺序读出该对象,并验证读出的对象是否原始对象的克隆。

    3. 使用`FileInputStream`和`ObjectInputStream`从文件中读取对象,创建新的`Calendar`对象`cloneCalendar1`和`cloneCalendar2`。 4. 验证`cloneCalendar1`和`cloneCalendar2`的日期是否与原始对象相同,从而确认...

    Java存储与读取对象源码

    总结来说,Java对象的存储与读取涉及到对象序列化和反序列化,通过实现`Serializable`接口,利用`ObjectOutputStream`和`ObjectInputStream`进行操作。在实际开发中,需要注意安全性问题,并合理使用`transient`...

    Java将数据存储在obj文件中并读取出来.rar

    通过实现`Serializable`接口并使用`ObjectOutputStream`和`ObjectInputStream`,我们可以轻松地将数据存储到`.obj`文件中并在需要时读取出来。这对于数据持久化、跨进程通信和网络传输等场景非常有用。

    Java存储与读取对象源代码

    总结,Java中的对象存储与读取是通过序列化和反序列化实现的。理解和掌握这些概念以及相关的API使用,对于Java开发者来说至关重要,尤其是在处理持久化数据、网络通信等场景。通过实践和优化,我们可以有效地利用这...

    Java存储与读取对象.7z

    总之,Java对象的存储与读取是通过序列化和反序列化实现的,这涉及到对`Serializable`接口的理解,以及`ObjectOutputStream`和`ObjectInputStream`的使用。在实际开发中,还需要关注性能、安全和版本兼容性等问题,...

    用序列化(Serializable)保存、读取对象

    - **读取对象**:使用`ObjectInputStream`类的`readObject()`方法从输入流中读取对象。这会创建一个新的对象,并填充所有字段的值,与序列化时相同。 - 示例代码: ```java try (ObjectInputStream in = new ...

    基于java的存储与读取对象.zip

    在Java编程语言中,对象的存储与读取是常见的任务,尤其在持久化数据、序列化和网络传输等场景中。本教程将深入探讨如何在Java中实现对象的存储和读取,主要涉及以下几个关键知识点: 1. **对象序列化...

    基于Java的实例源码-存储与读取对象.zip

    在Java编程中,存储和读取对象是常见的需求,特别是在数据持久化、序列化和反序列化场景下。本实例源码着重展示了如何利用Java的标准序列化机制以及第三方库如Jackson或Gson来实现这一目标。以下是关于这个主题的...

    Java存储与读取对象.zip

    在Java编程中,存储和读取对象是常见的需求,特别是在持久化数据或者跨程序传递对象时。本资料主要探讨如何使用Java实现对象的序列化和反序列化,以及相关的注意事项。 Java序列化(Serialization)是将一个Java...

    写入到文件,然后顺序读出该对象,并验证读出的对象

    在这个例子中,`ObjectInputStream`的`readObject()`方法用于从文件中恢复对象。读出的对象会被自动转换回`Person`类型,并可以通过其属性进行验证。 至于提供的"JSP2.0 语法卡片.pdf"文件,它可能包含有关JSP...

    java源码:Java存储与读取对象.rar

    在Java编程中,存储和读取对象是一项基本但至关重要的任务。这通常涉及到序列化(Serialization)和反序列化(Deserialization)的概念。序列化是将一个对象转换为字节流的过程,以便可以存储在磁盘上或在网络上传输...

    基于Java的存储与读取对象.zip

    在Java编程中,存储和读取对象是一项基本但至关重要的任务。这通常涉及到序列化和反序列化的过程,使得对象的状态能够被持久化并能在之后的程序运行中恢复。在这个"基于Java的存储与读取对象.zip"压缩包中,可能包含...

    Java将对象保存到文件中/从文件中读取对象的方法

    以下详细介绍了如何在Java中将对象保存到文件以及从文件中读取对象。 **一、对象的序列化** Java中的序列化是将对象转换为字节流的过程,这样就可以将对象保存到文件或者在网络上传输。要实现这个功能,对象所属的...

    实验一java对象串行化编程.doc

    我们使用 FileOutputStream 和 FileInputStream 来读写文件,然后使用 ObjectOutputStream 和 ObjectInputStream 来将对象写入到文件中或从文件中读取对象。 实验目的: 1. 掌握对象串行化的概念和作用 2. 掌握...

    java序列化对象的存储和读取共6页.pdf.zip

    - 创建一个`ObjectInputStream`实例,通过它可以读取Java对象。 - 使用`readObject()`方法从输入流中读取对象。 - 关闭`ObjectInputStream`。 6. **序列化和反序列化的注意事项:** - 序列化可能导致安全问题,...

    把对象写到文件夹里边

    在另一部分的"写对象到文件的代码"中,可能包含了读取这些对象的逻辑,这通常使用`ObjectInputStream`来完成。下面是如何从文件中读取并反序列化对象的代码: ```java import java.io.*; public class Main { ...

Global site tag (gtag.js) - Google Analytics