⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 httpuri.java

📁 jetty SERVER連接資料庫用的軟體
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                        case '[':                        {                            state = IPV6;                            break;                        }                    }                    continue;                }                case IPV6:                {                    switch (c)                    {                        case '/':                        {                            throw new IllegalArgumentException("No closing ']' for " + StringUtil.toString(_raw,offset,length,URIUtil.__CHARSET));                        }                        case ']':                        {                            state = AUTH;                            break;                        }                    }                    continue;                }                                case PORT:                {                    if (c=='/')                    {                        m=s;                        _path=m;                        if (_port<=_authority)                            _port=_path;                        state=PATH;                    }                    continue;                }                                case PATH:                {                    switch (c)                    {                        case ';':                        {                            _param = s;                            state = PARAM;                            break;                        }                        case '?':                        {                            _param = s;                            _query = s;                            state = QUERY;                            break;                        }                        case '#':                        {                            _param = s;                            _query = s;                            _fragment = s;                            break state;                        }                    }                    continue;                }                                case PARAM:                {                    switch (c)                    {                        case '?':                        {                            _query = s;                            state = QUERY;                            break;                        }                        case '#':                        {                            _query = s;                            _fragment = s;                            break state;                        }                    }                    continue;                }                                case QUERY:                {                    if (c=='#')                    {                        _fragment=s;                        break state;                    }                    continue;                }                                case ASTERISK:                {                    throw new IllegalArgumentException("only '*'");                }            }        }    }        private String toUtf8String(int offset,int length)    {        _utf8b.reset();        _utf8b.append(_raw,offset,length);        return _utf8b.toString();    }        public String getScheme()    {        if (_scheme==_authority)            return null;        int l=_authority-_scheme;        if (l==5 &&             _raw[_scheme]=='h' &&             _raw[_scheme+1]=='t' &&             _raw[_scheme+2]=='t' &&             _raw[_scheme+3]=='p' )            return HttpSchemes.HTTP;        if (l==6 &&             _raw[_scheme]=='h' &&             _raw[_scheme+1]=='t' &&             _raw[_scheme+2]=='t' &&             _raw[_scheme+3]=='p' &&             _raw[_scheme+4]=='s' )            return HttpSchemes.HTTPS;                return toUtf8String(_scheme,_authority-_scheme-1);    }        public String getAuthority()    {        if (_authority==_path)            return null;        return toUtf8String(_authority,_path-_authority);    }        public String getHost()    {        if (_host==_port)            return null;        return toUtf8String(_host,_port-_host);    }        public int getPort()    {        if (_port==_path)            return -1;        return TypeUtil.parseInt(_raw, _port+1, _path-_port-1,10);    }        public String getPath()    {        if (_path==_param)            return null;        return toUtf8String(_path,_param-_path);    }        public String getDecodedPath()    {        if (_path==_param)            return null;        int length = _param-_path;        byte[] bytes=null;        int n=0;        for (int i=_path;i<_param;i++)        {            byte b = _raw[i];                        if (b=='%' && (i+2)<_param)            {                b=(byte)(0xff&TypeUtil.parseInt(_raw,i+1,2,16));                i+=2;            }            else if (bytes==null)            {                n++;                continue;            }                        if (bytes==null)            {                bytes=new byte[length];                for (int j=0;j<n;j++)                    bytes[j]=_raw[_path+j];            }                        bytes[n++]=b;        }        if (bytes==null)            return toUtf8String(_path,length);        _utf8b.reset();        _utf8b.append(bytes,0,n);        return _utf8b.toString();    }        public String getPathAndParam()    {        if (_path==_query)            return null;        return toUtf8String(_path,_query-_path);    }        public String getCompletePath()    {        if (_path==_end)            return null;        return toUtf8String(_path,_end-_path);    }        public String getParam()    {        if (_param==_query)            return null;        return toUtf8String(_param+1,_query-_param-1);    }        public String getQuery()    {        if (_query==_fragment)            return null;        return toUtf8String(_query+1,_fragment-_query-1);    }        public String getQuery(String encoding)    {        if (_query==_fragment)            return null;        return StringUtil.toString(_raw,_query+1,_fragment-_query-1,encoding);    }        public boolean hasQuery()    {        return (_fragment>_query);    }        public String getFragment()    {        if (_fragment==_end)            return null;        return toUtf8String(_fragment+1,_end-_fragment-1);    }    public void decodeQueryTo(MultiMap parameters)     {        if (_query==_fragment)            return;        _utf8b.reset();        UrlEncoded.decodeUtf8To(_raw,_query+1,_fragment-_query-1,parameters,_utf8b);    }    public void decodeQueryTo(MultiMap parameters, String encoding)         throws UnsupportedEncodingException    {        if (_query==_fragment)            return;               if (encoding==null || StringUtil.isUTF8(encoding))            UrlEncoded.decodeUtf8To(_raw,_query+1,_fragment-_query-1,parameters);        else            UrlEncoded.decodeTo(toUtf8String(_query+1,_fragment-_query-1),parameters,encoding);    }    public void clear()    {        _scheme=_authority=_host=_port=_path=_param=_query=_fragment=_end=0;        _raw=__empty;        _rawString="";    }        public String toString()    {        if (_rawString==null)            _rawString=toUtf8String(_scheme,_end-_scheme);        return _rawString;    }        public void writeTo(Utf8StringBuffer buf)    {        buf.append(_raw,_scheme,_end-_scheme);    }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -