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

struts2 獲取requestjava

HttpServletRequest requet=ServletActionContext.getRequest();linux

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

(例如)結果爲:http://localhost:8080/服務器

 

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

 

一、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(); }
相關文章
相關標籤/搜索