栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何序列化HttpServletRequest / HttpServletResponse?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何序列化HttpServletRequest / HttpServletResponse?

首先,您无法使用Java序列化序列化HttpServletRequest或HttpServletResponse。符合这些API的对象通常在servlet实现堆栈中包括固有地不可序列化的对“
stuff”的引用。

其次,您不能将请求“重定向”到另一个客户端。从HTTP协议的角度来看,这没有任何意义。

  • 当客户端向服务器发送请求并且服务器响应具有3xx状态代码,表明“在其他地方尝试该请求”时,将发生重定向。它是重定向到其他 服务器 ,而不是其他客户端。

  • 甚至忽略了重定向意味着什么细节。您无法将HTTP请求发送到具有HTTP客户端角色的对象。它不会期望它(监听它),也不知道如何处理它。(实际上这将违反HTTP协议。)

第三,“普通套接字客户端”无法与HTTP服务(使用Servlet或其他任何方式实现)进行通信。客户端必须至少实现HTTP协议的子集,以使其自己能够被HTTP服务理解。可以“手工”实现,但是IMO并不是一个好主意…当有高质量的实现可以免费使用时。

简而言之,您似乎想做的是不可能的/荒谬的。(如果我正确理解了您的问题……这值得商.。)


如果您在这里解释了您实际上想做的事情,我们也许可以建议明智的替代方法。


我正在尝试跨服务器连接两个Java客户端应用程序。客户端将能够直接与其他客户端通信。

从字面上看,您无法使用HTTP做到这一点。但是您 可以 构建一个HTTP服务器/ servlet,将消息从一个客户端传输到另一个客户端。例如

  1. 客户端A向服务器发送包含A消息的PUT请求。
  2. 服务器存储消息并答复客户端A。
  3. 客户端B发送GET请求,询问“是否有任何消息?” 到服务器。
  4. 服务器查找消息,并使用来自A的消息进行响应。

但是请注意,使用普通套接字客户端 无法 做到这一点。客户端必须是HTTP客户端。

如果您准备放弃服务器是HTTP服务器/
servlet的要求,则可以让“简单套接字”客户端打开与服务器的双工连接,并使服务器在客户端之间传递“消息”。这需要实现用于消息传递的自定义“协议”。

第三种选择是使用现有的RPC或对象代理技术。例如RMI,CORBA,ICE等



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377111.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号