该用户从未签到
|
表单处理+ e9 G! _( V$ w$ C
1)如何获得请求参数值。
! C# ]0 e( C- r' x* l a,String request.getParameter(String paraName);
& T& \" Y% z, l7 Z G' ^ 要注意的问题:
9 u6 U2 `. o- \4 _ G% x 如果paraName与实际的请求参数名不一致,4 Q( E/ x2 u+ d. \6 M1 {1 h j1 i
则返回null。/ O5 G+ q @. `0 |+ m
如果没有输入参数值,则返回""。
& B. x! X7 S( H9 \+ v5 D0 u b,String[] request.getParameterValues(String
* f) i4 W; d5 u, T0 f: T- ]* ~ paraName);
# R0 ^' s" w/ K1 N3 b 用在有多个请求参数名相同的情况下使用。
$ b- \6 `) ]5 Y( I0 G9 ] 比如 ?interest=fishing&interest=cooking. Q- n* Z- [' ?) Q$ G6 x
2)如何处理表单中的中文1 |5 z v9 g; X7 j, s' M% N0 J
a,浏览器会如何对表单中的数据进行
. S4 z6 a, X: @7 n. V& } 编码?& r5 q4 \* i* n( c. ~. S+ @
当表单采用post方式提交时,浏览器会按照
" [2 W6 H# k' u2 v 打开该表单所在的页面的编码来对表单中的
- U; g6 F r6 B# C 数据进行编码。
v* D. Q9 Q+ X1 D" m b,在html文件当中,添加以下代码的作用
8 m# v; j" }5 ~) W$ \ <meta http-equiv="content-type" content=1 V* t% E7 f9 V2 j1 U( K. q+ R. M
"text/html;charset=utf-8">' s" e4 ^9 k0 L, i$ f; Q' O
作用1:模拟http消息头(content-type),' Z( h4 G/ ?! J! i$ [
让浏览器以utf-8的编码格式来打开该页面3 M B- u* M4 q# Z3 ?9 U8 [* p" X
(要确保html文件本身确定是使用utf-8保存的)。
' Z6 d6 D4 t1 U5 g! Z# w8 \ 作用2: 确保浏览器按指定的编码来对
Z" d; {" {/ g& u$ m 表单中的数据进行编码。8 s6 L( i( J2 d! g7 r3 {7 y' S
c,解决方案:
" e$ Y- |8 m0 L( h2 O! D step1:* o% b* z- Y# L; h, p e6 C9 G! o; H
在html文件中,添加
+ W2 a' |1 `' J6 x7 q. y <meta http-equiv="content-type" content=
# `/ R1 n& k8 C) P! ~+ y4 ]. c9 |! w "text/html;charset=utf-8">
0 f& L9 {; f8 G. U' U7 C 另外,表单的提交方式必须是post。
. O# A, w; m: v- s4 ^$ d0 U step2:8 X" { j) H& p2 C3 P
在服务器端,使用servlet读取表单中的
8 m9 j; i/ A1 y$ v 请求参数时:
1 P" D5 N& J3 D: b: k$ M request.setCharacterEncoding("utf-8");* a; Q, ]! f1 _6 c' v# e) O
这行代码的作用:设置解码时的编码格式。
" _$ ]) q2 B2 I( w9 p! ^8 f - h/ Z3 r4 t- w1 h. x8 e- E6 b
如果servlet输出中文,要添加如下代码。4 ^2 h8 l. J, r. |$ f
response.setContentType(
8 ?( ^# ?. o: N* L4 j8 M- I "text/html;charset=utf-8");
6 i* { A# \" A( J) i6 r 这行代码的作用:4 e4 F( q/ H4 P8 | n: A
作用1:指定out.println输出时所使用的编码。
. _9 i% m/ c( [. G+ L 作用2:生成一个消息头
+ B, i* f0 p) E5 o( X7 v( Y content-type:text/html;charset=utf-8% \ U1 o! t: U3 L2 g, d) t
告诉浏览器,返回的数据类型是html,编码是, S8 ` U8 Z% [" M- e
utf-8。这样,浏览器一定会以指定的编码来( N7 f7 S- ~# ]% l F( N% |
显示该页面。
5 o0 i" m2 |) |; B' H
' K1 U0 g+ ]$ F# L |
|