该用户从未签到
|
表单处理) U g/ O, K, Z$ |
1)如何获得请求参数值。
+ a y8 v' _8 ~7 O8 g) r a,String request.getParameter(String paraName);
- l3 z3 r7 N7 B 要注意的问题:
, V% _. i0 @8 H! P" _ 如果paraName与实际的请求参数名不一致,
/ B9 N' p/ s- |" m" E 则返回null。
- ? y* ]+ x3 m1 m% u1 ~3 C, f' J" [ 如果没有输入参数值,则返回""。3 c2 e" c2 S/ x+ _
b,String[] request.getParameterValues(String; c% H5 M i/ _7 C# q% S2 e6 f
paraName);
% K8 o8 M) F" f6 N) w" T 用在有多个请求参数名相同的情况下使用。
& B! F3 H9 d. F( q4 A* B 比如 ?interest=fishing&interest=cooking3 z2 o) [' _. M* w# u+ Z
2)如何处理表单中的中文3 l3 u6 V8 n1 u1 P* L
a,浏览器会如何对表单中的数据进行
) t- k3 o$ X( D4 H* H+ B 编码?) t& Q- @5 a3 n2 L. H- H
当表单采用post方式提交时,浏览器会按照2 H! e7 ?( d9 y& c( w
打开该表单所在的页面的编码来对表单中的
5 d1 Z# ^& ~9 [$ Y1 A 数据进行编码。/ v" b" c1 O2 g% @: j, E( N7 b( F
b,在html文件当中,添加以下代码的作用! x/ i& ]6 Z- w8 u
<meta http-equiv="content-type" content=
' m# ^1 \! b7 X4 s4 h5 O9 p" ^ "text/html;charset=utf-8">7 U( z1 ~, q9 P
作用1:模拟http消息头(content-type),
& c2 o6 ]# N* A4 O 让浏览器以utf-8的编码格式来打开该页面% ~8 y4 l" f: v; i* C# Z* Q
(要确保html文件本身确定是使用utf-8保存的)。
0 |' [5 D6 @# U: G7 w 作用2: 确保浏览器按指定的编码来对
% _+ ~2 D$ Q1 ?. H( N1 t 表单中的数据进行编码。
7 A# `# o4 e+ d" y c,解决方案:
- T! k- j4 u+ F6 s0 \ step1:3 M, s1 A, o2 ^& _% q6 V* u) w5 f2 n
在html文件中,添加5 P+ x i# t8 y b7 e
<meta http-equiv="content-type" content=- ?2 a. M* e. N% F% A$ x( J! A
"text/html;charset=utf-8">
3 l3 L0 J2 O4 E! E* \ 另外,表单的提交方式必须是post。: {. Q' H4 D* L- Y8 j) w& l7 i$ I2 Z
step2:0 }' l4 s$ ~" J' ]# Q6 F
在服务器端,使用servlet读取表单中的- D1 | L& Y2 [, o; ], h t
请求参数时:$ |6 Z; W: G2 W# G$ o2 S3 R
request.setCharacterEncoding("utf-8");6 \/ p* X5 ^- R5 L3 ? J+ i
这行代码的作用:设置解码时的编码格式。
7 X, Y: D' E# Q J7 s & l3 Z& E! I$ c
如果servlet输出中文,要添加如下代码。; \5 R3 Q4 I. t- Z3 v9 H1 H4 e
response.setContentType(
- h, s w; y$ v$ w8 @8 m "text/html;charset=utf-8");
# q" k3 u+ W5 f8 } 这行代码的作用:) p# J& Q+ ^* b1 l/ H
作用1:指定out.println输出时所使用的编码。
; |* z1 `# C" w# I# L, x5 Q 作用2:生成一个消息头- w9 ]4 a1 ]) V' ~4 m
content-type:text/html;charset=utf-84 b1 z6 q% x: T, |0 }8 Y
告诉浏览器,返回的数据类型是html,编码是9 }( k4 y% c4 M8 r4 r8 R& r
utf-8。这样,浏览器一定会以指定的编码来
8 k$ a; _1 L% q1 p5 P2 f 显示该页面。! ~* {' _5 v' f7 D/ Q# W
! E/ C" T# e, K2 S, n9 t
|
|