jsp获取服务器地址
① jsp页面中怎么获取上传到tomcat服务器中的文件地址,我后台上传的图片,在前台要动态获取图片地址并显示
从数据库中查出来然后返回到jsp页面用el表达式可以获取,或者是struts标签也行1
② java如何获取https协议的客户端ip地址
嗨 你好
据网上了解到:
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。
如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.javapeixun.com.cn / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问http://www.javapeixun.com.cn /index.jsp/ 时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问http://192.168.1.110:2046/index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) { if (request.getHeader("x-forwarded-for") == null) { return request.getRemoteAddr(); } return request.getHeader("x-forwarded-for"); }
可是当我访问http://www.5a520.cn /index.jsp/ 时,返回的IP地址始终是unknown,也并不是如上所示的127.0.0.1或192.168.1.110了,而我访问http://192.168.1.110:2046/index.jsp 时,则能返回客户端的真实IP地址,写了个方法去验证。原因出在了Squid上。squid.conf 的配制文件forwarded_for 项默认是为on,如果 forwarded_for 设成了 off 则:X-Forwarded-For: unknown
于是可得出获得客户端真实IP地址的方法二:
public String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }
可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串Ip值,究竟哪个才是真正的用户端的真实IP呢?
答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。
如:X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100用户真实IP为: 192.168.1.110
希望可以帮到你的忙
祝你学习愉快
③ jsp中如何获取本机ip
<%@page
contentType="text/html;charset=gb2312"基带%><%InetAddress
addr
=
InetAddress.getLocalHost();
ip=addr.getHostAddress().toString;//获得本机IP
pageContext.setAttribute("ip",ip);%>//改锋御在下面引用核岩这个:${ip},就可以了</body
④ JSP获取客户端真实IP
String ip=(String)request.getRemoteAddr();自动获取登录这个jsp页面的ip地址
⑤ 怎样在jsp中记录访问网页的IP地址
假如用代理服务器,request.getRemoteAddr(); 只能得到代理服务器地址,以下方法是得到正确所有ip的方法
在jsp声明这个函数
<%!public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}%>
嵌入jsp网页中,然后用<%String ip=getIpAddr(request);%>得到访问者ip
ip就是访问者的ip,你保存到数据库或者缓存中,就由你自己了
⑥ 如何得到一个jsp页面所在的项目的路径
在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的尺宏做绝对路径。
⑦ jsp怎么获取当前页面的url
当一个url过来时,如:http://localhost:8080/demo/hello.jsp,在hello.jsp页面,我们可以这样得到url:
代码如下:
<%Stringbasepath肆缓
=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort();
StringPath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"+request.getContextPath()+"/";
Stringuri=request.getRequestURI();
uri=uri.substring(uri.lastIndexOf("/")+1);//获得是最后的hello.jsp
%>
(上例中,Path路径就是图中的)
说明:
1.request.getContextPath() 返回站点的根目录,如:‘’/demo‘’
2.request.getRealpath("/")得到的是实际的物理路径,也就是你的项目所在服务器团雹档中的路径
3.request.getScheme() 等到的是协塌乱议名称,默认是http
4.request.getServerName() 得到的是在服务器的配置文件中配置的服务器名称 比如:localhost ..com 等等
5.request.getServerPort() 得到的是服务器的配置文件中配置的端口号 比如 8080等等
OK,满意的话请好评!O(∩_∩)O~
⑧ Linux下 jsp获取服务器ip地址
一样 跟windows 正常获取 没有任何区别
⑨ jsp运行显示找不到服务器ip地址怎么回事
jsp运行显示找不到服务器ip地址应该。进入路由器设置页面,在里找到<高级设置>,进入后选择<使用isp指定的ip和dns>,手工输入ip和dns数值。
⑩ 请问jsp页面如何获取服务器信息呢
request.getHeader(“User-agent”)返回客户端浏览器的版本号、类型
getHeader(String name):获得http协议定义的传送文件头信息,
request. getMethod():获得客户端向服务器端传送数据的方法有GET、POST、PUT等类型
request. getRequestURI():获得物唯发出请求字符串的客户端地罩闹培址
request. getServletPath():获得客户端所请求的脚弯握本文件的文件路径
request. getServerName():获得服务器的名字
request.getServerPort():获得服务器的端口号
request.getRemoteAddr():获得客户端的IP地址
request.getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的IP地址
request.getProtocol():
request.getHeaderNames():返回所有request header的名字,结果集是一个Enumeration(枚举)类的实例