java web后台获取项目访问url

1.利用request获取ip及端口

  request.getHeader("User-Agent");    //就是取得客户端的系统版本     
  request.getRemoteAddr();    //取得客户端的IP     
  request.getRemoteHost();    //取得客户端的主机名     
  request.getRemotePort();    //取得客户端的端口     
  request.getRemoteUser();    //取得客户端的用户     
  request.getLocalAddr();    //取得本地IP     
  request.getLocalPort();    //取得本地端口

2.java.net获取项目本身的ip及端口

    /**
     * @param protocol http版本
     * @param scheme 版本代号
     * @return
     */

    public String getUrl(String protocol, String scheme){  
        String ip = "";
        String port = "";
        MBeanServer mBeanServer = null;  
        if (MBeanServerFactory.findMBeanServer(null).size() > 0)  
        {  
mBeanServer= (MBeanServer)MBeanServerFactory.findMBeanServer(null).get(0);  
        }  
        Set names = null;  
        try  
        {  
            names = mBeanServer.queryNames(new ObjectName("Catalina:type=Connector,*"), null);  
        }  
        catch (Exception e)  
        {  
            return "";  
        }
        try {
            ip = InetAddress.getLocalHost().getHostAddress();
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
        Iterator it = names.iterator();  
        ObjectName oname = null;  
        while (it.hasNext())  
        {  
            oname = (ObjectName)it.next();  
            String pvalue;
            try {
                pvalue = (String)mBeanServer.getAttribute(oname, "protocol");
                String svalue = (String)mBeanServer.getAttribute(oname, "scheme");  
                if (protocol.equals(pvalue) && scheme.equals(svalue))  
                {  
              port = ((Integer)mBeanServer.getAttribute(oname, "port")).toString();  
                }
            } catch (AttributeNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (InstanceNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (MBeanException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ReflectionException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  

        } 

        return scheme+"://"+ip+":"+port;  
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值