java如何获取真实的IP
如果服务器如果没有采用反向代理,而且客户端没有用正向代理的话,
那么可以获取客户端的真实IP地址request.getRemoteAddr()
如果服务器如果没有采用反向代理,而且客户端有用正向代理的话,
那么通过request.getRemoteAddr()获取客户端的IP地址是客户端 的代理服务器的地址,并不是客户端的真实地址,
而且如果客户端使用的是多层代理的话,服务器获得的客户端地址是客户端的最外围代理服务器的地址
如果服务器如果采用反向代理服务器,不管客户端采用的是何种方式访问服务器,
服务器通过request.getRemoteAddr()都将是反向代理服务器地址,
而且服务器采用的是多层反向代理服务器的话,服务器通过request.getRemoteAddr()
都将是服务器最里面反向代理服务器地址
服务器通过request.getHeader("x-forwarded-for") 来判断(包括多层反向代理服务器)等方式,
可以获得客户端地址,如果客户端没有使用代理的话,那么这个地址就是客户端的真实地址,
如果客户端使用代理的话,不过这个地址并不是客户端的真实地址,是这个代理服务器的地址
&
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
LDAP是标准轻量目录访问协议(Lightweight Directory Access Protocol),通过LDAP,你可以访问目录中的用户信息,进行用户验证。DominoR5/6支持标准的LDAP v3目录服务。本文通过描述使用JNDI访问Domino目录的过程,为大家介绍如何充分利用机构中已有的Domino目录资源。本文所述的方法也适用于其他支持LDAP v3的目录服务器。
......
抽象类往往用来表征我们在对问题领域进行分析、 设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,我们不能把它们实例化(拿不出一个具体的东西)所以称之为抽象。比如:我们要描述“水果”,它就是一个抽象,它有质量、体积等一些共性(水果有质量),但又缺乏特性(苹果、 ......
String fm = "46+5*(120-37)";
String[] item = fm.split("[+-/*/()]");
for(String it: item){
System.out.print(it+" ");
}
正则表达式中 转义: * ==> /* ......
转:http://www.ibm.com/developerworks/cn/java/j-jtp06197.html
2007 年 7 月 05 日
Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。在这期的&nb ......