httpparamlist.java

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

JAVA
107
字号
// HttpParamList.java// $Id: HttpParamList.java,v 1.3 2000/08/16 21:38:00 ylafon Exp $// (c) COPYRIGHT MIT, INRIA and Keio, 1999.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.www.http;import org.w3c.util.ArrayDictionary;/** * This class parses name->value pairs, used in Authentication Info */public class HttpParamList extends BasicValue {    ArrayDictionary params = null;    /**     * parse.     * @exception HttpParserException if parsing failed.     */    protected void parse() 	throws HttpParserException    {	ParseState ps = new ParseState(roff, rlen);	this.params = new ArrayDictionary(4, 4);	ps.prepare();	// Parameters parsing	ParseState it = new ParseState();	it.separator  = (byte) '=';	ps.separator = (byte) ',';	while (HttpParser.nextItem(raw, ps) >= 0 ) {	    // Get the param name:	    it.prepare(ps);	    if (HttpParser.nextItem(raw, it) < 0)		error("Invalid param list: bad param name.");	    String key = it.toString(raw, true);	    // Get the param value:	    it.prepare();	    if ( HttpParser.nextItem(raw, it) < 0)		error("Invalid param list: no param value.");	    it.ioff = it.start;	    HttpParser.unquote(raw, it);	    params.put(key, it.toString(raw));	    ps.prepare();	}    }    protected void updateByteValue() {	HttpBuffer buf = new HttpBuffer();	int len = params.size();	for (int i = 0 ; len > 0 ; i++) {	    String key = (String) params.keyAt(i);	    if ( key == null )		continue;	    buf.appendQuoted(key, (byte)'=', (String)params.elementAt(i));	    len--;	    if (len > 0) {		buf.append((byte)',');	    }	}	raw  = buf.getByteCopy();	roff = 0;	rlen = raw.length;    }    public Object getValue() {	validate();	return this;    }    /**     * Get a parameter.     * @param name The name of the parameter to fetch.     * @return The String value, or <strong>null</strong> if undefined.     */    public String getParameter(String name) {	validate();	return (params == null) ? null : (String) params.get(name);    }    /**     * Set an authentication parameter.     * @param name The name of the authentication parameter.     * @param value The value of the authentication parameter.     */    public void setParameter(String name, String value) {	validate();	if ( params == null )	    params = new ArrayDictionary(4, 4);	params.put(name, value);    }    public HttpParamList(boolean isValid) {	this.isValid = isValid;    }    public HttpParamList() {	this.isValid = false;    }}

⌨️ 快捷键说明

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