request.getServerPort 和 request.getLocalPort 区别

在获取请求的应用IP端口时,会有两个方法可以用,但是两个方法有时得到的值却不一样,具体原因是两个方法获取的端口来源不一样。

getLocalPort获取的是应用服务器的端口,即该应用的实际端口,无论请求经过了多少代理,转发,getLocalPort只取最后的端口,也就是应用的端口。

getServerPort获取的是URL请求的端口,比如你的请求时127.0.0.1:8080,应用服务器的端口是80,那么getServerPort得到的端口是8080。而getLocalPort得到的是80

在具体的应用当中,跳转后的端口getServerPort容易发生变化。如http://localhost:8080/demo/index.jsp跳转到http://localhost:8081/demo/index.jsp

后,当前获取的端口是8080(getServerPort获取的是URL请求的端口),但页面刷新后再次获取的端口是8081.

以前也遇到过一个奇怪的问题,server端用getServerPort获取端口号并以报文的形式返回,通过浏览器获取的报文是没问题的,端口号是8081,但是通过板子(arm等)获取的报文端口号是80,it‘s weird,uuh。不过换成getLocalPort就OK了,用板子为什么会发生这种情况,没有搞清楚。Google很多,可能是request的时候被转发了。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值