开发者社区> 问答> 正文

tomcat服务器下servlet接收数据并转发

在做servlet时,有点搞晕了,在dopost()方法中有HttpServletRequest和HttpServletResponse两个参数,request用于获取客户端的一些信息,而response则用于向客户端返回信息,有点不明白的是,当我使用response输出信息时,servlet是怎么知道我返回到的客户端是哪个客户端的?看到网上很多贴都说request使用getRemoteAddr或者request.getHeader("x-forwarded-for")可以取出客户端ip,但我取出来都是127.0.0.1。我想实现的功能是,有两台电脑1和2,servlet接收到电脑1发送的数据后,进行转发到电脑2,而不是直接返回数据给电脑1,请问这个过程该怎样实现呢?谢谢各位了!

展开
收起
落地花开啦 2016-05-27 15:36:16 3285 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    个人意见
    首先,如果你要在服务器(这里用S表示)端将响应内容发送给电脑2,那么这样有两种情况:
    1)电脑2仍作为客户端,服务器S还是服务器端,那么你就需要有电脑2主动发起请求,来获取S中的响应。这样可以采用3楼的websockt或者轮询等技术。
    2)电脑2作为服务器端,S作为客户端,由S向电脑2发起请求,此时S中的响应作为请求内容发送给作为服务器的电脑2,然后由电脑2处理。
    请求必须是由客户端向服务器端发起的,而不能由服务器端主动发送到客户端。
    不过呢,要想实现有服务器端主动发送到客户端,可以采用一种折中的方式,推荐你学习一下DWR,即direct web remoting,它可以通过服务器直接发送到客户端,但这也只是表面现象,其内在机制还是由客户端发起请求。

    2019-07-17 19:18:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ECS全知道(下) 镜像与快照+块存储、安全、网运维与监控 立即下载
ECS全知道(上) 实例+计费 立即下载
云服务器可观测能力的探索与实践 立即下载