该用户从未签到
|
1)如何获得请求参数值。
; B! D* x1 t4 p' a: R a,String request.getParameter(String paraName);
. b. |4 q |5 L# i7 C 要注意的问题:5 H) S3 F# @7 s: B n3 S( W$ a$ w
如果paraName与实际的请求参数名不一致,! q4 k( Z7 [' x4 K3 C
则返回null。
1 k/ W$ b$ J5 p 如果没有输入参数值,则返回""。* P) H7 I5 f: E0 S+ l3 a$ w% I
b,String[] request.getParameterValues(String
( g0 c# J- Z# m' u* v4 Q! S6 D paraName);3 V1 q4 Z8 u; q
用在有多个请求参数名相同的情况下使用。0 l" H# p0 k0 Y1 s2 C3 l. v/ s7 H
比如 ?interest=fishing&interest=cooking
$ ~ |$ o3 O8 r0 T, r6 P7 x 2)如何处理表单中的中文
^% N4 @, f6 s$ i8 u8 Y+ g$ D a,浏览器会如何对表单中的数据进行- x2 s% I- X: s
编码?
' f# z2 `. z7 M1 S0 j& Q 当表单采用post方式提交时,浏览器会按照1 q$ _# E) e3 Y5 Y+ N! B
打开该表单所在的页面的编码来对表单中的7 g H8 A! `. }
数据进行编码。
2 a/ ~3 e9 M' \" ]$ R. r/ z* W5 b b,在html文件当中,添加以下代码的作用
! u) E! L+ T/ D <meta http-equiv="content-type" content=- K' _$ ` V! N2 } E
"text/html;charset=utf-8">" u) V8 Y/ j8 J) l
作用1:模拟http消息头(content-type),
( L! l' `' r$ G: S% F 让浏览器以utf-8的编码格式来打开该页面
8 m4 O; F! G+ s$ q+ C (要确保html文件本身确定是使用utf-8保存的)。
9 K7 t/ }+ T9 U; o Q 作用2: 确保浏览器按指定的编码来对, R( h, i" j* W9 m9 z; o6 K
表单中的数据进行编码。
3 E2 Z( a) ~) ~ c,解决方案:
& b$ \* p; X) H6 V9 s/ n step1:
8 V' J0 F8 g. Z6 I- x Z% U 在html文件中,添加7 ~3 v$ C- G5 h) v, D* I: W
<meta http-equiv="content-type" content=8 O1 y6 R4 h$ y/ q4 [, {
"text/html;charset=utf-8"> X! q7 ]' X& w( c
另外,表单的提交方式必须是post。
- x: g6 ~" N6 X! E7 P step2:2 t9 t. }% B3 `0 Z2 O* |4 c
在服务器端,使用servlet读取表单中的% S- U5 j7 U" z3 ?
请求参数时:! {5 Y( J5 L% x3 i
request.setCharacterEncoding("utf-8");
% p, V+ |9 `4 L' | 这行代码的作用:设置解码时的编码格式。7 x5 J$ d0 M3 {: [; }) F
9 a, }: _7 {$ B: P, s4 M) H% X 如果servlet输出中文,要添加如下代码。. q# w4 Z. E. }) J9 p$ T: M, u4 N3 U
response.setContentType(
* B# }1 b7 F& X; V6 i "text/html;charset=utf-8");6 ^0 L5 ]/ V. D/ A
这行代码的作用:
' e$ n& [9 G- |/ b& k6 } 作用1:指定out.println输出时所使用的编码。7 z: Y, F# ~! _8 @0 X9 |% n
作用2:生成一个消息头
& a1 U9 o( X$ Q. P: ^* \2 u" H% @ content-type:text/html;charset=utf-8( k4 M' X% C+ H' j
告诉浏览器,返回的数据类型是html,编码是
' R& z+ F q2 F- ^" i utf-8。这样,浏览器一定会以指定的编码来
- d, t# u/ H4 B+ k 显示该页面。
! K& X& G4 A% ]2 [) S+ O3 e+ H) |; D& q" a
|
|