public String getParameter(String name)
{
parseParameters();/////////處理parameters
String values[] = (String[])parameters.get(name);//得到該參數(shù)名字對(duì)應(yīng)的Object(是一個(gè)數(shù)組)
if(values != null)
{
return values[0];
} else
{
return null;
}
}
PRotected void parseParameters()
{
if(parsed)
{
return;///如果處理過(guò)了,就不要處理了
}
ParameterMap results = parameters;/////構(gòu)造parameters對(duì)象的本地引用
if(results == null)
{
results = new ParameterMap();//////如果沒(méi)有實(shí)例
}
results.setLocked(false);
String encoding = getCharacterEncoding();//////////////////////////得到httpServeltRequest的編碼
if(encoding == null)
{
encoding = "ISO-8859-1";//////////如果沒(méi)有指定httpServeltRequest的編碼采用"ISO-8859-1"
}
。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
RequestUtil.parseParameters(results, queryString, encoding);//////////////////////處理編碼
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
is.read(buf, len, max - len); //////////////////////從流中讀取數(shù)據(jù)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
RequestUtil.parseParameters(results, buf, encoding);///////////////////////////////////處理編碼
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
parameters = results;//////重置引用
}
while(ix < data.length)
{
byte c = data[ix++];
switch((char)c)
{
case 38: // '&'
value = new String(data, 0, ox, encoding);
if(key != null)
{
putMapEntry(map, key, value);
key = null;
}
ox = 0;
break;
case 61: // '='
key = new String(data, 0, ox, encoding);
ox = 0;
break;
case 43: // '+'
data[ox++] = 32;
break;
case 37: // '%'
data[ox++] = (byte)((convertHexDigit(data[ix++]) << 4) + convertHexDigit(data[ix++]));
break;
default:
data[ox++] = c;
break;
}
}
if(key != null)
{
value = new String(data, 0, ox, encoding);
putMapEntry(map, key, value);
}
(出處:http://m.survivalescaperooms.com)
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注