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

📄 mimeheaders.java

📁 一个简单的visio程序。
💻 JAVA
字号:

package servlet.http;

import java.io.IOException;
import java.io.PrintStream;
import java.util.Enumeration;
import java.util.Vector;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;


public class MimeHeaders
{

    public MimeHeaders(int i)
    {
        headers = new MimeHeaderField[8];
        buf = new byte[i];
    }

    public MimeHeaders()
    {
        this(512);
    }

    public void clear()
    {
        for(int i = 0; i < count; i++)
            headers[i].reset();

        count = 0;
    }

    public int size()
    {
        return count;
    }

    public Enumeration names()
    {
        return new MimeHeadersEnumerator(this);
    }

    public void putHeader(String s, String s1)
    {
        putHeader(s).setValue(s1);
    }

    public void putIntHeader(String s, int i)
    {
        putHeader(s).setIntValue(i);
    }

    public void putDateHeader(String s, long l)
    {
        putHeader(s).setDateValue(l);
    }

    public void putDateHeader(String s)
    {
        putHeader(s).setDateValue();
    }

    public String getHeader(String s)
    {
        MimeHeaderField mimeheaderfield = find(s);
        if(mimeheaderfield != null)
            return mimeheaderfield.getValue();
        else
            return null;
    }

    public String[] getHeaders(String s)
    {
        Vector vector = new Vector();
        String as[] = null;
        for(int i = 0; i < count; i++)
            if(headers[i].nameEquals(s))
                vector.addElement(headers[i].getValue());

        if(vector.size() > 0)
        {
            as = new String[vector.size()];
            for(int j = 0; j < as.length; j++)
                as[j] = (String)vector.elementAt(j);

        }
        return as;
    }

    public int getIntHeader(String s)
        throws NumberFormatException
    {
        MimeHeaderField mimeheaderfield = find(s);
        if(mimeheaderfield != null)
            return mimeheaderfield.getIntValue();
        else
            return -1;
    }

    public long getDateHeader(String s)
        throws IllegalArgumentException
    {
        MimeHeaderField mimeheaderfield = find(s);
        if(mimeheaderfield != null)
            return mimeheaderfield.getDateValue();
        else
            return -1L;
    }

    public String getHeaderName(int i)
    {
        if(i >= 0 && i < count)
            return headers[i].getName();
        else
            return null;
    }

    public String getHeader(int i)
    {
        if(i >= 0 && i < count)
            return headers[i].getValue();
        else
            return null;
    }

    protected MimeHeaderField getField(int i)
    {
        if(i >= 0 && i < count)
            return headers[i];
        else
            return null;
    }

    public int getFieldCount(String s)
    {
        int i = 0;
        for(int j = 0; j < count; j++)
            if(headers[j].nameEquals(s))
                i++;

        return i;
    }

    protected MimeHeaderField find(String s)
    {
        for(int i = 0; i < count; i++)
            if(headers[i].nameEquals(s))
                return headers[i];

        return null;
    }

    public void removeHeader(String s)
    {
        for(int i = 0; i < count; i++)
            if(headers[i].nameEquals(s))
            {
                MimeHeaderField mimeheaderfield = headers[i];
                mimeheaderfield.reset();
                headers[i] = headers[--count];
                headers[count] = mimeheaderfield;
                return;
            }

    }

    public boolean containsHeader(String s)
    {
        return find(s) != null;
    }

    public void read(ServletInputStream servletinputstream)
        throws IOException
    {
        byte abyte0[];
        if(count == 0)
            abyte0 = buf;
        else
            abyte0 = new byte[buf.length];
        int i = 0;
        do
        {
            int j = i;
            do
            {
                int k = abyte0.length - i;
                if(k > 0)
                {
                    k = servletinputstream.readLine(abyte0, i, k);
                    if(k == -1)
                        throw new IOException("Connection reset.");
                }
                i += k;
                if(k == 0 || abyte0[i - 1] == 10)
                    break;
                byte abyte1[] = new byte[abyte0.length * 2];
                System.arraycopy(abyte0, 0, abyte1, 0, abyte0.length);
                abyte0 = abyte1;
            }
            while(true);
            if(--i > j && abyte0[i - 1] == 13)
                i--;
            if(i != j)
                putHeader().parse(abyte0, j, i - j);
            else
                return;
        }
        while(true);
    }

    public void write(ServletOutputStream servletoutputstream)
        throws IOException
    {
        for(int i = 0; i < count; i++)
            headers[i].write(servletoutputstream);

        servletoutputstream.println();
    }

    protected MimeHeaderField putHeader(String s)
    {
        MimeHeaderField mimeheaderfield = find(s);
        if(mimeheaderfield == null)
        {
            mimeheaderfield = putHeader();
            mimeheaderfield.setName(s);
        }
        return mimeheaderfield;
    }

    void appendHeader(String s, String s1)
    {
        MimeHeaderField mimeheaderfield = putHeader();
        mimeheaderfield.setName(s);
        mimeheaderfield.setValue(s1);
    }

    protected MimeHeaderField putHeader()
    {
        int i = headers.length;
        if(count >= i)
        {
            MimeHeaderField amimeheaderfield[] = new MimeHeaderField[count * 2];
            System.arraycopy(headers, 0, amimeheaderfield, 0, i);
            headers = amimeheaderfield;
        }
        MimeHeaderField mimeheaderfield;
        if((mimeheaderfield = headers[count]) == null)
            headers[count] = mimeheaderfield = new MimeHeaderField();
        count++;
        return mimeheaderfield;
    }

    public int getAll(byte abyte0[], int i)
    {
        int j = i;
        for(int k = 0; k < count; k++)
            i += headers[k].getBytes(abyte0, i);

        return i - j;
    }

    public String toString()
    {
        StringBuffer stringbuffer = new StringBuffer();
        stringbuffer.append("{");
        for(int i = 0; i < count; i++)
        {
            stringbuffer.append("{");
            stringbuffer.append(headers[i].toString());
            stringbuffer.append("}");
            if(i < count - 1)
                stringbuffer.append(",");
        }

        stringbuffer.append("}");
        return stringbuffer.toString();
    }

    public void dump(PrintStream printstream)
    {
        for(int i = 0; i < count; i++)
            printstream.println(headers[i]);

    }

    private MimeHeaderField headers[];
    private int count;
    private byte buf[];
}

⌨️ 快捷键说明

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