该用户从未签到
|
表单处理
* Y: B+ `. K3 M( T& Y 1)如何获得请求参数值。
4 m* _3 ?) L# |2 ]* @; x7 A: ^ u a,String request.getParameter(String paraName);
7 w2 z: h* }, X% N+ r$ n 要注意的问题:
9 E* U) m. |2 d5 x& G, n7 [. C4 c 如果paraName与实际的请求参数名不一致,
# E9 p- |, a" h. h$ ^ 则返回null。) t5 o# N. x! b1 c, S: \
如果没有输入参数值,则返回""。
2 Z# }8 [, u3 W% l w. x b,String[] request.getParameterValues(String& Q+ m% _! R' l! o Y5 w8 U# g. p# G: u
paraName);
. @- D) V/ x: ]* }3 T% H! x+ F. P* } 用在有多个请求参数名相同的情况下使用。
' O' l& c2 w* E4 l, d# i 比如 ?interest=fishing&interest=cooking
8 a6 P$ C- c" h, p+ H 2)如何处理表单中的中文
& w+ i( f9 n: g: ] a,浏览器会如何对表单中的数据进行
1 ` g. {! O4 G9 b; G$ V) J 编码?) N/ I. @& P# X8 \0 U
当表单采用post方式提交时,浏览器会按照1 @5 j5 M" }2 i3 U( B
打开该表单所在的页面的编码来对表单中的
) c6 \8 B q# h. h, V 数据进行编码。/ @9 z5 |# x/ P, p2 v& T
b,在html文件当中,添加以下代码的作用
; p; ]7 M2 f3 Q <meta http-equiv="content-type" content=
: R; `; i: R7 T$ L "text/html;charset=utf-8">- X. { u6 u) E4 Z6 ]/ v( q
作用1:模拟http消息头(content-type),
) `. f) y3 H/ R ~ 让浏览器以utf-8的编码格式来打开该页面
|, f( I" G* \0 s9 N& Y; P3 p/ d (要确保html文件本身确定是使用utf-8保存的)。
w# k" o* V/ R7 c9 O9 j: q& o 作用2: 确保浏览器按指定的编码来对7 V2 F& l. I6 a; R: S
表单中的数据进行编码。
) p0 G5 g& o, V; p c,解决方案:
3 L! s0 B1 ~: L7 M step1:
: ?; t6 N" w: d+ C% U 在html文件中,添加
8 t, _" J$ A" U4 O <meta http-equiv="content-type" content=4 e# h7 I; H+ e3 B4 T: M
"text/html;charset=utf-8">
' b! z$ O; c+ B% O 另外,表单的提交方式必须是post。
" [& V) t9 B6 |% E8 U step2:
- J" z& f5 S! W! A3 m 在服务器端,使用servlet读取表单中的0 @3 e: ?/ b" D3 ~* P2 h
请求参数时:
! Z7 X9 g* y; c) l, `" q, f9 K( D request.setCharacterEncoding("utf-8"); T$ |$ t2 W0 \5 }8 @6 q- h
这行代码的作用:设置解码时的编码格式。
8 R4 e* N7 m& s" C* Y6 B! R+ V
. L; Y5 r1 I0 W7 B& v" F I 如果servlet输出中文,要添加如下代码。
' y g4 y3 {8 E' Y* e( N response.setContentType(
. r- m0 S* h3 k1 i" \* s' w9 m% S "text/html;charset=utf-8");
- R! A" [; X0 [ 这行代码的作用:
3 x5 t) d4 b3 s- o3 _0 Q 作用1:指定out.println输出时所使用的编码。+ S8 F8 f! Y7 h; {' y* X: a
作用2:生成一个消息头
$ W1 X) m# X6 Q4 k0 c. _& D/ I f9 ` content-type:text/html;charset=utf-8 d8 ]8 M9 L( m+ G1 ?- S
告诉浏览器,返回的数据类型是html,编码是
# o0 s: u$ V* N7 \4 _ N. x4 Y utf-8。这样,浏览器一定会以指定的编码来
9 F% ]( Y' L( M0 ]. I) l! \& G 显示该页面。( z3 x& Y7 m' \% v% F7 A, I& h
& l5 V; B! s- Z D+ a, `% c8 @
|
|