首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

利用科学方法,可以通过一个可靠的过程来完成调试。这个科学方法包括以下几步:

观察:如果程序不能如期工作,就要进行观察。

假设:猜测为什么会产生非预期的行为。

预测:预测代码修改或数据改变会对观察结果造成怎样的影响。

测试:修改并观察结果,从而对以上预测进行测试。

然后反复进行这个过程,直到问题得到修正为止。下面先来看一个简单的例子。

实验:使用科学方法进行调试

这个例子中,JSP代码要打印从 –5 +5的数,每次递增1

<%@page contentType="text/html"%>

<%@page pageEncoding="UTF-8"%>

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>

<head><title>JSP Page</title></head>

<body>

<c:forEach var="counter" begin="1" end="10" step="1" >

    <c:out value="${counter-5}"/><br/>

</c:forEach>

</body>

</html>

本章中,假设你已经为这些例子建立了基本的标准Web应用目录结构,而且JSP文件放在Web应用或WAR文件的根目录中,具体见第4章。

还需要在WEB-INF/lib目录安装jstl jarstandard.jar文件,另外WEB-INF/tld目录中要包含为部署应用提供支持的tld文件。需要配置web.xml文件以查找标记库描述文件。Web应用的配置见《JSP程序设计》第6章。

也可以下载本书的源代码文件,复制目录结构及其内容。

如果运行Tomcat来完成部署,应该能够在这个目录中编辑这些例子。如果使用了IDE,应该能在IDE中执行这些文件。

将页面命名为Example1.jsp。执行这个JSP时,会得到以下输出:

-4

-3

-2

-1

0

1

2

3

4

5

希望你已经发现了这里存在的问题:输出是从-4开始的,而不是我们希望的-5。为什么没有按我们的要求正确地输出呢?我们猜测可能是forEach 循环有问题,或者是c:out 语句中的数学运算出了错。通过分析代码,可以看到,counter=1时,counter-5 = -4。所以下一步要做一个实验,看看初始值设置为0而不是1的话,会出现什么情况。

将以下代码行:

<c:forEach var="counter" begin="1" end="10" step="1" >

修改为:

<c:forEach var="counter" begin="0" end="10" step="1" >

现在再执行代码就能得到所要的结果了。

实验解析

这是一个非常简单的例子,不过所有调试基本上都遵循这样一个过程。问题越复杂,就越难观察或者正确地预测。对于测试代码中发生的情况,如何得到更多的信息或者更好的理解是难点所在。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论