當前位置:首頁 » 雲伺服器 » jsp獲取伺服器地址

jsp獲取伺服器地址

發布時間: 2023-03-26 18:26:08

① 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(枚舉)類的實例

熱點內容
interbase資料庫 發布:2025-05-14 13:49:50 瀏覽:691
微商海報源碼 發布:2025-05-14 13:49:42 瀏覽:346
分布式緩存部署步驟 發布:2025-05-14 13:24:51 瀏覽:611
php獲取上一月 發布:2025-05-14 13:22:52 瀏覽:90
購買雲伺服器並搭建自己網站 發布:2025-05-14 13:20:31 瀏覽:689
sqlserver建立視圖 發布:2025-05-14 13:11:56 瀏覽:485
搭建httpsgit伺服器搭建 發布:2025-05-14 13:09:47 瀏覽:256
新電腦拿回來我該怎麼配置 發布:2025-05-14 13:09:45 瀏覽:241
視頻伺服器新建ftp用戶 發布:2025-05-14 13:03:09 瀏覽:226
php花生 發布:2025-05-14 12:54:30 瀏覽:551