|
该用户从未签到
|
1)如何获得请求参数值。
# T; L( M4 w! p W a,String request.getParameter(String paraName);
0 g/ t' ?. V, v9 N' v, d 要注意的问题:8 x/ S9 |: m6 F/ P' d- U) P& X
如果paraName与实际的请求参数名不一致,6 {7 P l# n0 t0 m* u+ A
则返回null。
. z5 @: B$ g" @( E6 }. C( V 如果没有输入参数值,则返回""。6 h* x( l$ u; D3 k9 P% U2 l
b,String[] request.getParameterValues(String# A- `- u) z" X
paraName);* k1 O W7 W; Y- W. I
用在有多个请求参数名相同的情况下使用。: _% L% w6 R- m0 f+ |& [- G0 E3 Z
比如 ?interest=fishing&interest=cooking9 j; w8 B: t2 h5 p& n+ I0 J
2)如何处理表单中的中文! h9 _1 E& r4 o/ B) B
a,浏览器会如何对表单中的数据进行$ M! Q' }% u8 \
编码?
% R9 \* I# A1 S) M4 u" b5 |4 u 当表单采用post方式提交时,浏览器会按照
9 @! {4 V1 h6 k6 V# {' Z 打开该表单所在的页面的编码来对表单中的. P5 w9 r, M& j7 ~+ G/ [
数据进行编码。+ O- r* O# a* K
b,在html文件当中,添加以下代码的作用
4 b @ {. ? W- _; ? <meta http-equiv="content-type" content=
) e9 g8 U# x" d6 ?$ j& j "text/html;charset=utf-8">/ b7 _7 S9 d+ Y7 k
作用1:模拟http消息头(content-type),
4 r, f2 l: [' z( Y( F" M: T; e 让浏览器以utf-8的编码格式来打开该页面1 O' C3 K) M% K3 w* h
(要确保html文件本身确定是使用utf-8保存的)。
( `& {7 d) r: e8 Y2 v- a 作用2: 确保浏览器按指定的编码来对
3 {. L9 Z8 {. N6 L. j 表单中的数据进行编码。
( i G! ?* {1 Y+ _ c,解决方案:
1 T- C- L3 l j8 F3 G* M2 S. G* u step1:' f6 D+ X% j4 U- U# C( t& J
在html文件中,添加5 ^+ b; q9 w/ t' j( a1 ?
<meta http-equiv="content-type" content=$ N9 F; c* S2 q: e. R, P
"text/html;charset=utf-8">7 @2 d. Q- N+ ?: m" S
另外,表单的提交方式必须是post。6 X& F. e }' B/ Q4 g' ]% F' c
step2:
/ C, J- \: G g" K0 r3 Y 在服务器端,使用servlet读取表单中的" J7 Z n. y& p* p2 {
请求参数时:/ {8 q! U: ^4 }' R) J
request.setCharacterEncoding("utf-8"); s! q9 S; F/ }1 U4 }. r
这行代码的作用:设置解码时的编码格式。9 ]3 t3 R0 {* M( h1 S
1 U3 ?; B+ O* ?( i4 _
如果servlet输出中文,要添加如下代码。
% A" M/ k2 G( ]2 F- ?; u response.setContentType(% e5 H$ w0 ~- N
"text/html;charset=utf-8");) F- ~3 s; Q* ~: g! @7 e
这行代码的作用:
2 W# t, s5 f& @, f- o 作用1:指定out.println输出时所使用的编码。8 }! H E' |) z# z/ y% r7 h0 w
作用2:生成一个消息头
) V5 t$ I# H! V/ o1 } content-type:text/html;charset=utf-8
! n# `& I: q {/ v, L8 j W 告诉浏览器,返回的数据类型是html,编码是- g! T! t' v& S& a
utf-8。这样,浏览器一定会以指定的编码来
6 Y8 E6 R+ G* M0 X0 c/ [ 显示该页面。
6 p4 t: C# G( i) R6 r" U6 X. ? ?
|
|