java中獲取服務器的IP和端口


struts2 獲取request

HttpServletRequest requet=ServletActionContext.getRequest();

requet.getScheme()+"://"+requet.getServerName()+":"+requet.getServerPort()

(例如)結果為:http://localhost:8080/

 

request.getHeader("User-Agent");    //就是取得客戶端的系統版本     
request.getRemoteAddr();    //取得客戶端的IP     
request.getRemoteHost()     //取得客戶端的主機名     
request.getRemotePort();    //取得客戶端的端口     
request.getRemoteUser();    //取得客戶端的用戶     
request.getLocalAddr();    //取得服務器IP     
request.getLocalPort();    //取得服務器端口

 

1、JSP中獲得當前應用的相對路徑和絕對路徑
  根目錄所對應的絕對路徑:request.getRequestURI()
  文件的絕對路徑  :application.getRealPath(request.getRequestURI());
  當前web應用的絕對路徑 :application.getRealPath("/");
  取得請求文件的上層目錄:new File(application.getRealPath(request.getRequestURI())).getParent()

2 Servlet中獲得當前應用的相對路徑和絕對路徑
  根目錄所對應的絕對路徑:request.getServletPath();
  文件的絕對路徑 :request.getSession().getServletContext().getRealPath(request.getRequestURI())   
  當前web應用的絕對路徑 :servletConfig.getServletContext().getRealPath("/");
  (ServletContext對象獲得幾種方式:
  javax.servlet.http.HttpSession.getServletContext()
  javax.servlet.jsp.PageContext.getServletContext()
  javax.servlet.ServletConfig.getServletContext()
  )

3.Java類中獲得絕對路徑
  根據java.io.File的Doc文擋,可知: 默認情況下new File("/")代表的目錄為:System.getProperty("user.dir")。
 
擴展:
上面的獲取IP方法,只能獲取到127.0.0.1,無語
在window下使用
InetAddress.getLocalHost().getHostAddress()

這種方法在linux卻只能取到127.0.0.1這個讓人無奈的地址。。。這簡直是讓人不能忍受的啊。。。這種地址不用獲取,我們誰不知道。。。 
在網上搜索了很多,發現說這個問題的並不多,所以,我把找到的一段代碼分享給大家。。。當然這段代碼需要jdk1.5以上版本 
Java代碼 
Enumeration<NetworkInterface> netInterfaces = null;   
try {   
    netInterfaces = NetworkInterface.getNetworkInterfaces();   
    while (netInterfaces.hasMoreElements()) {   
        NetworkInterface ni = netInterfaces.nextElement();   
        System.out.println("DisplayName:" + ni.getDisplayName());   
        System.out.println("Name:" + ni.getName());   
        Enumeration<InetAddress> ips = ni.getInetAddresses();   
        while (ips.hasMoreElements()) {   
            System.out.println("IP:"  
            + ips.nextElement().getHostAddress());   
        }   
    }   
} catch (Exception e) {   
    e.printStackTrace();   
}  

Enumeration<NetworkInterface> netInterfaces = null;
try {
        netInterfaces = NetworkInterface.getNetworkInterfaces();
        while (netInterfaces.hasMoreElements()) {
                NetworkInterface ni = netInterfaces.nextElement();
                System.out.println("DisplayName:" + ni.getDisplayName());
                System.out.println("Name:" + ni.getName());
                Enumeration<InetAddress> ips = ni.getInetAddresses();
                while (ips.hasMoreElements()) {
                        System.out.println("IP:"
                        + ips.nextElement().getHostAddress());
                }
        }
} catch (Exception e) {
        e.printStackTrace();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM