|
该用户从未签到
|
表单处理
+ }: j9 r: D( o, M0 h/ ? 1)如何获得请求参数值。
* _5 u- A; J2 v1 s. |: R2 U a,String request.getParameter(String paraName);
! W s9 b% ]/ X( `1 z! I, L8 Y 要注意的问题:
$ o9 Z4 d7 Z" S$ F v) H5 M* H 如果paraName与实际的请求参数名不一致,7 c( u5 I5 H6 T y, ]
则返回null。
( t% w) r8 H. j5 o8 K8 L; p5 b/ X, x: e 如果没有输入参数值,则返回""。
; w' g" C( P& m* b b,String[] request.getParameterValues(String
% p o! C5 _* {+ U* [ paraName);$ S8 p% W3 n' e: \1 g# q
用在有多个请求参数名相同的情况下使用。' \4 M) N N& Z
比如 ?interest=fishing&interest=cooking y1 ]% _! h+ \4 `
2)如何处理表单中的中文
5 ^7 K( x9 r8 t5 }$ P+ F) l5 i a,浏览器会如何对表单中的数据进行+ |' N7 i v8 F* Z: h6 m: t
编码?: k: @; a- q2 G# L' ?4 `7 a
当表单采用post方式提交时,浏览器会按照& Z! J+ `$ v$ B6 F6 f) c, b& O9 V
打开该表单所在的页面的编码来对表单中的
9 b; R& d& @ f3 x 数据进行编码。
; L5 i$ i, e! E2 r b,在html文件当中,添加以下代码的作用" b' ]5 [) `7 Z2 O& f
<meta http-equiv="content-type" content=
7 o0 v: j' C6 \ X& g+ y6 s "text/html;charset=utf-8">% l* z% I" v6 q7 F" J
作用1:模拟http消息头(content-type),8 `8 o) W8 _8 u1 {5 o
让浏览器以utf-8的编码格式来打开该页面' ^. A; Q! O3 o5 f
(要确保html文件本身确定是使用utf-8保存的)。
1 {# D C) T* s* X/ R 作用2: 确保浏览器按指定的编码来对# `) s' Z! g; _9 P8 f1 ]
表单中的数据进行编码。
' K' V: R* J5 ^. J, w, {: c c,解决方案:
2 i! l+ \+ X8 ]8 w- ] step1:, ~/ b8 f7 ~4 z& c
在html文件中,添加
! P( P O* E8 w# B0 }; h c <meta http-equiv="content-type" content=
' D) R$ ~% Q5 D' k- X8 z& x, ~ "text/html;charset=utf-8">
$ Y: e) `! C! Q& j. E+ b0 D' M) R+ @* w 另外,表单的提交方式必须是post。& c' `+ D' ]1 u7 j
step2:
4 w6 L" E8 P; e- x3 F {7 i ~ 在服务器端,使用servlet读取表单中的
( ?' O0 i6 f S' |% K/ V' c3 a 请求参数时:/ k! x+ ]" V& [# w8 B
request.setCharacterEncoding("utf-8");# G$ c3 o. Z5 Z" v: R& P; t
这行代码的作用:设置解码时的编码格式。
0 b" {( @; m2 E0 Q4 B- w( d
/ {2 z+ M+ O E! p4 u* X 如果servlet输出中文,要添加如下代码。4 }% x7 @9 l6 a+ E$ f/ B
response.setContentType(
& w3 ~, M2 f2 Q2 s; c7 ]5 c3 C "text/html;charset=utf-8");% `6 v/ Z r* A- g3 d8 I' A
这行代码的作用:' l1 v/ H" g9 x1 x" ^1 T* c4 T3 L+ W
作用1:指定out.println输出时所使用的编码。' D: a9 Y9 `7 f6 [# M7 X
作用2:生成一个消息头) [6 e$ _2 R) |
content-type:text/html;charset=utf-8& ^: L2 H- I: j; T/ [; h; S
告诉浏览器,返回的数据类型是html,编码是2 d) G$ k- E( ]4 @
utf-8。这样,浏览器一定会以指定的编码来2 m& z, o, e' E2 I3 _, G
显示该页面。; m+ n" [0 g9 [
4 d. \+ | Q2 x/ r' @" ?2 [ |
|