|
该用户从未签到
|
1)如何获得请求参数值。
$ z' O/ T+ d3 L) H a,String request.getParameter(String paraName);) r- L2 D) L3 w4 l
要注意的问题:
: y" n$ V. a) i" b5 f 如果paraName与实际的请求参数名不一致,! q. k0 `6 v( T0 K G4 k# c
则返回null。
$ ^7 U, g6 n* Y+ r' G4 d 如果没有输入参数值,则返回""。! P, b9 l- i* f" K+ |
b,String[] request.getParameterValues(String/ X. L) U: ]0 ~" v- r
paraName);
- @3 |; C/ T7 f" \$ _3 m: z; P 用在有多个请求参数名相同的情况下使用。$ x/ {# w$ m5 F3 W; J
比如 ?interest=fishing&interest=cooking( W3 z& O# F( d6 K/ m; X
2)如何处理表单中的中文1 U, G9 G) B% S, {
a,浏览器会如何对表单中的数据进行- w8 v- @7 P8 R9 A! k
编码?
: Y' Q( F9 ]# o. p, V) V 当表单采用post方式提交时,浏览器会按照
6 a5 V6 J |( Y; p5 b Q' d1 F 打开该表单所在的页面的编码来对表单中的
0 S8 F- D; W* E- i- A 数据进行编码。
$ U0 V) o& b' E; H5 N% r0 q b,在html文件当中,添加以下代码的作用
" _4 D. Y8 R3 O <meta http-equiv="content-type" content=1 }% x) T" o7 w+ V* z! M
"text/html;charset=utf-8">
- @. S1 j0 h2 v8 [/ w2 v9 X* A 作用1:模拟http消息头(content-type), {0 o7 |) B. l e. x
让浏览器以utf-8的编码格式来打开该页面 ^+ U. R/ Z3 Z& o
(要确保html文件本身确定是使用utf-8保存的)。
- ? o8 s9 y' O, S 作用2: 确保浏览器按指定的编码来对/ H( s# ^$ R! o' T5 m5 z1 c6 f
表单中的数据进行编码。! r0 |5 J& L$ o: N- s
c,解决方案:+ E; r+ g- N8 J, D' j F
step1:9 y) R6 c) d& [' ?- U
在html文件中,添加6 P0 [1 \0 ~1 n. s3 x4 z+ l
<meta http-equiv="content-type" content=: ~1 `9 U9 U4 R' f
"text/html;charset=utf-8">
) v4 M( [ ~& A4 |' N& j% v( e 另外,表单的提交方式必须是post。
9 J, E3 t" y, |% j step2:# T2 s1 z1 ?: H ~5 ?. K$ s
在服务器端,使用servlet读取表单中的
- k# }9 U' T; E' ] 请求参数时:: Z+ O; y" G6 _& q
request.setCharacterEncoding("utf-8");& x/ _7 G, x7 f+ j/ _4 O
这行代码的作用:设置解码时的编码格式。
& |6 B8 @1 w( o' ]6 G 7 X$ T) W* [: u8 a6 l; p, w
如果servlet输出中文,要添加如下代码。9 x6 W b9 n8 z! I4 b! U& L
response.setContentType(9 m9 I+ h% V3 c# g9 {: \
"text/html;charset=utf-8");! I9 p2 D2 {1 i' P
这行代码的作用:" O1 ?3 l; w# |8 n
作用1:指定out.println输出时所使用的编码。
' t Q+ S* }: B6 h3 l 作用2:生成一个消息头0 C" v0 c' J8 B. m
content-type:text/html;charset=utf-8+ o3 E& r+ P4 e' i
告诉浏览器,返回的数据类型是html,编码是
) e. O% k' X9 F h0 p5 Q/ | utf-8。这样,浏览器一定会以指定的编码来: Q, n$ { e4 s# I: N
显示该页面。
6 P- W* c% H3 u, @/ h7 a! E+ T) z3 I H* Z5 R& ~, b4 G
|
|