JSP最佳实践: 自定义标记中的错误处理

简介:在自定义标记中引用更多交互性的同时,也会增加错误出现的可能性,尤其是以非法参数形式 出现的错误。在本期的 JSP最佳实践中,Brett McLaughlin 向您展示了如何在源代码中捕获和忽略 IllegalArgumentException 异常。

在我们讨论 JSP 自定义标记的时候,我们一直都设法回避了错误处理的重要细节。在我们已经推出的 JSP 最佳实践系列的前面一半的文章中,大多数讲的都是 JSP 容器提供的功能,比如说 param 、 out 和 import 标记。在这些情况下,错误处理是 JSP 规范和 Web 服务器实现的事,也就是说就算是我们想 做什么也做不了。

但是最近两期我们主要讨论了自定义标记库和属性。我们不仅开始往 JSP 页面中添加新的功能,而且 还创建了允许 JSP 作者与代码交互的属性。而且,很可能我们已经在 JSP 页面中引入了新型的错误,或 者由于(以后什么时候)页面的作者的过失可能会引起标记的代码或者后面的输出产生灾难性的后果。无 论在哪一种情况下,往自定义标记中加入错误处理机制就变得很有必要。

有关例子的说明:在本期 JSP最佳实践中我们使用的所有例子的代码都是建立在前一期开发的代码的 基础上的。在继续阅读本文之前,您应该确保已经成功地完成了上一期的设置和编码练习。

回顾

我们首先将重复以前的步骤,回顾一下我们在上一期开发的一些代码,但是这次我们将着重发现代码 中的错误(或者潜在的错误可能性)。

首先,我们先回忆一下向 lastModified 标记中添加的新属性 format 。这个属性允许页面作者传入 一个格式字符串,java.text.SimpleDateFomrat 类可以使用该字符串来定制最后修改日期戳的格式。虽 然这种交互对于大部分 JSP 页面是必不可少的,但是它也给我们的标记引入了潜在的错误可能性。

例如,一个页面作者可以轻易地提供一个格式字符串,这个字符串就可能导致一个讨厌的错误消息。 如果您想看看得到什么样的消息,可以按照清单1的样子修改您的 footer 文件(或者任何其它使用 lastModified 标记的 JSP 页面):

清单1. 一个无效的格式字符串

<%@ taglib prefix="site-utils"
       uri="http://www.newInstance.com/taglibs/site-utils"%>
     </td>
     <td width="16" align="left" valign="top"> </td>
  </tr>
  <!-- End main content -->
<!-- Begin footer section -->
  <tr>
   <td width="91" align="left" valign="top" bgcolor="#330066"> </td>
   <td align="left" valign="top"> </td>
   <td class="footer" align="left" valign="top"><div align="center"><br>
     &copy; 2003
     <a href="mailto:webmaster@newInstance.com">Brett McLaughlin</a><br>
     Last Updated: <site-utils:lastModified
     format="PHH:mm a, MM/dd/yyyy"/>
    </div></td>
     <td align="left" valign="top"> </td>
   <td width="141" align="right" valign="top" bgcolor="#330066"> </td>
  </tr>
</table>
<!-- End footer section -->

时间: 2024-08-25 19:54:59

JSP最佳实践: 自定义标记中的错误处理的相关文章

JSP 最佳实践:组合 JavaBean 组件和 JSP 技术

js JSP 最佳实践:组合 JavaBean 组件和 JSP 技术 使用 JavaBean 和 JSP 参数在 Web 页面之间传递数据级别:入门Brett McLaughlin(brett@oreilly.com)作家,O'Reilly and Associates2003 年 7 月 Web 架构设计师 Brett McLaughlin 演示了 JavaBean 组件和 JSP 技术的结合如何使您能够在 Web 页面之间存储并传递数据,以及这样做如何能实现更为动态的站点设计.到目前为止,我

JSP最佳实践: 组合JavaBean组件和JSP技术

使用 JavaBean 和 JSP 参数在 Web 页面之间传递数据 简介:Web 架构设计师 Brett McLaughlin 演示了 JavaBean 组件和 JSP 技术的结合如何使您能够在 Web 页面之间存储并传递数据,以及这样做如何能实现更为动态的站点设计. 到目前为止,我们在 JSP 最佳实践系列文章 中着重讨论的都是较为基本的主题.在前两篇文章中, 您学习了如何使用 JSP include 机制来将外部内容引入到您的网站或 Web 应用程序.我们使用了两种不 同的 include

JSP最佳实践: 将自定义标记库打包

简介:将标记库存放在本地文件系统中的确有利于内部(in-house)开发和测试,但是这并非永远都 是好的解决方案.自定义标记库应该能够被广泛地访问,也就是说,必须以一种标准的和安全的方式来发 布它们.BrettMcLaughlin 解释了如何将您的自定义标记库打包到 JAR 文件,以便在任何 JSP 兼容的 Web 容器中更容易地维护.发布和安装它们. 到目前为止,我们在本系列中讲到的都是自定义标记库在本地文件系统中的情况,在这种情况下,我 们可以很容易地访问和操作这些自定义标记库.然而,虽然本

JSP最佳实践: 为您的JSP标记创建自定义属性

简介:BrettMcLaughlin 继续他的 JSP 最佳实践系列,这次他将用一个属性来扩展自定义的时间戳标 记( lastModified ),这个属性让页面作者可以选择他们自己的时间戳格式. 上一期的 JSP 最佳实践介绍了在JSP页面中使用自定义标记库的基础知识.在那一期可以学到如何定 义简单的标记并通过标记库描述符(tag library descriptor,TLD)让其他 JSP 作者可以使用该标记. 在这个星期,我们将以您已经知道的有关自定义标记的知识为基础.我们上次采用的实例标

JSP最佳实践: taglib简介

简介:Scriptlet对于快而杂(fast-and-dirty)的编码来说是一种不错的选择,但是从长远来看,您需 要为您的JSP页面选择一种不那么杂乱的解决方案.在本期的 JSP最佳实践中,BrettMcLaughlin 向您展示 了如何将scriptlet转化成JSP自定义标记,然后将其用于您的JSP开发中. 在 JSP最佳实践的 上一期,您学习了一种基于scriptlet的技术,这种技术被用来将上次修改的时间 戳添加到JavaServer Page(JSP)文件中.不幸的是,比起它所提供的

JSP 最佳实践:用 jsp:include 控制动态内容

include|js|动态|控制 本文是 Java"知情人士"Brett McLaughlin 继第一篇 JSP 最佳实践文章后的后续文章,在文中,作者向您演示了如何扩展 JSP 技术中用于动态内容的包含功能.了解静态 include 伪指令和动态 jsp:include 元素之间的差异,搞清楚如何混合搭配这二者以获取最优性能.在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页脚和导航组件之类的静态内容包含到 Web 页面中.和服

JSP最佳实践: 用jsp:include控制动态内容

简介:本文是 Java Brett McLaughlin 继第一篇 JSP 最佳实践文章后的后续文章,在文中,作者向 您演示了如何扩展 JSP 技术中用于动态内容的包含功能.了解静态 include 伪指令和动态 jsp:include 元素之间的差异,搞清楚如何混合搭配这二者以获取最优性能. 在新的 JSP 最佳实践系列的前一篇文章中,您了解了如何使用 JSP include 伪指令将诸如页眉.页 脚和导航组件之类的静态内容包含到 Web 页面中.和服务器端包含一样,JSP include 伪

JSP最佳实践: 使用JSTL来更新JSP页面

简介:JSP 标准标记库(Standard Tag Library,JSTL)是一组以标准化格式实现许多通用的Web站点 功能的定制标记.在 JSP 最佳实践这一部分,Brett McLaughlin将向您介绍JSTL,阐述如何转变JSP页面 来使用高功能性的标记. JSP技术的优势之一在于其定制标记库工具.除了核心JSP标记,如 jsp:include 之外,定制标记库工 具使您能够创建唯一的标记来描述以站点或应用程序为导向的操作.一旦您创建了定制标记库(简称 taglib),当您扩展项目或转

JSP最佳实践: 使用JSP include机制改进外观

简介:本文是新的 JSP 最佳实践系列文章的第一部分,它介绍了 JavaServer Pages include 机制. 请跟随 Java 编程专家 Brett McLaughlin 学习如何使用 include 将静态的头文件和脚注文件加入您的 网站或 Web 应用程序页面中. 欢迎阅读 Java 专区中最新的 最佳实践系列文章.如果您看过先前的系列文章,那么您会知道最佳实 践旨在让您快速了解各种 Java 技术的有用方面.这一系列的最佳实践专门讨论 JavaServer Pages(JSP