JSP从服务器获取客户端访问IP
在很多应用下都可能有需要将用户的真实IP记录下来,这时就要获得用户的真实IP地址,在JSP里,获取客户端的IP地址的方法是: request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
这段时间在做IP统计的程序设计,由于服务器作了集群,使用了反向代理软件,将http://192.168.1.110:2046/的 URL反向代理为http://www.xxx.com/的URL时,用request.getRemoteAddr()方法获取的IP地址是: 127.0.0.1 或 192.168.1.110,而并不是客户端的真实IP。这是什么原因呢?
这是反向代理的原因。经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问http://www.xxx.com/index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的 index.jsp文件,而是先由代理服务器去访问http://192.168.1.110:2046/index.jsp,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址的方法一:
Java代码
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0) {
ip = request.getRemoteAddr();
}
return ip;
}
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0) {
ip = reques
相关文档:
Jsp连接MSSQL2000的两种方法
最近在学习JSPWeb(Tomcat服务器)应用开发和基于Weblogic和Myelcipse的JEE5的开发,在学习过程中涉及到连接SQL 2000 数据库时,由于软件环境的差异性和一些版本问题,花了好大功夫才连上,所以在此作个总结,希望能给大家一些帮助,不要在基本的东西上花费太多的时间。
方法一:利用SQL Se ......
<SCRIPT LANGUAGE="JavaScript">
var tt = "";
var flag = false;
var radios = document.getElementsByName("t1");//从jsp中取radio的id或radio的name
for(var i=0;i<radios.length;i++){
//如果当前有选中
  ......
系统环境:Linux 5.0 AS 64位
步骤:
1、下载apache-tomcat-5.5.23.tar和jdk-1_5_0_12-linux-i586.bin并存放在/usr/local文件夹下;
2、安装jdk
[root@localhost local]#chmod 775 jdk-1_5_0_12-linux-i586.bin '非必须,要是直接运行时提示权限不够时改变权限;
[root@localhost local]#./jd ......
jsp JFreeChart使用心得与例子
2009-07-01 10:27
一、JFreeChart的介绍与获取 JFreeChart开发包是一个开源的Java图形开发包,它从柱形图,饼形图,到雷达图,蜡烛图等等无所不包,可以在c/s,b/s,甚至是实时环境都能一显身手。
当前的JFreeChart的最新版本为jfreechart-1.0.11.zip。可以到http://www.jfree.org/jfreechart/ ......
Servlet三个要素:
1.必须继承自HttpServlet
2.必须实现doGet()或者doPost()
3.必须在web.xml中配置Servlet
<servlet>
<servlet-name> </servlet-name>
<servlet-class> </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> </servlet-nam ......