mimeheaders.java

来自「很棒的web服务器源代码」· Java 代码 · 共 151 行

JAVA
151
字号
// MimeHeaders.java// $Id: MimeHeaders.java,v 1.4 2000/08/16 21:38:01 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.www.mime;import java.io.IOException;import java.io.InputStream;import java.io.PrintStream;import java.util.Enumeration;import java.util.Hashtable;/** * The most stupid MIME header holder. * This class uses a hashtable mapping header names (as String), to header * values (as String). Header names are lowered before entering the hashtable. */public class MimeHeaders implements MimeHeaderHolder {    Hashtable headers = null;    MimeParser parser = null;    /**     * A new header has been parsed.     * @param name The name of the encountered header.     * @param buf The byte buffer containing the value.     * @param off Offset of the header value in the above buffer.     * @param len Length of the value in the above header.     * @exception MimeParserException if the parsing failed     */    public void notifyHeader(String name, byte buf[], int off, int len)	throws MimeParserException    {	String lname  = name.toLowerCase();	String oldval = null;	if ( headers == null ) {	    headers = new Hashtable(5);	} else {	    oldval = (String) headers.get(lname);	}	String newval = ((oldval != null) 			 ? oldval + "," + new String(buf, 0, off, len)			 : new String(buf, 0, off, len));	headers.put(lname, newval);    }    /**     * The parsing is now about to start, take any appropriate action.     * This hook can return a <strong>true</strong> boolean value to enforce     * the MIME parser into transparent mode (eg the parser will <em>not</em>     * try to parse any headers.     * <p>This hack is primarily defined for HTTP/0.9 support, it might     * also be usefull for other hacks.     * @param parser The Mime parser.     * @return A boolean <strong>true</strong> if the MimeParser shouldn't     * continue the parsing, <strong>false</strong> otherwise.     * @exception IOException if an IO error occurs.     */    public boolean notifyBeginParsing(MimeParser parser)	 throws IOException    {	return false;    }    /**     * All the headers have been parsed, take any appropriate actions.     * @param parser The Mime parser.     * @exception IOException if an IO error occurs.     */    public void notifyEndParsing(MimeParser parser)	 throws IOException    {	return;    }    /**     * Set a header value.     * @param name The header name.     * @param value The header value.     */    public void setValue(String name, String value) {	if ( headers == null )	    headers = new Hashtable(5);	headers.put(name.toLowerCase(), value);    }    /**     * Retreive a header value.     * @param name The name of the header.     * @return The value for this header, or <strong>null</strong> if      * undefined.     */    public String getValue(String name) {	return ((headers != null)		? (String) headers.get(name.toLowerCase())		: null);    }    /**     * Enumerate the headers defined by the holder.     * @return A enumeration of header names, or <strong>null</strong> if no     * header is defined.     */    public Enumeration enumerateHeaders() {	if ( headers == null )	    return null;	return headers.keys();    }    /**     * Get the entity stream attached to these headers, if any.     * @return An InputStream instance, or <strong>null</strong> if no     * entity available.     */    public InputStream getInputStream() {	return ((parser != null) ? parser.getInputStream() : null);    }    /**     * Dump all headers to the given stream.     * @param out The stream to dump to.     */    public void dump(PrintStream out) {	Enumeration names = enumerateHeaders();	if ( names != null ) {	    while (names.hasMoreElements()) {		String name = (String) names.nextElement();		out.println(name+": "+headers.get(name));	    }	}    }    public MimeHeaders(MimeParser parser) {	this.parser = parser;    }    public MimeHeaders() {    }}

⌨️ 快捷键说明

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