该用户从未签到
|
表单处理
% U# w g! r) w5 }( I% {: g0 z. M 1)如何获得请求参数值。5 C: R2 A/ E2 H# P9 A4 n+ h$ Z
a,String request.getParameter(String paraName);4 L1 r) Z& H$ A7 o9 A% ~
要注意的问题:
8 b# e4 d' m& s" f2 U" q 如果paraName与实际的请求参数名不一致," ~* m, J1 N- n+ H$ _
则返回null。
1 K( E$ N/ V0 F& K S 如果没有输入参数值,则返回""。
7 g: b& E# F% R* J" ^7 g& z9 d( Q b,String[] request.getParameterValues(String
7 }/ c% e- k( B& `% |" k paraName);
3 P4 I8 G8 n( h- a; U 用在有多个请求参数名相同的情况下使用。
4 z9 A8 n! v+ d: @1 |9 F& f 比如 ?interest=fishing&interest=cooking9 Y) q+ L. v1 K, P, D* c
2)如何处理表单中的中文
2 I. c8 ?/ g ^* j7 D a,浏览器会如何对表单中的数据进行
& g1 z* s( s3 i) c! b 编码?) y0 X' S X% b/ H
当表单采用post方式提交时,浏览器会按照
0 n3 q- E4 u) E; [5 C+ U 打开该表单所在的页面的编码来对表单中的
" W& F# V% q |3 b4 U 数据进行编码。1 Z b O; n* X m! d9 P% c5 `# ?
b,在html文件当中,添加以下代码的作用4 `% j6 Z% @; W) V& f# a
<meta http-equiv="content-type" content=# Q9 N! x# i* m" @) { [
"text/html;charset=utf-8">. k% y4 y- t6 ^) _; Z' B6 v4 D
作用1:模拟http消息头(content-type),
4 T9 k, _& _* Y5 A( j5 c* G/ r+ d 让浏览器以utf-8的编码格式来打开该页面
# r, Q& w) z5 L5 H2 Q9 W (要确保html文件本身确定是使用utf-8保存的)。- f0 Y# |: Q. E$ g! ?+ g- D' B0 H2 h
作用2: 确保浏览器按指定的编码来对
/ C) }& t9 z, d, a. N r: J3 G 表单中的数据进行编码。( S; \( a1 D+ `3 l8 q6 M
c,解决方案:
3 N+ f/ u/ g9 z) M! Q: m! r4 V! x step1:
9 ?9 \5 [: r* e9 ~' x/ r8 Q 在html文件中,添加- H9 d/ U7 K8 ]6 ^
<meta http-equiv="content-type" content=) n( D5 ^3 B& g+ D
"text/html;charset=utf-8">( Q# L8 I9 }- S' H! j) r* O, @
另外,表单的提交方式必须是post。
1 R' f9 U Y# @2 a1 R step2:
* k- |1 ^! a5 B1 o* z& j 在服务器端,使用servlet读取表单中的
& O. m% U1 \1 a' N 请求参数时:% M! o: A" Z2 ~
request.setCharacterEncoding("utf-8");
- e7 O3 o5 d C% k 这行代码的作用:设置解码时的编码格式。
) ]9 `/ `) x j8 B / a+ G2 l9 K( ~5 P4 {3 u! [# Q6 I3 m
如果servlet输出中文,要添加如下代码。1 p7 c: ~5 Q2 V) g6 W J9 U* T
response.setContentType(
0 ?8 D) e& j3 C4 Q' G2 d "text/html;charset=utf-8");1 y9 G8 t$ N) L6 T
这行代码的作用:
8 ]* q% y- D9 [0 J6 p' ?7 O 作用1:指定out.println输出时所使用的编码。# `* D4 U5 l6 H( A8 M
作用2:生成一个消息头
f+ Q+ J* V( u+ E Z( u0 x5 s content-type:text/html;charset=utf-8" P( {4 p& q) Z
告诉浏览器,返回的数据类型是html,编码是/ o7 D: O4 g% e8 _4 G
utf-8。这样,浏览器一定会以指定的编码来( S5 I& d. v! ~8 T3 m$ f
显示该页面。4 t2 a3 m- k# `$ Z
; o. l8 e+ i. p5 Y
|
|