快速业务通道

J2EE探索者: 隐式对象的多种用法 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
nce to the current request and    response objects */ rd.include( request, response );

forward 和 include 是添加到 J2EE Web 开发工具包中的两个非常棒的技术。还有其他一些方法可以在 JSP 页面中完成 include,而且还有很多解决 J2EE 设计模式方面的文献中讲到了如何结合使用这两种技术。参阅 参考资料以了解更多信息。

J2EE探索者: 隐式对象的多种用法(3)

时间:2011-03-14 IBM Kyle Gabhart

日志记录和异常

如果您需要把与 Web 应用程序相关的信息存储到一个日志中,依然有内建的方法可用。 ServletContext 接口声明了两个方法,用于把数据传给一个日志。其中一个方法接受简单的文本消息: log( java.lang.String ) ,另一个方法接受一个异常信息和一个文本消息: log(java.lang.Throwable, java.lang.String ) 。

在有了 ServletContext 接口提供的两个可用的日志记录方法之后,剩下的关键是获取一个对 ServletContext 类型的对象的引用。像我们前面讨论过的流控制对象一样,有多种方法可以获取对 ServletContext 类型的对象的引用。在获得了对象引用之后,简单地调用 log() 方法并向方法中传递必需的数据即可。一旦调用了这个方法,您当然就会希望能够查看应用程序日志以查看消息。 ServletContext 是一个简单的接口,并且也没有规定怎样实现它声明的方法。因而 log 方法的具体实现是由供应商处理的。他们可以把日志信息存储到一个文本文件、二进制文件、数据库中,或者是供应商认为合适的其他格式中。您需要从服务器的文档中得知存储日志的位置。

虽然向一个日志文件发送消息相当有用,但是很多时候您可能还想在发生不可恢复的异常时显示一个用户友好的错误消息。要实现这一功能,您可以声明,您的 JSP 页面使用一个单独的页面来处理错误消息。这是在 JSP 页面的任何地方通过包含下面的 page 指令实现的:

<%@ page errorPage="ErrorMessage.jsp"%>

如果在处理 JSP 页面时有一个异常抛出的话,exception 对象就会立即通过隐式声明的 exception 变量的方式抛给指定的错误页面。

为了使一个 JSP 页面能够作为一个错误页面,它必须包含一个指令来声明这个页面是指定用来处理错误的特殊页面,指令如下:

<%@ page isErrorPage="true"%>

为了使用 ErrorMessage.jsp 页面能够作为一个错误页面,这个指令必须出现在页面的某个地方。错误页面可以显示一个友好的信息给用户,然后可以将相关的异常信息写入日志以供管理员日后查看。

输入和输出控制

因为 JSP 页面仅仅是 HTTP servlet 的一个简单抽象,所以您可以访问 HttpServletRequest 和 HttpServletResponse 对象。如果需要特定于请求的信息,比如客户机浏览器的类型、HTTP post 的内容类型、客户机性能、Cookie 数据或者请求参数,简单地用隐式声明的 request 变量直接调用适当的方法即可。类似地,如果您需要设置响应头部信息,比如说浏览器类型、内容类型、内容长度等等,简单地用隐式变量 response 调用适当的方法即可。

如果需要直接访问 JSP 页面的输出流,您可能会试图通过隐式 response 变量调用 getWriter() 或 getOutputStream() 。然而由于 JSP 页面的特殊性,您不能这样做。如果需要直接访问输出流,必须通过一个 avax.servlet.jsp.JSPWriter 类型的特殊缓冲 PrintWriter 对象来访问。怎样定位这样一个对象的引用呢?JSP 容器将会为您隐式地声明一个,并通过 out 变量提供给您。在 JSP scriptlet 中可以通过简单地调用 out.print() 或 out.println() 使用它。

一般来说不需要像这样直接使用 JSPWriter 对象,而只需简单地把内容作为普通文本或者通过 JSP 表达式写入,然后允许容器将这些信

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号