该用户从未签到
|
表单处理
5 M7 g7 p( h& J1 M 1)如何获得请求参数值。
5 D3 z x/ x# U* W4 |; A, q: _' ~ a,String request.getParameter(String paraName);
8 v$ G$ S' d5 G: O* m0 k# t# z 要注意的问题:+ ~ n+ b" P" H" K4 f/ j
如果paraName与实际的请求参数名不一致,; @9 J! }5 t9 ~7 O& E
则返回null。8 ]0 ]" Q* p# j% P+ ~6 q1 f. Z
如果没有输入参数值,则返回""。
0 S3 f# s6 d6 c- K: d+ q1 E+ O b,String[] request.getParameterValues(String! b3 j/ D) [% g
paraName);
z1 Z( y2 c$ E( U6 } 用在有多个请求参数名相同的情况下使用。
# ^: ~/ r4 C( S 比如 ?interest=fishing&interest=cooking) _4 u' k. t: \" F$ m4 ^7 ^
2)如何处理表单中的中文
7 W& p; m- ^) {1 h" f/ X, K a,浏览器会如何对表单中的数据进行
- N; n" n) ^, J$ a( N" q$ D D 编码?( P/ R6 B+ W( N
当表单采用post方式提交时,浏览器会按照 c9 J& ?( u$ ^ R" v
打开该表单所在的页面的编码来对表单中的
$ A$ C) X; s+ A }2 Q! l 数据进行编码。- W. }7 P9 G" s4 z6 K! u
b,在html文件当中,添加以下代码的作用
3 j0 R- q& |6 _5 h$ P! |& H) t <meta http-equiv="content-type" content=
R( J6 [$ I1 C% f1 q. m6 s "text/html;charset=utf-8">" a: @5 }$ I2 x8 |( I
作用1:模拟http消息头(content-type),
/ \: p" R f" x; V 让浏览器以utf-8的编码格式来打开该页面- H' B! K7 m# t
(要确保html文件本身确定是使用utf-8保存的)。
( @( E8 ]4 h; g- J; I# ` 作用2: 确保浏览器按指定的编码来对
. `+ W/ o0 t" n# _ 表单中的数据进行编码。
1 J2 w6 \' ], B7 z+ d; D c,解决方案:: c! x, p! S2 F
step1:
0 j* w, e9 t$ k2 ~" S5 } 在html文件中,添加
+ q% V, ~6 T: D( q* ] <meta http-equiv="content-type" content=
9 o. g* d G0 X/ S' | "text/html;charset=utf-8">0 B6 O! `. A7 p' X8 m+ c( t
另外,表单的提交方式必须是post。 D: S# c1 w" D9 O
step2:
0 q' b) H+ { f# U) v6 o1 U+ a 在服务器端,使用servlet读取表单中的: J3 o1 v9 D1 z$ ]: M, k
请求参数时:
6 O c0 M0 Q1 u( f6 w request.setCharacterEncoding("utf-8");+ K% t4 U. y+ ?' V
这行代码的作用:设置解码时的编码格式。
, m5 G3 j& r* H% @( [8 S" B$ @ ( ?, l1 U1 A# Z6 A& M
如果servlet输出中文,要添加如下代码。0 `, a/ ~" T5 ^" g
response.setContentType(
. @3 j0 o% @$ X" j- e9 M# v' V% M "text/html;charset=utf-8"); w* q2 L6 R: R2 R6 C
这行代码的作用: k: w) j) q8 H; X
作用1:指定out.println输出时所使用的编码。
; ~& i' c, W A$ p9 ` 作用2:生成一个消息头
$ Q1 u1 l6 L- @$ d content-type:text/html;charset=utf-8
7 C( A+ S9 _8 H& O' |1 o) w4 ~ 告诉浏览器,返回的数据类型是html,编码是" z; S* u. S5 @7 a( m4 e* Z
utf-8。这样,浏览器一定会以指定的编码来
$ c& U8 F: C r2 W T 显示该页面。, {; T3 g1 R$ l. e4 y" {+ J
4 e: D0 k1 N2 i$ \% O+ Y! J |
|