该用户从未签到
|
表单处理
; S- D5 }) L4 b; j1 y 1)如何获得请求参数值。
4 d# Y' ?6 t& p$ _# R a,String request.getParameter(String paraName);9 _/ |, A! D4 w: ]' b' g& }
要注意的问题:; ]; ^9 L9 x4 D8 X
如果paraName与实际的请求参数名不一致,
7 K! @: l4 Q ]; w 则返回null。
6 J/ n( d: J( q- z6 Y 如果没有输入参数值,则返回""。
1 j. n4 J k, i8 U9 z3 L b,String[] request.getParameterValues(String8 g# s8 l5 b" y" B
paraName);* Z" D/ o+ [ [# G9 { _; q
用在有多个请求参数名相同的情况下使用。) T. A5 P/ _1 j8 q }# E* x" H$ q/ [ x
比如 ?interest=fishing&interest=cooking
1 {) L$ E# k" {' p$ k( }+ p {( q 2)如何处理表单中的中文
9 c) k4 g* E2 J) h5 p: K a,浏览器会如何对表单中的数据进行
2 o7 i* L8 {3 I3 K/ Z 编码?
|3 `! n' L3 Z; a 当表单采用post方式提交时,浏览器会按照
1 A5 E# B% k' x; \7 ~3 W 打开该表单所在的页面的编码来对表单中的
0 W0 w, C* Z0 S 数据进行编码。
8 r: }# Z( i# [" N5 o. m9 s b,在html文件当中,添加以下代码的作用
2 u! j, [1 G( B' `$ r <meta http-equiv="content-type" content=
+ n6 D1 J# H# y "text/html;charset=utf-8">
3 _7 H. x* F+ K* W" } 作用1:模拟http消息头(content-type),
+ M* {' l: h1 ] 让浏览器以utf-8的编码格式来打开该页面4 s1 _2 O3 Y& Z$ O$ T% c
(要确保html文件本身确定是使用utf-8保存的)。7 z% f( x% F4 t ]9 ?2 }
作用2: 确保浏览器按指定的编码来对& p; U. Q$ I( J
表单中的数据进行编码。6 D1 U3 S' x& f+ q: p" x: v7 x
c,解决方案:
6 T1 p6 h9 i9 Y/ {3 }- ^" M: o0 s step1:
. W& l# _4 B3 P6 E# s( a 在html文件中,添加
' F9 V6 M4 e8 u& f; F% s <meta http-equiv="content-type" content=
; }+ q: w* } G, Q* |, Y; f) b5 g "text/html;charset=utf-8">
5 x7 o) k0 F# ]4 O% W5 A2 c; G4 e 另外,表单的提交方式必须是post。
( Y8 k; v1 t; i( E+ x step2:
4 b! k# l: W% M* c% c+ c 在服务器端,使用servlet读取表单中的4 E; a/ n6 ~7 E; X
请求参数时:* u% }/ | K7 f! U# B" c
request.setCharacterEncoding("utf-8");
! g% a# }0 W+ {1 O 这行代码的作用:设置解码时的编码格式。8 i b* `7 G4 h% j5 H$ a0 i1 X
4 W4 K9 K4 w4 ^7 ]8 s2 a
如果servlet输出中文,要添加如下代码。
8 u% Y) B0 x/ H% R, k response.setContentType(
s# T2 C# J3 F& x "text/html;charset=utf-8");
1 n2 z& X' a0 p 这行代码的作用:. e9 m( h; `9 ^9 l l1 p! C% B
作用1:指定out.println输出时所使用的编码。
# [. l2 R% `, U* d 作用2:生成一个消息头3 M0 Z2 q# E/ s/ J3 e
content-type:text/html;charset=utf-8
& s4 A; d' Q1 I2 x! T( n7 B 告诉浏览器,返回的数据类型是html,编码是
3 Y+ A# K9 ?$ D utf-8。这样,浏览器一定会以指定的编码来
6 u5 q) e/ ^, P& D! K 显示该页面。
& S t. t5 P+ z) C# i- S. }2 |& B8 y1 S. G) l
|
|