|
该用户从未签到
|
1)如何获得请求参数值。+ I: Q( n9 O2 e6 E9 D0 R. t; j
a,String request.getParameter(String paraName);
a% @$ r/ E0 ?, n- X 要注意的问题:4 X% B% H8 ~! a T
如果paraName与实际的请求参数名不一致,
7 h( a" i! Y$ v* ^6 b" D# I X 则返回null。
$ ^3 }$ c8 }9 r3 L0 Q0 W3 a8 w 如果没有输入参数值,则返回""。0 V! X! \' t6 g# F$ ^; @
b,String[] request.getParameterValues(String! d2 \5 |" m5 X9 y5 Q
paraName);
3 p2 B% z% y& b' S' n 用在有多个请求参数名相同的情况下使用。
9 K& f) w+ Y' h 比如 ?interest=fishing&interest=cooking
! a4 o; { f; O( `' w1 ` 2)如何处理表单中的中文% Y4 K$ B" A, n3 k7 H- v9 b9 Z
a,浏览器会如何对表单中的数据进行1 C s9 t( Y/ o7 @
编码?$ \/ ^2 w& H4 e3 g* }
当表单采用post方式提交时,浏览器会按照
% r3 Z9 R, x- F, T# m# A) m0 { 打开该表单所在的页面的编码来对表单中的7 X$ V' j1 _; |7 E9 q
数据进行编码。
& m7 I! D: Y& [1 L' n0 k, |4 B b,在html文件当中,添加以下代码的作用( J# g8 f1 Z% L
<meta http-equiv="content-type" content=
7 s2 v3 k" d$ }4 ~& I "text/html;charset=utf-8"> s: G/ X, A1 W/ g
作用1:模拟http消息头(content-type),
( O# X" G0 S7 |8 t 让浏览器以utf-8的编码格式来打开该页面
; X2 l `- A8 c P (要确保html文件本身确定是使用utf-8保存的)。) ]1 b7 x, s& D& ]" o
作用2: 确保浏览器按指定的编码来对
- }, X3 U* t0 z1 O- s. j 表单中的数据进行编码。: b6 f3 c5 j2 C' g$ Y0 u/ g. ?
c,解决方案:
& ~6 J5 z, \" E6 z$ U! R step1:
. ]' w8 r, c _6 }- c4 F 在html文件中,添加
8 l" _) r; ^; M3 _. V <meta http-equiv="content-type" content=
8 W, a; S- m7 s "text/html;charset=utf-8">3 q( H9 a: N# Q+ x; r; i* a3 a
另外,表单的提交方式必须是post。
+ \% v1 g+ D. Q1 j step2:. y, C4 d# I3 T
在服务器端,使用servlet读取表单中的
8 F+ a t6 y7 p% S3 }* X! n2 J' x/ X 请求参数时:, a3 w- W+ b3 V7 `
request.setCharacterEncoding("utf-8");" }+ q2 K, ^' G# h* g; ]$ w$ t
这行代码的作用:设置解码时的编码格式。
' p+ @8 x" B0 k$ u& h* L+ h; M; s" K
6 I4 L% P; E) |+ q 如果servlet输出中文,要添加如下代码。
1 U( Q" D+ `% y response.setContentType(
. o0 P3 O; D) T "text/html;charset=utf-8");
6 t* [* X' K, b; o9 P0 S+ I 这行代码的作用:
* ~" k V( [3 h* s8 B 作用1:指定out.println输出时所使用的编码。( V/ _% U0 l- Z
作用2:生成一个消息头3 x4 H$ x% N) a4 p2 \8 ^
content-type:text/html;charset=utf-8! @' [/ ]) v+ W4 s- g
告诉浏览器,返回的数据类型是html,编码是- f0 Q$ W9 K2 x$ I! R; d" e) b9 j
utf-8。这样,浏览器一定会以指定的编码来- L9 J1 b+ y# j' T; ~
显示该页面。5 n" o! u8 T9 F# c& e7 y, A- D: x
- n9 F0 j$ U1 M' [ |
|