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

📄 httputils.java

📁 java servlet2.5 源码,对于学习servlet机制的人大为有用.
💻 JAVA
字号:
// Decompiled by DJ v3.8.8.85 Copyright 2005 Atanas Neshkov  Date: 2007-7-29 14:29:07
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   HttpUtils.java

package javax.servlet.http;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.*;
import javax.servlet.ServletInputStream;

// Referenced classes of package javax.servlet.http:
//            HttpServletRequest

/**
 * @deprecated Class HttpUtils is deprecated
 */

public class HttpUtils
{

    public HttpUtils()
    {
    }

    public static Hashtable parseQueryString(String s)
    {
        String valArray[] = null;
        if(s == null)
            throw new IllegalArgumentException();
        Hashtable ht = new Hashtable();
        StringBuffer sb = new StringBuffer();
        String key;
        for(StringTokenizer st = new StringTokenizer(s, "&"); st.hasMoreTokens(); ht.put(key, valArray))
        {
            String pair = st.nextToken();
            int pos = pair.indexOf('=');
            if(pos == -1)
                throw new IllegalArgumentException();
            key = parseName(pair.substring(0, pos), sb);
            String val = parseName(pair.substring(pos + 1, pair.length()), sb);
            if(ht.containsKey(key))
            {
                String oldVals[] = (String[])(String[])ht.get(key);
                valArray = new String[oldVals.length + 1];
                for(int i = 0; i < oldVals.length; i++)
                    valArray[i] = oldVals[i];

                valArray[oldVals.length] = val;
            } else
            {
                valArray = new String[1];
                valArray[0] = val;
            }
        }

        return ht;
    }

    public static Hashtable parsePostData(int len, ServletInputStream in)
    {
        byte postedBytes[];
        UnsupportedEncodingException e;
        if(len <= 0)
            return new Hashtable();
        if(in == null)
            throw new IllegalArgumentException();
        postedBytes = new byte[len];
        try
        {
            int offset = 0;
            do
            {
                int inputLen = in.read(postedBytes, offset, len - offset);
                if(inputLen <= 0)
                {
                    String msg = lStrings.getString("err.io.short_read");
                    throw new IllegalArgumentException(msg);
                }
                offset += inputLen;
            } while(len - offset > 0);
        }
        // Misplaced declaration of an exception variable
        catch(UnsupportedEncodingException e)
        {
            throw new IllegalArgumentException(e.getMessage());
        }
        String postedBody = new String(postedBytes, 0, len, "8859_1");
        return parseQueryString(postedBody);
        postedBody;
        throw new IllegalArgumentException(postedBody.getMessage());
    }

    private static String parseName(String s, StringBuffer sb)
    {
        sb.setLength(0);
        for(int i = 0; i < s.length(); i++)
        {
            char c = s.charAt(i);
            switch(c)
            {
            case 43: // '+'
                sb.append(' ');
                break;

            case 37: // '%'
                try
                {
                    sb.append((char)Integer.parseInt(s.substring(i + 1, i + 3), 16));
                    i += 2;
                    break;
                }
                catch(NumberFormatException e)
                {
                    throw new IllegalArgumentException();
                }
                catch(StringIndexOutOfBoundsException e)
                {
                    String rest = s.substring(i);
                    sb.append(rest);
                    if(rest.length() == 2)
                        i++;
                }
                break;

            default:
                sb.append(c);
                break;
            }
        }

        return sb.toString();
    }

    public static StringBuffer getRequestURL(HttpServletRequest req)
    {
        StringBuffer url = new StringBuffer();
        String scheme = req.getScheme();
        int port = req.getServerPort();
        String urlPath = req.getRequestURI();
        url.append(scheme);
        url.append("://");
        url.append(req.getServerName());
        if(scheme.equals("http") && port != 80 || scheme.equals("https") && port != 443)
        {
            url.append(':');
            url.append(req.getServerPort());
        }
        url.append(urlPath);
        return url;
    }

    private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings";
    private static ResourceBundle lStrings = ResourceBundle.getBundle("javax.servlet.http.LocalStrings");

}

⌨️ 快捷键说明

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