zoukankan      html  css  js  c++  java
  • java中获取服务器的IP和端口

    转载:https://www.cnblogs.com/learnapi/p/8567870.html

     感谢!! 解决我的大问题

    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();
    }
  • 相关阅读:
    在SplendidCRM中添加用户控件
    SPendidCRM:给HK的ImageInfoEntryEditView增加一个checkbox,用于判断特殊类型的PODS记录
    html button 跳转ASP.NET页面跳转技术总结
    让<li>不显示超出内容,显示... (编程方法和CSS方法)
    SplendidCRM Popup.aspx的hyperlink字段配置的易错点
    asp.net 个别页面URL参数出现中文乱码的解决方法
    解决:工具箱里边没了Dev控件
    DevControlgridview的属性说明 (转)
    DevControlgridview的属性说明 (转)
    VM如何设置U盘启动
  • 原文地址:https://www.cnblogs.com/aknife/p/11826598.html
Copyright © 2011-2022 走看看