该用户从未签到
|
表单处理
& O F" z9 ^$ b4 `5 Z+ s& _ 1)如何获得请求参数值。' T: O6 i% g6 o1 @' w+ |
a,String request.getParameter(String paraName);% ~5 d: o2 R: L2 n( h; n" W2 [+ y- w/ k$ `
要注意的问题:
9 p) P, T; i. N1 D: J# i0 ?8 P 如果paraName与实际的请求参数名不一致,
+ }6 _% z6 Z* ?. E) U3 z* u 则返回null。/ ?4 h1 L% H! w) |9 K3 |
如果没有输入参数值,则返回""。
: M. `6 ^/ D- W2 f3 } b,String[] request.getParameterValues(String
1 E4 C2 M+ ^9 C6 m3 I; {8 Y paraName);
7 s2 m2 `1 ^& }: [4 a. S$ A/ @ 用在有多个请求参数名相同的情况下使用。
5 U7 E: e( m6 E/ y4 }9 f, D& | 比如 ?interest=fishing&interest=cooking
. }; S% E. J K8 _1 C& j, w) k+ _$ ~ 2)如何处理表单中的中文( T8 d0 X2 e, L! Y7 G3 E
a,浏览器会如何对表单中的数据进行
4 f4 a2 O' s9 E F- |: Y T" @ 编码?9 ~) `2 h% }, n! o2 @
当表单采用post方式提交时,浏览器会按照
6 C! @$ \' i% m& Z; u0 y0 p 打开该表单所在的页面的编码来对表单中的9 q3 r" ~/ T7 a, d( T/ m, l
数据进行编码。
. y$ x4 c. q& i& i$ m b,在html文件当中,添加以下代码的作用! Y( |" K H3 K" b# o* L
<meta http-equiv="content-type" content=
" O# a& e- H$ S. } "text/html;charset=utf-8">& L5 a8 X; ~) L6 a* L
作用1:模拟http消息头(content-type),
4 ]( T* u+ D3 |$ y 让浏览器以utf-8的编码格式来打开该页面9 ~& ~4 s4 S. Y; L7 Q4 [
(要确保html文件本身确定是使用utf-8保存的)。
* t" H. P( I! G 作用2: 确保浏览器按指定的编码来对
& h, ~8 a/ E" \7 W6 w: i) R4 {) K$ b 表单中的数据进行编码。- X; V7 x2 ~9 |6 p# C3 {
c,解决方案:
5 a! H6 p, v1 r; z/ t step1:
" ~. M4 r5 v# M, A 在html文件中,添加6 R% b( T6 s: x% l( k9 }' L) ^# N
<meta http-equiv="content-type" content=
& G; F* Z/ p* |7 r+ f "text/html;charset=utf-8"># x) O) o x* O+ j G9 k& `
另外,表单的提交方式必须是post。1 d: b: J6 m" \
step2:% f6 e2 h9 H1 f3 v5 ]6 S! _( ]
在服务器端,使用servlet读取表单中的
3 a; k- O' V7 C5 l% V J$ q- h 请求参数时:; M" P* [) l# F; b+ S* w
request.setCharacterEncoding("utf-8");8 |/ P, `) g7 X3 {! r
这行代码的作用:设置解码时的编码格式。
7 C0 y" A7 B6 ?6 p( T: q& U! U , Q2 {8 {0 A9 _) R+ ?6 [, f1 z
如果servlet输出中文,要添加如下代码。+ f8 s7 F, V& Y* C; w
response.setContentType(
8 x7 o- t7 b u, S- ?$ @4 N "text/html;charset=utf-8");( z: Y, K/ `3 d$ n1 \1 E
这行代码的作用:" \ D- `1 M" W$ n9 E) p
作用1:指定out.println输出时所使用的编码。' u0 P6 ]6 S- v- [, Z% e2 X4 s
作用2:生成一个消息头+ v# `! _$ J B s
content-type:text/html;charset=utf-86 Z& } D% ]2 Y
告诉浏览器,返回的数据类型是html,编码是
/ ^% W7 [6 Q( g utf-8。这样,浏览器一定会以指定的编码来
1 O+ @) P. d3 D. Z7 }! e 显示该页面。
9 J- r" J7 T3 t& c' L5 o9 |! }# u; R1 B* Q. I
|
|