|
该用户从未签到
|
表单处理
5 }8 v2 H& `2 m8 x) `7 | 1)如何获得请求参数值。, Q7 u l3 N/ J1 `
a,String request.getParameter(String paraName);
# ]5 a+ `* R, v 要注意的问题:' _2 T ~+ D% i( Z4 N- |
如果paraName与实际的请求参数名不一致,
l |, D* L" H: f# d 则返回null。
5 G# n) j1 u& d; J0 _; y o 如果没有输入参数值,则返回""。
, }; R0 ^, D- F5 s. \ b,String[] request.getParameterValues(String
) N+ t( I" j- Q1 `( k& G: x- } paraName);
; _# G. O* j% O9 ^4 |2 z6 g 用在有多个请求参数名相同的情况下使用。: M; r9 R5 ^% n- R# H% t1 m1 H* K
比如 ?interest=fishing&interest=cooking8 h$ J- N q8 c8 N5 }
2)如何处理表单中的中文
7 q4 p8 F8 v! P6 t2 E4 I a,浏览器会如何对表单中的数据进行- r$ C$ Z" X8 u/ S( _
编码?; ?" J& K# Z. t# |
当表单采用post方式提交时,浏览器会按照
# A! P. X9 u# N) O { 打开该表单所在的页面的编码来对表单中的
- [' c; [! D8 b4 d! k* t8 q 数据进行编码。
9 p7 j! X: n" N$ \" d3 q) Y, j* f b,在html文件当中,添加以下代码的作用. j+ t2 ~0 ~- P1 i
<meta http-equiv="content-type" content=
5 ?4 J; s8 z" w7 w s, f3 [; G "text/html;charset=utf-8">/ N' i7 w8 O, W. I* \8 q3 K+ M
作用1:模拟http消息头(content-type),, y4 B/ r" K5 ~% U6 L# `4 M
让浏览器以utf-8的编码格式来打开该页面0 h. r( B+ R% r/ a- g% U
(要确保html文件本身确定是使用utf-8保存的)。
, @9 k4 V9 i, E5 o0 n4 i( l1 y 作用2: 确保浏览器按指定的编码来对& P1 e+ ]; \' U* ^
表单中的数据进行编码。
: J1 d( C7 w d c,解决方案:: |4 ~7 |3 C) Y' A8 W E( m
step1:
1 O* S7 C9 J2 [$ M 在html文件中,添加+ C. E" I- C9 j! V% \: P/ v+ x/ R
<meta http-equiv="content-type" content= l# _* M9 ~) B5 b4 y
"text/html;charset=utf-8">
4 H1 A( V: W; ]0 s 另外,表单的提交方式必须是post。
/ M! h: q7 m! c6 f3 z6 a: x, @ step2:! E1 S+ Q( a+ w. Z; X% M
在服务器端,使用servlet读取表单中的
" j1 |' u! Y% m$ g 请求参数时:
: F. c- u2 w4 X" ?/ L& m request.setCharacterEncoding("utf-8");- a/ y3 [2 K# v& E& k
这行代码的作用:设置解码时的编码格式。0 f+ ]8 B+ r! G9 b
2 V- ]+ ]" i/ ?3 U7 N! c. g
如果servlet输出中文,要添加如下代码。! S$ u9 H8 P, g5 D1 P7 _: V
response.setContentType(
$ [& d' ^1 M: ]1 l! } "text/html;charset=utf-8");
: N$ U: I' c+ v/ E" b E9 d 这行代码的作用:) }0 J% B" l+ R5 C2 _; c. o$ v
作用1:指定out.println输出时所使用的编码。
7 S+ j; f: D* ` 作用2:生成一个消息头
# k% U5 m5 g; x, q2 _2 o$ O/ g content-type:text/html;charset=utf-8
9 J$ Y1 B9 _* j) w 告诉浏览器,返回的数据类型是html,编码是9 `- a* I8 D: f2 F6 k9 o
utf-8。这样,浏览器一定会以指定的编码来9 c. H( J9 v4 U8 G' V
显示该页面。' B9 O f( @; {3 p: S) R
$ O! r7 o; z5 c7 n- K x* M! X9 Z- G |
|