» 搜索提示 
 
使用调试器
2006 年 1 月 [修订号:V2-3]  
本教程介绍了如何使用 Sun Java Studio Creator 集成开发环境 (integrated development environment, IDE) 中的调试器。
 
目录
 
设置示例应用程序
测试应用程序
检查局部变量
编程时考虑可维护性
监视点
验证输入
查看服务器日志
设置异常断点
进行修复
关于调用栈
单步执行代码
使用 HTTP 监视器
编辑 HTTP 请求
保存 HTTP 请求
[spacer] 此页上的内容适用于 Sun Java Studio Creator 2
 
Sun Java Studio Creator IDE 具有一个可帮助您解决程序问题的内置调试器。本教程介绍了调试器的一些最常用的功能。
 
联机帮助中包含调试器的综合文档。通过选择“帮助”>“帮助内容”,然后在“内容”窗格中打开“调试应用程序”文件夹,可以查看调试器帮助。或者,要直接在调试器主题中打开联机帮助,可以打开任何调试器窗口,然后按 F1 键查看帮助主题。例如,在检查局部变量的步骤 3 中,打开“局部变量”窗格后,按 F1 键可查看描述该调试器窗格的主题。
 

设置示例应用程序

 
该示例应用程序是一个将温度从华氏转换为摄氏的简单转换器。
  1. 在 Java Studio Creator 的“欢迎”页中,单击“创建新项目”。在“新建项目”向导中,选择:

    类别:Web
    项目:JSF Web 应用程序

  2. 单击“下一步”。

  3. 在“项目名称”中输入 DebugExample。可以使用缺省的项目文件夹,也可以指定其他存储位置。

  4. 单击“完成”。项目将在可视设计器中打开,并且显示 Page1。

接下来,将一些组件拖放到页面上并实现操作处理程序。
  1. 将以下组件从组件面板的“基本”类别拖动到 Page1 的可视设计器上:

    • 文本字段
    • 标签(用于“文本字段”)
    • 消息(用于“文本字段”)
    • 静态文本
    • 标签(用于“静态文本”)
    • 按钮
     

    按照下图所示,排列这些组件。

    图 1:Page1 的布局
    图 1:Page1 的布局
     
  2. 单击第一个“标签”组件,并将其 text 属性更改为 Enter Degrees F:,然后按 Enter 键。

    在“属性”窗口中,该组件的 text 属性存储新文本。

  3. 单击第二个“标签”组件,并将其 text 属性更改为 Degrees C:

  4. 按住 Ctrl-Shift 组合键单击“消息”组件,并将其拖放到“文本字段”组件。

    “消息”组件显示的文本将更改,表明它此时与“文本字段”相关联。“文本字段”使用“消息”组件显示 info()error() 消息。

  5. 选择“按钮”组件。再次单击以编辑按钮文本,并将其更改为 Convert

    此时,可视设计器应如下图所示。

    图 2:Page1 的最终布局
    图 2:Page1 的最终布局
     
提供按钮的操作方法
 
此时,应用程序不执行任何操作。现在,您将提供按钮的操作方法,以便为自己提供要调试的内容。
  1. 在可视设计器中,双击 "Convert" 按钮。将打开 Java 编辑器,并且插入点位于 button1_action() 方法中。

  2. 将代码样例 1 中的代码插入到 button1_action() 方法中。此代码从“文本字段”组件读取华氏温度值,计算摄氏温度值,并在“静态文本”组件中显示该值。

    注意:如果发现代码中有错误,请保留它。该错误是为本教程特意保留的。

    代码样例 1:按钮的操作方法
    public String button1_action() {
           // Conversion is:  tc = ( tf - freezeF ) / divisor
           // get input string from Text Field
    
           String tfString = ((String)getTextField1().getValue());
           Double tfDouble = new Double(tfString);
    
           // extract the value and assign it to primitive double
           double tf = tfDouble.doubleValue();
    
           // calculate temperature in Celsius
           double tc = tf - 32.0 / 1.8;
    
           // convert double to String
           String tcString = Double.toString(tc);
    
           // print Celsius value
           getStaticText1().setValue(tcString);
           return null;
        }
     
  3. 按 Ctrl-Shift-F 组合键重新设置代码格式。

    此时,您的 button1_action() 方法应如下图所示。

    图 3:按钮的操作方法
    图 3:按钮的操作方法
     

测试应用程序

 
尝试对您的应用程序进行一些简单测试:
  1. 单击“运行主项目”工具栏按钮 “运行主项目”图标 或按 Ctrl-F5 组合键,以在 Web 浏览器中生成、部署并打开应用程序。

  2. 应用程序启动后,在文本字段中输入一个数值,然后单击 "Convert" 按钮。您应该在静态文本字段中看到转换后的值。

  3. 尝试输入实数和负数以及正整数。

  4. 输入 32(结冰点的华氏温度值)。单击 "Convert" 后,您将看到摄氏温度值 14.2。此值应该为 0.0。尽管用户界面似乎正常工作,但是程序中存在着问题。

    图 4:程序输出
    图 4:程序输出
     
您可能已经发现源代码中有错误,但是您将使用调试器来找到它。因为错误看起来出现在转换公式中,所以您将在按钮的操作方法中设置断点,并在执行期间检查局部变量的值。
 

检查局部变量

 
现在,您将检查 button1_action() 方法中的局部变量。
  1. 通过单击 return null; 语句的左侧空白处,在代码中设置断点。或者,当编辑光标位于代码行时,可以按 F9 键或单击鼠标右键,然后选择“切换断点”来设置和取消设置断点。

    Java 编辑器窗口应如下图所示:

    图 5:设置断点
    图 5:设置断点
     
    如果在调试器中设置了断点,则会在紧邻断点之前暂停执行。由于在计算 button1_action() 方法中的局部变量之后已经设置断点,因此您能够在“局部变量”调试器窗口中看到其值。

  2. 通过从菜单栏中选择“运行”>“调试主项目”,或者按 F5 键,开始调试会话。

    IDE 会将调试器附加到项目,并重新生成和重新部署应用程序。

  3. 当应用程序在 Web 浏览器中打开时,输入 32,然后单击 "Convert" 按钮。

    程序控件返回到 IDE 中的调试器,并且局部变量的值显示在调试器窗口的“局部变量”标签中。

    图 6:查看局部变量
    图 6:查看局部变量
     
    程序暂停时,断点变为绿色。

    局部变量的值没有什么问题:tfString 保存输入文本字段中字符串的值,tfDoubletf 分别保存已转换的 Double 对象和双精度基元的值。唯一的问题是 tc 中的计算摄氏温度值和显示的字符串不正确。

    检查计算的 tc 值时,注意到 32.0 先被 1.8 除,再从 tf 中减去该商值。如果在 tf - 32.0 的两侧加上圆括号,则转换公式将正常工作。

  4. 从菜单栏中选择“运行”>“继续”,或者按 Alt-F5 组合键继续执行。

  5. tc 变量的计算公式进行更改,使其如下所示:
    double tc = (tf - 32.0) / 1.8;
  6. 选择“运行”>“完成调试器会话”结束调试器会话。

  7. 选择“运行”>“调试主项目”开始新的调试器会话。

    注意:您可能必须先关闭 Web 浏览器,然后再次选择“运行”>“调试主项目”,这样才能获得要部署的应用程序。

  8. 重新部署 Web 应用程序时,再次输入 32,然后单击 "Convert"。

    控件返回到 IDE,并且局部变量 tc 的值现在应该是预期值 0.0。

  9. 按 Alt-F5 组合键继续执行。

  10. 在 Web 浏览器中输入 212,然后单击 "Convert"。确认 tc 的值为预期值 100.0。按 Alt-F5 组合键继续执行,转换后的值 100.0 应该出现在 Web 应用程序中。
 
工具提示中的变量计算
 
当调试会话处于活动状态时,通过悬停在变量上,可以直接在 Java 编辑器中计算该变量。如果变量在当前上下文中处于活动状态,则会在工具提示中显示该变量的值。
 
例如,当 DebugExample 应用程序在 Web 浏览器中以调试模式运行(如上所述)时,在文本字段中输入 32,然后单击 "Convert"。当返回到 IDE 并将鼠标悬停在 tc 变量上时,您会看到如图 7 所示的工具提示。
 
图 7:计算变量
图 7:计算变量
 
当程序包括同名的不同变量时,Java 编辑器将基于当前上下文来显示值。
 

编程时考虑可维护性

 
仅当具有要检查的局部变量时,才能检查局部变量。例如,假定可以将 button1_action() 方法的核心部分精简为以下单个表达式语句:
 
代码样例 2:精简的按钮操作方法
    public String button1_action() {
        getStaticText1().setValue(Double.toString((((new
        Double((String)getTextField1().getValue())).doubleValue( )-32.0) /
        1.8)));
        return null;
    }
 
以这种方式表示时,方法没有局部变量,并且“局部变量”窗口不会显示有关程序运行方式的任何信息。此种精简并不是所希望的,因为它使得故障排除和维护更为困难。
 
另一种方法是将 Java 断言放置到程序中。assert 关键字计算布尔表达式,如果计算结果为 false,则允许您执行诸如输出错误消息之类的操作。使用断言,您可以轻松地测试程序所需的前置条件。
 

监视点

 
通过设置监视点可以监视表达式的值。例如:
  1. 确保已经在 button1_action() 方法的结尾附近(例如,在 return null; 语句中)设置一个断点。

  2. 在 Page1.java 的 Java 编辑器中,在 button1_action() 方法中选中以下表达式:
    (tf - 32.0) / 1.8
  3. 单击鼠标右键,然后从上下文菜单中选择“新建监视”(Ctrl-Shift-W)。

    图 8:设置监视点
    图 8:设置监视点
     
  4. 将出现一个对话框,您可以在该对话框中编辑监视点表达式。在本示例中,不编辑表达式。在对话框中单击“确定”。

  5. 在 Web 浏览器中,输入华氏温度值 212。当程序在断点处暂停时,在调试器窗口的“监视”标签中查看监视点。监视点报告表达式的当前值。先不要继续执行。

    图 9:监视表达式
    图 9:监视表达式
     
  6. 在“监视”窗口中单击“值”字段,并尝试将值从 100.0 更改为 50.0。如果键入新值并按 Enter 键,将显示一条消息,指出您不能设置表达式的值。

    但是,如果已经在变量(而不是表达式)上设置监视点,则在程序暂停时您将能够更改变量的值,就像在“变量”窗口中那样。

  7. 在 Java 编辑器中,从同一代码行中仅选择变量 tc

       double tc = (tf - 32.0)/1.8

  8. 单击鼠标右键,然后从上下文菜单中选择“新建监视”。

    另一个监视点出现在“监视”窗口中,而且立即显示变量的值。

  9. 单击 tc 的“值”字段右侧的省略号按钮 (..),将值更改为 50,然后单击“确定”。

    这一次 IDE 允许您更改值。

    图 10:更改变量的值
    图 10:更改变量的值
     
    在“监视”窗口中,将值 50.0 赋予了变量 tc,尽管确定它的计算结果是 100.0。

  10. 监视点是一种在程序暂停时计算表达式的简便方式。例如,在 button1_action() 方法中的以下表达式上设置监视点:

    Double.toString(tc)

    确认其值为 "50.0"

  11. 按 Alt-F5 组合键继续执行程序。在请求生命周期结束时,监视点值将被替换为消息 >Thread has been resumed<
 

验证输入

 
到目前为止,仅使用数字对应用程序进行了测试。如果在文本字段中输入非数字字符,会出现什么情况呢?正如您可能猜到的,结果将是令人不满意的。要查明将会出现什么情况,请在文本字段中输入字符 a,然后单击 "Convert"。Web 浏览器将通知您出现未处理的异常。
 
图 11:浏览器窗口中未处理的异常
图 11:浏览器窗口中未处理的异常
 
应用程序必须测试输入字符以确保它们是数字字符。IDE 仅为这样的使用情况提供验证器。
 
现在,将一个“验证器”组件与输入文本字段相关联。
  1. 选择“运行”>“完成调试器会话”(Shift-F5)。

  2. 如有必要,请单击“设计”以打开可视设计器。

  3. 在组件面板的“组件”标签中,从“验证器”类别中选择“双精度范围验证器”,并将其拖动到可视设计器中的“文本字段”组件上,如下图所示。

    图 12:在“文本字段”上设置验证器
    图 12:在“文本字段”上设置验证器
     
  4. 单击“运行主项目”工具栏按钮 “运行主项目”图标 或按 Ctrl-F5 组合键。

    注意:如果应用程序没有部署,请关闭应用程序以前在其中运行的 Web 浏览器窗口,然后再次运行主项目。

  5. 当应用程序在 Web 浏览器中打开时,输入字符 a,然后单击 "Convert"。验证器通过将消息传递到与输入文本字段关联的“消息”组件来处理异常。“消息”组件将消息显示给用户,如下图所示。

    图 13:验证错误消息
    图 13:验证错误消息
     
您需要再检查一项内容:如果输入空字符串,会出现什么情况。不在文本字段中输入任何内容,就单击 "Convert",则会在 Web 浏览器中再次看到异常。可以清楚地看出,验证器组件未解决所有问题。
 

查看服务器日志

 
由于空字符串错误会导致 JavaServer Faces 异常,因此可以在 IDE 创建的服务器日志中找到更多信息。要查看该日志,请转到“服务器”窗口,右键单击“部署服务器”,然后选择“查看服务器日志”。
图 14:查看服务器日志
图 14:查看服务器日志
 
日志文件出现在 IDE 的输出窗口中。最新的消息被附加到文件的结尾。类似如下的行对 Java 语言异常进行了说明,该异常是由于 button1_action() 方法中的空字符串而导致的。
 
Caused by: java.lang.NullPointerException
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991)
        at java.lang.Double.valueOf(Double.java:447)
        at java.lang.Double.<init>(Double.java:539)
        at debugexample.Page1.button1_action(Page1.java:289)

 
有关日志文件的更多信息
 
在 Windows 系统上,日志文件位于以下文件夹中:
 
installation- directory\SunAppServer8\domains\creator\logs\
 
在 Windows 系统上,installation-directory 通常为以下路径:
 
C:\Program Files\Sun\Creator2\
 
要生成日志文件,可以使用系统的 println() 方法或 IDE 附带的 log() 方法。log() 方法只能与 IDE 的预配置 Bean 文件(它们是 FacesBean 类的扩展)一起使用。println() 方法可以在任何 Java 文件中使用;如果要导入外部 Java 代码,则该方法可能更有用。
 
下面的示例使用每个方法输出 tfString 变量的值。在 button1_action() 方法中插入了日志记录语句(在声明 tfString 的行后面),如下所示:
 
代码样例 3:日志记录语句
// Existing line
String tfString = ((String)getTextField1().getValue());
// Logging Statements
log("tfString logged = " + tfString);
System.out.println("tfString printed = " + tfString);
 
如果生成并运行应用程序,然后转换华氏温度值 32,则会在 server.log 文件中看到类似如下的消息:
 
[#|2006-01-15T13:25:04.759-0600|INFO|
sun-appserver-pe8.1_02|javax.enterprise.system.container.web|
_ThreadID=21;|WebModule[/DebugExample]tfString logged = 32|#]


[#|2006-01-15T13:25:04.759-0600|INFO|
sun-appserver-pe8.1_02|javax.enterprise.system.stream.out|
_ThreadID=21;| tfString printed = 32|#]
 
第一行由 log() 方法创建,第二行由 println() 方法创建。服务器日志信息的格式如下:
 
[#<Date-Time Identifier> | <Severity Level> |
<Server Identifier> | <Package Identifier> |
<Thread Identifier> | <Logged Information> | #]
 

设置异常断点

 
浏览器异常消息和日志条目为您提供了足够的信息,以便使您知道应用程序处理文本字段中空字符串的能力出现了问题。通过设置异常断点,可以从 IDE 调试器了解更多信息。
  1. 在 IDE 中,按 F5 键启动调试器会话。

  2. 选择“视图”>“调试”>“断点”以查看“断点”窗口。

  3. 在“断点”窗口中单击鼠标右键,然后从上下文菜单中选择“新建断点”。将打开“新建断点”对话框。

    通过查看原始的 Web 浏览器异常消息中的以下 Caused by: 行,可以知道在何处查找错误:

    Caused by: java.lang.NullPointerException

  4. 在“新建断点”对话框中,输入以下信息:

    断点类型:异常
    包名:java.lang
    异常类名:NullPointerException
    停止条件:捕捉到或未捕捉到

    您的对话框应如下图所示:

    图 15:设置异常断点
    图 15:设置异常断点
     
  5. 单击“确定”。新断点将出现在“断点”窗口中。

  6. 在 Web 浏览器中,确保文本字段为空,然后单击 "Convert"。IDE 将在遇到异常时暂停执行。

    图 16:在异常断点处暂停执行
    图 16:在异常断点处暂停执行
     
    如果在其中出现异常的类的源代码可用,将显示源文件,而且突出显示出现异常的行。在这种情况下,源代码不可用,因此 Java 编辑器突出显示 Page1.java 中导致异常的行。突出显示的行试图将输入字符串转换为 Double 对象。

    此信息确认您已经知道的所有内容,并暗示您必须以某种方式测试输入以确保它不为空。

  7. 按 Shift-F5 组合键结束调试会话。现在,您将更正错误。
 

进行修复

 
可以编写一段代码来测试输入字符串,以确保它不为空。但是,IDE 提供了一种验证是否存在输入字符串的简单方法:在“文本字段”组件上设置一个属性。
  1. 在 Java 编辑器上面的工具栏中,单击“设计”以显示可视设计器。

  2. 选择“文本字段”组件。

  3. 在“文本字段”组件的“属性”窗口中,选中 required 属性的复选框。

    图 17:设置 Required 属性
    图 17:设置 Required 属性
     
  4. 通过按 Ctrl-F5 组合键部署并运行程序。

  5. 应用程序在 Web 浏览器中打开时,单击 "Convert",而不在文本字段中输入任何内容。您将会看到错误消息,而不是以前的异常。

  6. 输入其他值(包括文本字符串),以确保应用程序正确处理文本字段中的所有条目。请注意,您可以转换以科学计数法表示的值,如 -123.4e6。另请注意,文本字段忽略前导空格和后续空格,因为缺省情况下设置了“行为”> "trim" 属性(请参见图 17)。
 

关于调用栈

 
调试器允许您通过调用栈来控制程序的执行。调用栈(有时称为调用链)是显示已经调用但尚未返回的方法调用顺序的列表。此列表在顶部显示当前的方法调用,在下面依次显示父调用。
 
暂停程序时,可以检查调用栈,激活一个调用,以及从栈中弹出调用(更改程序执行,以便使要执行的下一条语句是在之前栈上发出的调用之一)。这些选项可以从“运行”>“栈”菜单进行访问。
 
查看调用栈如何工作:
  1. 如有必要,请在左侧空白处单击,确保在 button1_action() 方法中的 return null; 语句处设置了断点。语句应该如下所示:

    图 18:在行上设置的断点
    图 18:在行上设置的断点
     
  2. 按 F5 键启动调试会话。将启动调试器,并且将生成和部署应用程序。

  3. 当 Web 应用程序在浏览器中打开时,在文本字段中键入 32,然后单击 "Convert"。

    焦点将返回到 IDE,断点行将变成绿色,指示执行已暂停且断点为当前行。

  4. 如果“调用栈”窗口尚未显示在 Java 编辑器窗口下面,请选择“视图”>“调试”>“调用栈”以显示它。“调用栈”窗口使用粗体字符来表明 Page1.button1_action() 方法是当前调用。如果在调用栈中向下滚动,则会看到一系列系统调用,最终显示对 WorkerThread.run 的原始调用。

    图 19:查看调用栈
    图 19:查看调用栈
     
  5. Page1.button.action 调用的下面,查找第一个 Method.invoke 调用。双击该调用。如果源文件可用,则 IDE 显示源代码行。

    图 20:查看调用的源代码
    图 20:查看调用的源代码
     
    Method.invoke 调用的源文件如图 20 所示。请注意,在此情况下源文件标记为只读,因此无法进行编辑。

  6. 选择“运行”>“栈”>“激活调用者”,并请注意,以前的调用 SecurityUtil$1.run 已变成调用栈中的当前方法。

    图 21:激活调用者
    图 21:激活调用者
     
也可以弹出最上面的调用,这将从调用栈中删除当前方法,并激活上一个调用。通常,从调用栈中弹出一个调用时,不会撤消该调用可能造成的任何影响。例如,如果一个调用打开了一个数据库连接,然后您从栈中弹出了该调用,则该数据库连接仍保持打开。
 
请注意,在调试器的“调用栈”输出窗口中将看不到由 Java Server Faces 或验证器抛出的异常,因为这些异常会中断 JavaServer Pages 请求的生命周期。同样,如果在可以计算变量的值之前中断生命周期,则看不到局部变量的值。
 

单步执行代码

 
暂停程序时,可以单步执行代码行。您将在“运行”菜单上找到以下命令:
  • 越过 (F10)。执行一行源代码。如果源代码行包含调用,则执行整个例程而不单步执行单个指令。

  • 步入 (F11)。执行一行源代码。如果源代码行包含调用,则会刚好在执行例程的第一条语句之前停止。在对程序状态进行任何更改之前,程序会在 main 例程之后的第一行停止执行。

  • 步出 (Shift-F11)。执行一行源代码。如果源代码行是某个例程的一部分,则会执行该例程的其余各行,然后将控制权返回给例程的调用者。

  • 运行至光标 (Ctrl-F10)。将当前会话运行至 Java 编辑器中的光标位置,并暂停程序。通常,您将在执行此命令之后执行其中一个单步执行命令。要在程序每次到达该行时都停止程序执行,请设置一个断点。
为了说明这一点,请通过删除所有断点并设置新断点来从头开始:
  1. 选择“视图”>“调试”>“断点”以查看“断点”窗口。

  2. 单击鼠标右键,然后从上下文菜单中选择“全部删除”。

    图 22:删除所有断点
    图 22:删除所有断点
     
  3. 在“编辑器”窗口中,如有必要,请单击 Page1 上面的 "Java" 按钮以打开 Java 编辑器,然后在其中设置新断点,方法是在以下语句旁边的左侧空白处单击:

    String tfString = ((String)getTextField1().getValue());

  4. 选择“视图”>“调试”>“局部变量”以查看“局部变量”窗口。

  5. 如果处于调试会话中,请通过按 Shift-F5 组合键结束它,然后选择“运行”>“调试主项目”以生成并部署程序。

    注意:通过单击“运行”菜单,您可以知道自己是否处于调试会话中。如果调试会话正在运行,则调试选项(如“完成调试器会话”)是可用的。

  6. 在 Web 浏览器中,输入华氏温度值 32,然后单击 "Convert"。在 IDE 中,断点行将以绿色突出显示,表明它是当前行。

  7. 按 F10 键越过按钮处理程序中的代码。单步执行代码时,当前行以绿色突出显示。请注意,在执行每行时局部变量是如何在“局部变量”窗口中逐个计算的。

    图 23:在查看局部变量时越过代码
    图 23:在查看局部变量时越过代码
     
  8. 通过按 Shift-F5 组合键结束调试器会话。
 

使用 HTTP 监视器

 
HTTP 监视器显示应用程序各组件之间的 HTTP 数据流。可以在调试会话中使用 HTTP 监视器,也可以将它与正常部署的应用程序(通过运行主项目生成)一起使用。
 
HTTP 监视器是通过您所用的应用服务器实现的。要确保启用了 HTTP 监视器,请选中应用服务器属性,如下所示。
  1. 选择“视图”>“服务器”以使“服务器”窗口可见。

  2. 右键单击“部署服务器”,然后从上下文菜单中选择“属性”。

  3. 在必要时启用“常规”>“启用 HTTP 监视器”属性(如图 24 所示),然后关闭该对话框。

    图 24:启用 HTML 监视器
    图 24:启用 HTML 监视器
     
在后续步骤中,您将看到 HTTP 监视器如何工作。
  1. 通过单击“运行主项目”工具栏按钮 “运行主项目”图标 或者按 Ctrl-F5 组合键,生成并部署应用程序。

  2. 部署应用程序后,单击 IDE 中的“HTTP 监视器”标签,并展开左面板中的“当前记录”节点。

    左面板显示应用程序客户端的所有 HTTP 请求记录。“当前记录”中的条目是当前 IDE 会话的历史记录,在您退出 IDE 之前是可用的。“当前记录”历史记录将始终保留,即使重新启动服务器,但在退出 IDE 时它将丢失。“保存记录”节点中的记录在删除之前将始终保留。

  3. 展开 GET DebugExample 客户端记录以显示 Page1.jsp 记录。嵌套节点(如 Page1.jsp)是在服务器上进行内部分发的结果。已转发或已包含的这些请求将嵌套在与主请求相对应的节点下面。请注意,并不是所有的服务器都提供此功能。

  4. 选择左面板中的 Page1.jsp,然后查看右面板中的信息。

    图 25:HTML 监视器
    图 25:HTML 监视器
     
右面板显示所选请求的会话数据。该数据包括 Cookie 名称/值对、会话数据和 Servlet 上下文。还可以查看 HTTP 头数据和客户端-服务器信息(如客户端协议和 IP 地址)以及服务器平台和主机名。
 

编辑 HTTP 请求

 
要编辑 HTTP 记录并重新显示它,请执行以下步骤:
  1. 在“HTTP 监视器”窗口的右面板中,单击“请求”标签。

  2. 在运行于 Web 浏览器中的应用程序中,输入 32,然后单击 "Convert"。

  3. 在“HTTP 监视器”窗口中,展开“当前记录”节点,然后查找 POST 子记录。选择 POST 记录以查看请求信息。

    请注意,在应用程序中键入的值 32 现在出现在“参数”区域中,作为 POST 请求的输入 form1:TextField1

    图 26:HTML 监视器 POST 请求
    图 26:HTML 监视器 POST 请求
     
  4. 在 HTTP 监视器的左面板中,右键单击 POST Page1.jsp 节点,然后从上下文菜单中选择“编辑并重新显示”。将打开“编辑并重新显示”对话框。

    在“编辑并重新显示”对话框中,可以更改 POST 记录的查询、请求、Cookie、服务器和 HTTP 头信息。

    图 27:“编辑并重新显示”对话框
    图 27:“编辑并重新显示”对话框
     
  5. 在“查询”标签上,单击 form1:textField1 行最右侧的省略号 (..),并将值从 32 更改为 212

  6. 单击“发送 HTTP 请求”。浏览器中的应用程序接受请求,并将输入的值从 32 更改为 212
 

保存 HTTP 请求

 
要保存 POST 请求以便它在下一个 IDE 会话中仍旧存在,请执行以下步骤。
  1. 在“HTTP 监视器”窗口的左面板中,选择 POST 请求记录。

  2. 右键单击 POST 请求记录,然后从上下文菜单中选择“保存”。POST 请求记录将保存在“HTTP 监视器”窗口左面板中的“保存记录”节点下。

  3. 如果要删除已保存的记录,请右键单击它,然后从上下文菜单中选择“删除”。
 

小结

 
在本教程中,您使用了调试器的许多重要功能,其中包括设置断点和监视、查看局部变量、单步执行代码、使用日志文件、查看调用栈以及使用 HTTP 监视器。
 
另请参见

 
此页的最新修改时间:2006 年 1 月 25 日