该用户从未签到
|
1)如何获得请求参数值。: `- X' m( s# y, U/ |4 N* K b
a,String request.getParameter(String paraName);8 I* j, P- o" C) ?8 v; b
要注意的问题:
( ]% O* Y5 O. i$ p+ @) p; d3 F; o- v 如果paraName与实际的请求参数名不一致,
$ r) q: s( \0 \; s6 x 则返回null。
7 J" N+ X2 G; b! z; `# B9 r 如果没有输入参数值,则返回""。
# \, Q+ J$ T$ |! B b,String[] request.getParameterValues(String+ ?# ~+ O( u. c
paraName);% Y9 ?- o9 T3 A+ E$ f) ~
用在有多个请求参数名相同的情况下使用。. x9 M) i: D1 e4 S4 w& d
比如 ?interest=fishing&interest=cooking
9 k9 s4 U+ [) _. H! k/ ?0 n2 O 2)如何处理表单中的中文1 ~" e/ ^& N- O Q, L: U
a,浏览器会如何对表单中的数据进行9 ^1 B4 `3 v: z2 _% W- P
编码?
+ h: E* G- g* Y" Y2 _ 当表单采用post方式提交时,浏览器会按照
2 V7 q, C# J1 F4 r$ ]6 b: X 打开该表单所在的页面的编码来对表单中的! f+ U7 w, p0 }0 u% |
数据进行编码。# m' O% e9 W U, X" Y# z
b,在html文件当中,添加以下代码的作用. b. h3 [1 x/ C2 K# h
<meta http-equiv="content-type" content=9 d/ B9 n6 G2 M* T- f
"text/html;charset=utf-8">
, n" g& O0 L; D/ L7 B! g 作用1:模拟http消息头(content-type),; h. F0 U# r6 U. o8 \3 f* f
让浏览器以utf-8的编码格式来打开该页面
/ ]; }( C. ], c) w( W& d- s. j9 _ (要确保html文件本身确定是使用utf-8保存的)。 H ?& s2 I+ `" ~
作用2: 确保浏览器按指定的编码来对' ?/ K) `9 Q, j9 b2 E
表单中的数据进行编码。- @" F1 ?: y4 }6 \. ^
c,解决方案:/ U$ d. k" e; i2 s0 s4 |4 P
step1:' e* Q2 I# A& ?; E8 N; ~
在html文件中,添加
( O8 r9 k5 Y A4 V' h <meta http-equiv="content-type" content=. I {" G9 L/ O3 w: ^$ y+ [
"text/html;charset=utf-8">+ e+ a. v1 q3 w6 S7 U: Q, c
另外,表单的提交方式必须是post。 a$ j5 n( S+ F% F
step2:
R1 q) I9 k: c 在服务器端,使用servlet读取表单中的) E$ G5 N! B* u9 N+ R) O
请求参数时:, {5 r2 \! e" p; G
request.setCharacterEncoding("utf-8");* l- J4 ?6 ] P3 k
这行代码的作用:设置解码时的编码格式。
! Z: ~4 w6 z, s* n4 t
" B0 p: A' x" w6 p! c; n 如果servlet输出中文,要添加如下代码。
( t* ? V) J$ ^, M response.setContentType(7 F0 O# D: m1 H1 e0 {' N. c
"text/html;charset=utf-8");: c' x& u4 X2 o. W2 O, n
这行代码的作用:! Z2 x1 h, Z' Q5 p
作用1:指定out.println输出时所使用的编码。8 f3 }) m# n4 F( C- h3 v1 c
作用2:生成一个消息头
) J; t. K" a( Q: s/ p) R( ~+ t content-type:text/html;charset=utf-8
! P" ^- Z% \* D6 @5 K 告诉浏览器,返回的数据类型是html,编码是" x* O: J4 K q Z1 t' A
utf-8。这样,浏览器一定会以指定的编码来
6 M5 Y3 n" s# z2 M" z 显示该页面。
3 y! n. Z0 D% R" e1 H9 V+ j' C/ @
|
|