JBuilder2005实战JSP之错误处理(4)

2016-01-29 12:06 5 1 收藏

JBuilder2005实战JSP之错误处理(4),JBuilder2005实战JSP之错误处理(4)

【 tulaoshi.com - Java 】

    错误处理页面error.jsp

  Web应用程序一般都有一个或多个统一的错误处理JSP页面,以便在功能性的JSP页面发生错误时,能以一种友好的形式向用户反馈。友好而统一的错误页面是Web展现层一个无可忽略的方面。

  下面,我们创建错误处理error.jsp文件,其代码如下所示:

  代码清单 11 error.jsp错误处理JSP页面

1. <%@page contentType="text/html; charset=GBK" isErrorPage="true" %>
2. <html>
3. <head>
4. <title>error</title>
5. </head>
6. <body bgcolor="#ffffff">
7. 抱歉,系统发生异常,点击<a href="login.jsp">这儿</a>返回首页
8. </body>
9. </html>
  错误处理JSP页面的page指令标签中的isErrorPage属性应该设置为true,如第1行所示,这样JSP页面中就可以访问exception隐含对象了。在第7行,我们用一种"优雅"的方式向用户报告程序错误并提供一个返回到登录页面的链接。

  现在,我们回过头去,通过<%@ page errorPage="错误处理JSP"%>将error.jsp指定为switch.jsp和login.jsp的错误处理页面。

  为switch.jsp页面添加错误处理页面后,其代码如下:

  代码清单 12 switch.jsp添加错误处理Jsp页面

1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%>
2. <%@page import="bookstore.*"%>
3. <%@page import="java.sql.*"%>
4. …
  为login.jsp页面添加错误处理JSP页面后,其代码如下:

  代码清单 13 login.jsp添加错误处理页面

1. <%@page contentType="text/html; charset=GBK" errorPage="error.jsp"%>
2. <%@page errorPage="error_error.jsp"%>
3. …
  这样,当switch.jsp的SQL查询语句不正确引发SQLException异常时,那个晦涩难懂的异常迹信息错误页面不见了,取而代之的是下面这个友好的报错页面:


图 15 友好的错误处理页面
  登录失败fail.jsp

  当用户提供不正确的密码时,switch.jsp将转向fail.jsp页面,同样你可以通过JSP向导创建fail.jsp页面,fail.jsp的代码如下:

  代码清单 14 fail.jsp 登录失败页面

1. <%@ page contentType="text/html; charset=GBK" errorPage="error.jsp" %>
2. <html>
3. <head>
4. <title>
5. fail
6. </title>
7. </head>
8. <body bgcolor="#ffffff">
9. 你输入的密码不正确,点击<a href="login.jsp">这儿</a>返回登录页面。
10. </body>
11. </html>
  当用户密码输入错误后,所看到的fail.jsp页面效果,如下图所示:


图 16 fail.jsp页面效果 

来源:http://www.tulaoshi.com/n/20160129/1484622.html

延伸阅读
Struts是基于Model 2实现的技术框架,Model 2是经典的MVC(Model,View,Control)模型的Web应用变体,这个改变主要由于HTTP协议的无状态性引起的。Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到不同层间松散耦合的效果,提高系统灵活性、复用性和可维护性。在多数情况下,你可以将Model 2与MVC等同起来。 图 1表示一...
标签: Web开发
有句英语谚语叫作"Look before you jump",在着手重构前,看看这个更改的影响度,以资决策,是一个不错的主意。 1、查看定义 程序类之间是相互调用的,JBuilder可以方便你查看类、方法、值域的定义,将光标置于某一代码元素上,按Ctrl+Enter快捷键或点击右键,在弹出的菜单中选择Find Definition,JBuilder将定位到该元素的定位处...
标签: Java JAVA基础
简单的框架 JUnit是由Erich Gamma和Kent Beck开发的开源测试框架,JBuilder集成了这个框架并对此做了扩展。JUnit之所以流行并为广大的开发人员所推崇,一是因为它实战性强,功能强大,二是因为它实在简单。一个产品或框架要能有生命力,最好都具备这样的特点。 简单地讲这个框架提供了许多断言(assert)方法,允...
Web应用服务器会产生各种事件,如Web容器启动事件、session过期事件、请求到达事件等等。我们已经在《JBuilder 2005实战jsp开发》中阐述了这些事件的接口,事件处理方法使程序对Web应用服务器的控制能力大为提高。 !-- frame contents -- !-- /frame contents -- 在这一节里,我们监听Web容器启动关闭的事件,在事件发生时记录We...
标签: Java JAVA基础
在测试用例中通过setUp()、tearDown()创建测试固件,只能使这个测试固件在单个测试用例的不同测试方法中共用,如果有多个测试用例都需要使用相同的测试固件,就需要将测试固件抽取到一个独立的类中。JBuilder提供了3个预定义的测试固件类,它们分别是: ·JDBC测试固件(JDBC Fixture):用于获取数据库连接的测试固件,用...

经验教程

756

收藏

35
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部