java 将服务器上读取到的返回给客户端的方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 将服务器上读取到的返回给客户端的方法?相关的知识,希望对你有一定的参考价值。

我看了一下jdk文档,上面有关ObjectInputStream的描述:
[jdk文档]
ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
[jdk文档]

从上面可以看到是对基本数据类型序列化和反序列化,String及数组等不是基本数据类型
[jdk文档]
在 Java 中,字符串和数组都是对象,所以在序列化期间将其视为对象。读取时,需要将其强制转换为期望的类型。

readObject 方法负责使用通过对应的 writeObject 方法写入流的数据,为特定类读取和恢复对象的状态。该方法本身的状态,不管是属于其超类还是属于其子类,都没有关系。恢复状态的方法是,从个别字段的 ObjectInputStream 读取数据并将其分配给对象的适当字段。DataInput 支持读取基本数据类型。

尝试读取由对应的 writeObject 方法写入的超出自定义数据边界的对象数据将导致抛出 OptionalDataException(eof 字段值为 true)。超出已分配数据末尾的非对象读取以指示流末尾的方式反映数据结束:按位读取与字节读取或字节数读取一样,将返回 -1,基元读取将抛出 EOFException。

[jdk文档]
读取对象类似于运行新对象的构造方法。为对象分配内存并将其初始化为零 (NULL)。为不可序列化类调用无参数构造方法,然后从以最接近 java.lang.object 的可序列化类开始和以对象的最特定类结束的流恢复可序列化类的字段。

从上面看,反序列化时读出的数据皆为基本数据类型,然后可能要自己重新组合成为你要的MyObject类型,如
String name = (String)ois.readObject();
int age = (int)ois.readInt();
MyObject mo = new MyObject();
mo.setName(name);
mo.setAge(age);

我的理解不知道对不对
参考技术A 假设你使用的是Servlet的话
In Java Servlet file:
request.setAttribute("info","This is a message");
In Jsp:
<%=request.getAttribute("info")%>
然后页面上会显示This is a message
参考技术B 说具体一点吧

Java小知识--把服务器返回内容写成.jsp返回给客户端

从服务器直接返回  内容  给客户端的话 要写很多程序,很麻烦。服务器把客户端的请求  托管给jsp,再又jsp返回给客户端就比较容易。

.jsp file  要建在Web Content目录下!!!

写法:

req.getRequestDispatcher(path);

  dispatcher  调度程序 , 请求转发器,将请求由服务器转发给jsp

(path)中要填接收请求的 jsp的路径

用forward(arg0,arg1)    进行转发

以上是关于java 将服务器上读取到的返回给客户端的方法?的主要内容,如果未能解决你的问题,请参考以下文章

java filter 如何中获取请求地址?

Nginx+Tomcat实现负载均衡动静分离(脚本方法)

Java小知识--把服务器返回内容写成.jsp返回给客户端

Java获取客户端IP

java获取客户端ip

使用java如何获取服务器返回的js文件内容,最好可以获取指定文字后的内容。