|
该用户从未签到
|
表单处理3 _% Y0 j! X a7 T% _" h
1)如何获得请求参数值。3 V% f* q( x) u: ?
a,String request.getParameter(String paraName);
& D! T8 ~5 X( g( d1 [ 要注意的问题:. J* O1 Q2 p4 D$ H+ q% b" j; Y
如果paraName与实际的请求参数名不一致,
% ^$ R& C/ t* A 则返回null。, J% \7 w, _. D8 Y: E
如果没有输入参数值,则返回""。+ R x/ N: s! G# C+ \+ t$ J
b,String[] request.getParameterValues(String! o8 D+ q; K" w5 x* C' F, R& g, V
paraName);
3 g1 e4 G! r' `% ?7 i 用在有多个请求参数名相同的情况下使用。8 ?$ P2 a$ l1 X
比如 ?interest=fishing&interest=cooking
* g, u! k5 B6 _# v$ _1 \ 2)如何处理表单中的中文
! Y0 ^: O$ P9 t' ] a,浏览器会如何对表单中的数据进行2 l0 @" q3 I1 ^, N* F, S$ Y+ P
编码?
! y2 {6 ^# o0 e3 _4 W, R 当表单采用post方式提交时,浏览器会按照
: g' {' E/ p( c 打开该表单所在的页面的编码来对表单中的
: m7 u7 K7 h1 U3 `' k# B; J3 ^ 数据进行编码。/ n& ?; A1 T5 I/ D
b,在html文件当中,添加以下代码的作用! M. z3 O+ ~( f! P& O) }) a
<meta http-equiv="content-type" content=
9 X4 k" c. L M. K0 s "text/html;charset=utf-8">& M8 \- N7 s( s# t& T! _. |% ^! G7 P
作用1:模拟http消息头(content-type),
: v4 J3 M9 E& V. |: W 让浏览器以utf-8的编码格式来打开该页面1 C4 _ W1 s9 r7 f% b
(要确保html文件本身确定是使用utf-8保存的)。
2 }+ v4 k! u+ t, E1 \ 作用2: 确保浏览器按指定的编码来对
! a" m( K4 b" H) n+ x7 U 表单中的数据进行编码。( S2 N0 X' p6 i7 ?
c,解决方案:2 N5 v* n9 n8 y8 q; d
step1:! z! E: D/ D" X/ ~# u: l9 Y
在html文件中,添加
4 R: y% m) V$ O- |& `5 M1 r4 J% l <meta http-equiv="content-type" content=
* [3 z8 g+ \3 U0 \- V i0 \ "text/html;charset=utf-8">: p8 T! F% y5 v4 d Z# m% A
另外,表单的提交方式必须是post。% _2 S8 @& T ]! X- r
step2:
# w8 P3 y# o0 ^3 s% e0 l& n- U 在服务器端,使用servlet读取表单中的6 X5 {9 [% D; W8 r/ M
请求参数时:
A( A5 M1 q4 H, L) X request.setCharacterEncoding("utf-8");
; M& U0 H7 D4 v# H4 O5 T 这行代码的作用:设置解码时的编码格式。6 O$ b( @3 j5 o/ k. B U D
/ D- b4 m* l% Y! E; \/ N 如果servlet输出中文,要添加如下代码。
0 ?. N; R b( q; g+ G& j response.setContentType(
; v) C; g# _- x$ ^" A9 L "text/html;charset=utf-8");
7 l/ A- n- g8 a6 i$ U$ m# r 这行代码的作用:
6 o' U3 D9 h- y, b; b+ l" Q1 y 作用1:指定out.println输出时所使用的编码。* b# l$ h; a- m2 i5 k" h2 g: G* [
作用2:生成一个消息头$ N$ {9 J7 n8 G! x4 `, i4 B
content-type:text/html;charset=utf-8
" p' e7 [3 d9 C: V5 a- X( k5 N 告诉浏览器,返回的数据类型是html,编码是# d/ C7 B- z0 }$ R3 m
utf-8。这样,浏览器一定会以指定的编码来
+ m' u- v* m- W- k1 | 显示该页面。1 j3 e* X0 I. ] J- |: T. }
% ~0 ?7 P* U; y6 n+ @) J- ] |
|