- UID
- 16428
- 主题
新手上路
- 金钱
-
- 威望
-
- 贡献
-
- 日志
- 好友
- 帖子
- 主题
- 听众
- 收听
- 性别
- 保密
|
JBuilder2005实战JSP之错误处理(4)
/ E2 e7 |8 g4 K" @$ V
' M; H* R7 [3 M/ C6 m( R+ n% ~ 错误处理页面error.jsp
& h' ~/ j) w9 e m5 i/ }3 C6 o$ C9 [+ R# Z
Web应用程序一般都有一个或多个统一的错误处理JSP页面,以便在功能性的JSP页面发生错误时,能以一种友好的形式向用户反馈。友好而统一的错误页面是Web展现层一个无可忽略的方面。, r2 w+ E/ X' \7 r# _
8 _8 d: y6 x# S 下面,我们创建错误处理error.jsp文件,其代码如下所示:! I# e( Z) } C. v& r
2 Z6 N" }7 D2 S7 l6 Z$ }; R
代码清单 11 error.jsp错误处理JSP页面# N C1 S x: e+ N9 y# }$ o* G
0 W$ q- B) h- z7 t( u
1. <%@page contentType="text/html; charset=GBK" isErrorPage="true" %> * p) }( U5 W8 W, B2 N) ?
3 t7 r7 z( n/ \& z
- _7 p! f7 f6 T$ O" a' | 2. <html>6 m" L$ ]/ |& W5 h
( m5 w( C S* N* j1 i
3. <head>* S7 m4 `& s, ~8 ?; ^% n
! R# m7 d, t/ }
4. <title>error</title>2 k$ {. S6 k+ s4 |
% I& T- ^3 o3 F1 M+ n
5. </head>
' `; Y& ~/ y# K
' [6 H9 R8 N4 E; H/ M 6. <body bgcolor="#ffffff">$ a. t+ P+ r! D$ ?6 Z' }, @' y
6 G. J. U& R3 _( S9 I 7. 抱歉,系统发生异常,点击<a href="login.jsp">这儿</a>返回首页
# R4 K4 x% P: } Y8 Y# r2 A' K& C3 e
8. </body>
9 l7 n1 |: m/ e. ^
2 D3 b9 Z; ]/ o# F/ i 9. </html>$ k& q. y+ O' D v
0 @. m. ?* R1 @, X) {5 v4 d% w
7 ^0 f" H: h' H5 {2 o7 D/ k5 r
- h7 S2 x: |/ y) A3 b 错误处理JSP页面的page指令标签中的isErrorPage属性应该设置为true,如第1行所示,这样JSP页面中就可以访问exception隐含对象了。在第7行,我们用一种"优雅"的方式向用户报告程序错误并提供一个返回到登录页面的链接。
, v) X, G' z& k6 F& P
! A7 N+ k2 K) G2 ?. u& X8 K c 现在,我们回过头去,通过<%@ page errorPage="错误处理JSP"%>将error.jsp指定为switch.jsp和login.jsp的错误处理页面。3 M% l5 s" B2 H! L
! S( u+ I/ e2 v _ k ~ 为switch.jsp页面添加错误处理页面后,其代码如下:3 A7 M5 a0 `' A; W6 J2 |+ `/ m
& @, `; n. i# E; p$ V9 X9 w
代码清单 12 switch.jsp添加错误处理Jsp页面
& x$ f) v7 j7 ^0 r M% D. s8 m1 N3 F% r* p% V j* _
1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%> ) V# w9 N7 m& w; W+ l7 y* l
% Z, L! b* K' p+ R7 ]4 b
3 N6 {# o0 t" }, F
2. <%@page import="bookstore.*"%>
1 `4 H+ @+ W4 ?+ f7 `/ L6 r4 X
# h& l. w, f( c! ^1 G 3. <%@page import="java.sql.*"%>9 n7 h7 a6 X' U6 S t8 X. u
( X# I3 P9 w+ ]7 T6 \8 V# K1 E
4. ,www.jnkfp12.com,www.njkfp12.com,www.qdkfp12.com" H' q' F6 L% D0 w
$ }8 N# ?6 D" c5 R; y2 n
. O+ c8 f; D. q4 _
1 s( _0 B+ z( }5 M# L( [2 r 为login.jsp页面添加错误处理JSP页面后,其代码如下:& T' \: Y2 o8 X4 o
" P0 X8 _" c( O( Z, }' u
代码清单 13 login.jsp添加错误处理页面. ~! u5 z+ o5 D% C" \
& z; z) H# e: P6 n 1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%> % G# Z% o. f" H
7 U# u" U6 k- r: M: m1 F1 K% Z' H! h- Y* k3 X/ t! T6 }) p& c
2. <%@page errorPage="error_error.jsp"%>
" L: `) p6 a) s3 U5 S' @7 m0 V- a7 |
3. ,www.shkfp12.com,www.sykfp12.com,www.szkfp12.com
( l; [' U+ c6 O$ }( C4 e
; Q# T9 s2 K9 ?9 A$ ^
, c, `/ X, |5 ]& Q) W9 E9 |4 S( S. ?, ?
这样,当switch.jsp的SQL查询语句不正确引发SQLException异常时,那个晦涩难懂的异常迹信息错误页面不见了,取而代之的是下面这个友好的报错页面:
7 k; i2 k6 d' e% @6 l) y3 w0 r$ \
2 s* g4 c2 m5 _% l- x3 n
+ X) ?+ l* R4 n- f' v. x0 V1 G5 ?. W: y. g
图 15 友好的错误处理页面$ Q3 B0 J9 q1 M
) I0 i3 q7 P4 j1 c9 T; _( M1 [4 F2 ?
" u3 N2 ~) X. |/ ?8 G4 o$ c5 E% W; u1 q# J8 }, K; U0 @
登录失败fail.jsp
2 v! }$ Q# \+ g' R1 I4 `% V2 Z
]" J; b. l( S2 O* t3 h 当用户提供不正确的密码时,switch.jsp将转向fail.jsp页面,同样你可以通过JSP向导创建fail.jsp页面,fail.jsp的代码如下:
+ I6 Y9 Y& c4 K; U$ p, n/ O! {; O! H; W% V$ m
代码清单 14 fail.jsp 登录失败页面
( m7 S. @: B8 A: F' E0 g, S+ Q- Z8 s% \9 q# k/ J, u
1. <%@ page contentType="text/html; charset=GBK" errorPage="error.jsp" %>
' X0 m7 m9 G- S8 Q Y
- u# u5 L, N* w F3 Q+ I, ^. s) s. c; K
2. <html>
9 q' d3 M) @0 Y7 u% i& n. | h' Z: q) a0 ]
3. <head>
4 ~4 x* W* q W" F( u6 U# n8 s* d V( x% ]% t5 _/ \
4. <title>
) H0 C9 W- m3 q2 H: R9 y' [) C0 |0 D
5. fail4 o: X0 a% r. B1 b* m# S, M
4 l) N( w( y0 E7 a/ k 6. </title>8 Q `0 [8 r) Z+ i% v
* v0 |& C- Z# q6 Z2 B8 j5 q* u 7. </head>
) a2 h$ W! ~' F' P" ~
" W# M: f& Q* a 8. <body bgcolor="#ffffff">$ v4 e+ a# l1 y, Z# T% M
# a0 t _$ B* Z+ E6 S3 v 9. 你输入的密码不正确,点击<a href="login.jsp">这儿</a>返回登录页面。
! n' p7 F) C. Z6 x% F. Y# M
2 r* W" P4 x8 u; y, S7 X 10. </body>- Z# n Z# z2 D' K
3 i5 l8 B, O1 L9 m; }4 v. b
11. </html>: D* S7 q! H* }' ^" C
: W3 \ b, D9 O0 C5 v- s4 F3 y u- U3 Z6 O4 t2 @
|
|