本书通过丰富的程序实例引出JBuilder 2005的各项功能,并将其糅俣到具体的开发过程中。本书分为5大篇,其中第1篇为JBuilder基础知识篇;第2篇至第4篇为各种Java开发专题,其层次和难度逐渐递增,内容包括:JavaBean开发、DataExpress和dbSwing数据库开发、Applet开发、JSP开发、Struts开发、Cocoon开发、XML开发、EJB开发、Web Service开发等;第5篇为提高篇,内容包括:团队协作及版本控制、单元测试、创建Javadoc文档和代码重构等。通过本书,读者在深刻掌握JBuilder 2005各项功能的同时,还可以学到各种Java程序开发的实战经验、开发技巧和注意事项。
本书适合于有一定Java基础的读者,以及对Java和JBuilder有过一定开发经验的软件开发人员。
第一篇
第1章 JBuilder 2005概述 2
1.1 功能介绍 2
1.2 新增特性 4
1.3 程序安装 5
1.3.1 不同版本的差异 5
1.3.2 硬件要求 6
1.3.3 安装步骤 7
1.4 理解安装目录 11
1.5 使用帮助 12
1.5.1 如何获取帮助 12
1.5.2 使用Help Viewer 13
1.6 常见问题解决之道 14
1.6.1 光标错位 14
1.6.2 汉字乱码 17
1.7 总结 17
第2章 Java语言基础 18
2.1 Java简介 18
2.1.1 Java发展史 18
2.1.2 Java的特点 19
2.1.3 关于Java的FAQ 19
2.2 Java语言基础 20
2.2.1 注释 20
2.2.2 Java中的关键字 21
2.2.3 基本数据类型 22
2.2.4 基本数据类型的转换 23
2.2.5 字面值 24
2.2.6 数组 25
2.2.7 运算符和表达式 27
2.3 流程控制 32
2.3.1 选择流程控制语句 33
2.3.2 循环语句及跳转 34
2.4 类和对象 37
2.4.1 类的一般结构 38
2.4.2 类的包 39
2.4.3 类的值域和方法 40
2.4.4 方法的重载和覆盖 42
2.4.5 类的构造函数 43
2.4.6 类的继承 44
2.4.7 类和接口 46
2.5 异常处理 47
2.5.1 Java中的异常结构 48
2.5.2 发生异常时的流程控制 49
2.5.3 抛出异常 50
2.6 JDK 5.0快速进阶 51
2.6.1 简易开发 51
2.6.2 提高扩展性和性能 51
2.6.3 监视和管理 52
2.6.4 新的JVM整形API 52
2.6.5 改进诊断能力 53
2.6.6 元数据Metadata 54
2.6.7 泛型 55
2.6.8 自动装/拆箱 56
2.6.9 增强型for循环 56
2.6.10 枚举化的类型 57
2.6.11 静态引入 57
2.6.12 格式化的输出 57
2.6.13 格式化的输入 57
2.6.14 不定参数 58
2.6.15 并行工具 58
2.6.16 其他的一些新特性 58
2.7 总结 59
第3章 JBuilder 2005集成开发环境 60
3.1 集成开发环境 60
3.1.1 菜单条 61
3.1.2 工具条 62
3.1.3 工程窗格 63
3.1.4 结构窗格 65
3.1.5 内容窗格 66
3.1.6 信息窗格 67
3.1.7 状态条 68
3.1.8 调整工作区效果 69
3.2 工程及工程组 70
3.2.1 何为工程 70
3.2.2 用工程向导创建一个工程 71
3.2.3 工程属性 73
3.2.4 工程组 74
3.3 维护类库 76
3.3.1 类库的结构 76
3.3.2 维护JBuilder类库 77
3.3.3 维护工程扩展类库 81
3.4 设置JDK 82
3.4.1 配置一个新的JDK 82
3.4.2 在工程中使用JDK 5.0 84
3.5 小结 85
第4章 编辑器——高效代码
第4章 开发之利器 87
4.1 编辑器界面组成 87
4.2 编辑器的一般设置 88
4.2.1 设置编辑器字体 88
4.2.2 调整编辑器的显示效果 89
4.2.3 动作触发设置 89
4.3 快捷键 91
4.3.1 快捷键模式 91
4.3.2 配置快捷键 91
4.3.3 常用快捷键 93
4.4 代码选择 96
4.4.1 一般性选择 96
4.4.2 块选择 96
4.5 智能拷贝 97
4.6 查找 98
4.7 用书签进行快速导航和定位 100
4.7.1 数字书签 100
4.7.2 文本书签 100
4.7.3 Todo标识 101
4.8 CodeInsight 101
4.9 代码模板 103
4.9.1 常用代码模板 103
4.9.2 使用代码模板 105
4.9.3 代码模板的设置 105
4.10 同步代码编辑 107
4.11 ErrorInsight 108
4.12 辅助显示支持 109
4.12.1 ScopeInsight 109
4.12.2 代码折叠 110
4.13 代码排版格式化 111
4.13.1 排版格式化的内容 111
4.13.2 设置和调用 112
4.14 总结 113
第5章 代码审查 114
5.1 何谓代码审查 114
5.2 使用代码审查 114
5.3 代码风格审查 116
5.3.1 “switch”必须带一个
5.3.1 default语句 116
5.3.2 应通过类名引用静态成员 116
5.3.3 避免复杂晦涩的代码 117
5.3.4 尽量使用赋值运算符 118
5.3.5 其他代码风格的审查 119
5.4 声明审查 120
5.4.1 避免命名覆盖 120
5.4.2 使用适合的修饰符 121
5.4.3 有关子类覆盖的审查 121
5.4.4 代码排列及先后顺序 121
5.5 命名风格 122
5.5.1 取消不良命名习惯 122
5.5.2 建立和国际接轨的包名 122
5.5.3 避免过于简单的变量名 122
5.6 潜在错误审查 123
5.6.1 聚焦switch 123
5.6.2 避免浮点值等值逻辑判断 125
5.6.3 用括号清晰化
5.6.3 复杂的表示式 126
5.6.4 字符串比较 126
5.7 各种画蛇添足的审查 126
5.7.1 将布尔变量和
5.7.1 布尔值比较 126
5.7.2 无用的成员 127
5.7.3 多余的接口修饰符 127
5.7.4 不必要的强制类型转换 128
5.7.5 多余的import包引入 128
5.8 其他 128
5.8.1 无作为的表达式 128
5.8.2 流程控制中存在
5.8.2 不可至的语句 129
5.8.3 无用的流程标签 130
5.9 总结 130
第6章 编译、运行、调试、
第6章 优化及打包 131
6.1 编译程序 131
6.1.1 关于代码编译 131
6.1.2 编译操作及编译器 131
6.1.3 编译器的设置 133
6.1.4 编译的错误信息 134
6.2 运行程序 135
6.2.1 邮件收发程序 135
6.2.2 运行程序文件 138
6.2.3 设置运行配置信息 139
6.3 调试程序 142
6.3.1 程序的错误类型 142
6.3.2 调试界面 142
6.3.3 调试Sender.java的
6.3.3 运行期错误 144
6.3.4 调试Sender.java的
6.3.4 逻辑错误 146
6.3.5 查看程序加载的类
6.3.5 及类的静态变量 148
6.3.6 多线程调试 149
6.4 Optimizeit代码优化工具 151
6.4.1 Profiler 152
6.4.2 Thread Debugger 154
6.4.3 Code Coverage 156
6.5 打包输出 157
6.5.1 何谓打包 157
6.5.2 混淆编译打包 158
6.5.3 将MailBox打包输出 159
6.5.4 运行打包档案程序文件 162
6.6 总结 163
第二篇
第7章 用户界面应用程序开发 166
7.1 用户界面设计器 166
7.2 布局管理器 167
7.2.1 为何使用布局管理器 167
7.2.2 经典布局管理器 168
7.2.3 JBuilder提供的
7.2.3 布局管理器 173
7.3 用户界面组件 174
7.4 事件处理模型 177
7.4.1 事件类 177
7.4.2 事件监听器 177
7.4.3 显式事件使能 181
7.4.4 适配器 182
7.5 文本编辑器 183
7.5.1 创建工程和主界面 183
7.5.2 加入一个多行文本框组件 186
7.5.3 创建菜单 188
7.5.4 加入一个FontChooser
7.5.4 对话框 190
7.5.5 使用FontChooser设置
7.5.5 多行文本框中的字体 192
7.5.6 添加菜单事件调用
7.5.6 JColorChooser 192
7.5.7 添加菜单事件清除多行
7.5.7 文本框的内容 193
7.5.8 添加文件选择对话框 193
7.5.9 添加从文件中读取
7.5.9 内容的方法 194
7.5.10 添加保存文件菜单
7.5.10 处理事件 195
7.5.11 添加代码监视文件
7.5.11 内容的变化 197
7.5.12 让工具栏工作起来 198
7.5.13 为多行文本框组件
7.5.13 添加事件处理 200
7.5.14 为多行文本框添加
7.5.14 上下文菜单 200
7.5.15 在窗口状态条中显示
7.5.15 文件及其状态 201
7.6 总结 203
第8章 JavaBean开发 204
8.1 什么是Bean 204
8.2 Bean的编写过程 204
8.3 Bean属性和事件 206
8.3.1 Bean的属性 206
8.3.2 属性编辑器 207
8.3.3 属性定制器 208
8.3.4 Bean的事件 209
8.4 整数值范围Bean功能介绍 209
8.5 IntValueBean编写 210
8.5.1 创建IntValueBean 210
8.5.2 序列化组件 212
8.5.3 添加关联属性 212
8.5.4 成为属性变化的监听器 215
8.5.5 添加限制属性 218
8.5.6 添加得到或失去焦点事件 220
8.6 建立RangeBean 223
8.6.1 创建RangeBean 223
8.6.2 代理设置IntValueBean
8.6.2 的bgColor属性 225
8.6.3 代理设置IntValueBean
8.6.3 的intValue属性 226
8.6.4 成为限制属性否决监听器 226
8.7 BeanInfo 229
8.8 属性编辑器 231
8.8.1 生成属性编辑器 232
8.8.2 在BeanInfo中声明
8.8.2 属性编辑器 234
8.9 Bean定制器 236
8.9.1 创建Bean的定制器 236
8.9.2 在BeanInfo中说明
8.9.2 Bean的定制器 238
8.10 打包输出 239
8.10.1 为Bean设定图标 239
8.10.2 查看Bean的各部分内容 240
8.10.3 打成JAR包 240
8.11 添加到组件面板 241
8.12 总结 243
第9章 JDataStore数据库开发 244
9.1 DataStore简介 244
9.1.1 JDataStore的特性 244
9.1.2 JDataStore的配置 244
9.2 用JDataStore浏览器管理数据库 246
9.2.1 启动JDataStore 246
9.2.2 创建JDataStore文件 246
9.2.3 打开JDataStore文件 247
9.3 如何创建表及索引 247
9.3.1 创建表 247
9.3.2 创建索引 248
9.4 JDataStore的安全性管理 248
9.4.1 管理用户 248
9.4.2 修改密码 248
9.4.3 数据库加密 249
9.5 DataStore数据库简单应用 249
9.6 数据库图形用户界面程序 251
9.7 JDataStore的数据导入导出 255
9.8 JDataStore在非结构化
9.8 存储方面的应用 259
9.9 发布基于JDataStore
9.9 的应用程序 264
9.10 总结 264
第10章 DataExpress和
第10章 dbSwing数据库开发 265
10.1 DataExpress简介 265
10.1.1 DataExpress的主要组件 265
10.1.2 DataExpress组件
10.1.2 说明及其属性 266
10.1.3 DataExpress的体系结构 268
10.1.4 模块化DataExpress
10.1.4 体系结构的优点 269
10.2 使用DataExpress和dbSwing
10.2 组件编写数据库应用程序 269
10.2.1 访问文本数据 269
10.2.2 数据库图形用户界面程序 274
10.2.3 允许“脱机”修改
10.2.3 的数据集 278
10.2.4 数据集二次处理 281
10.2.5 使用存储过程
10.2.5 返回数据集 285
10.2.6 序列化数据集 288
10.2.7 触发器 292
10.3 总结 294
第11章 Applet开发 295
11.1 Applet概述 295
11.2 关于浏览器 296
11.3 指法练习Applet游戏介绍 298
11.3.1 界面及功能 298
11.3.2 程序组成 298
11.4 利用向导生成Applet 301
11.5 设计Applet界面 305
11.6 游戏的统计数据 306
11.7 字母下落线程 307
11.8 添加击中音效 309
11.9 字母下落线程的产生器线程 310
11.10 响应用户按键事件 311
11.11 控制游戏 312
11.11.1 为按钮添加图标 312
11.11.2 通过按钮事件
11.11.2 控制游戏 313
11.11.3 保存游戏统计数据 314
11.11.4 关注Applet生命周期 315
11.12 打包并进行数字签名 317
11.12.1 数字签名技术 317
11.12.2 数字证书的生成 318
11.12.3 打包 319
11.12.4 在文件中引用
11.12.4 Applet包文件 321
11.13 使用插件下载JRE 322
11.14 总结 324
第三篇
第12章 Web应用程序开发基础 326
12.1 Web应用程序概述 326
12.2 Web开发的各项技术 327
12.3 Web开发的过程 329
12.4 Web模块和WAR文件 330
12.4.1 什么是Web模块 330
12.4.2 什么是WAR文件 330
12.4.3 如何用JBuilder向导
12.4.3 创建Web模块 331
12.4.4 Web模块的
12.4.4 目录结构 333
12.5 更改Web模块设置 335
12.5.1 Module设置页 335
12.5.2 Web设置页 336
12.5.3 Clean设置页 336
12.5.4 Build设置页 337
12.5.5 Content设置页 338
12.6 配置Web应用服务器 340
12.7 结束 341
第13章 JSP开发 342
13.1 JSP开发必备 342
13.1.1 JSP概述 342
13.1.2 JSP标签 343
13.1.3 JSP隐含对象 344
13.1.4 JSP和对应的Servlet 345
13.2 用户登录Web应用
13.2 程序功能介绍 346
13.3 模块编写准备工作 348
13.3.1 创建数据库表 348
13.3.2 创建工程及Web模块 349
13.3.3 编写获取数据库连接类 349
13.4 登录页面login.jsp 351
13.4.1 创建login.jsp 351
13.4.2 将用户列表改为动态 353
13.5 切换控制switch.jsp 355
13.5.1 编写User.java 356
13.5.2 编写页面程序 357
13.6 错误处理页面error.jsp 361
13.7 登录失败fail.jsp 362
13.8 欢迎页面welcome.jsp 363
13.8.1 将第三方标签库
13.8.1 配置到JBuilder中 363
13.8.2 创建欢迎JSP页面 365
13.9 quit.jsp退出处理页面 368
13.10 用户登录和退出日志 368
13.11 程序部署 371
13.12 总结 373
第14章 Servlet开发 374
14.1 Servlet开发必备 374
14.1.1 Servlet工作方式 374
14.1.2 Servlet的特性
14.1.2 及应用场合 375
14.2 应用程序改造和功能新增 376
14.2.1 原登录模块的不足 376
14.2.2 新增系统日志模块 377
14.2.3 事前准备 377
14.3 自动启动Servlet 378
14.4 过滤器的Servlet 383
14.5 监听器的Servlet 385
14.6 文件下载的Servlet 387
14.6.1 通过向导创建
14.6.1 ExcelFileServlet 387
14.6.2 下载日志文件代码 389
14.6.3 改造welcome.jsp 391
14.7 总结 391
第15章 Struts开发 392
15.1 Struts概述 392
15.11 Struts技术框架 392
15.1.2 Struts 1.1新增功能 395
15.2 应用程序改造和升级 397
15.2.1 用Action控制器
15.2.1 替换switch.jsp 397
15.2.2 新增一个图书
15.2.2 管理模块 397
15.2.3 事前准备 398
15.3 改造原登录模块 398
15.3.1 用ActionForm截取
15.3.1 登录表单数据 398
15.3.2 用Action代替switch.jsp
15.3.2 的控制转换功能 401
15.4 新增图书记录 407
15.4.1 新增一个Struts
15.4.1 配置文件 407
15.4.2 图书ActionForm 409
15.4.3 新增图书JSP页面 411
15.4.4 创建BookInsertAction 415
15.5 总结 418
第16章 JSF开发 419
16.1 JSF快速学习 419
16.1.1 JSF简介 419
16.1.2 JSF原理 420
16.2 创建基于JSF框架
16.2 的Web应用 421
16.2.1 开始使用JSF前的准备 421
16.2.2 一个简单的JSF应用 422
16.3 在JBuilder中实战JSF 426
16.3.1 JBuilder提供
16.3.1 的JSF工具 426
16.3.2 模拟账户查询程序 429
16.3.3 字体编辑程序 435
16.4 总结 441
第17章 Cocoon开发 442
17.1 Cocoon简介 442
17.1.1 Web发布框架 442
17.1.2 什么是Cocoon 443
17.1.3 Cocoon的工作原理 443
17.1.4 XSP的工作原理 444
17.2 在JBuilder中实战Cocoon 446
17.2.1 创建Cocoon模块 446
17.2.2 一个最简单的XSP 448
17.2.3 利用ESQL从数据库
17.2.3 中读取数据 450
17.2.4 在XSP中发送电子邮件 456
17.3 总结 457
第四篇
第18章 XML开发 460
18.1 XML简介 460
18.1.1 XML文档规则 460
18.1.2 常用概念 461
18.1.3 第一个XML文档 462
18.1.4 XML结构化定义简介 463
18.1.5 XML转换简介 464
18.2 在JBuilder中实战XML 469
18.2.1 基于DTD生成XML 469
18.2.2 转换XML文档 471
18.2.3 XTable和XQuery组件 475
18.2.4 XMLDBMSQuery和
18.2.4 XMLDBMSTable组件 479
18.2.5 基于DTD实现数据绑定 483
18.3 XML解析 489
18.3.1 文档对象模型(DOM) 489
18.3.2 用于XML的简单
18.3.2 API(SAX) 492
18.3.3 使用SAX同步解析
18.3.3 XML数据流 496
18.3.4 选择合适的API 500
18.4 总结 500
第19章 EJB开发 501
19.1 J2EE 501
19.1.1 J2EE技术与EJB 502
19.2 EJB 503
19.2.1 EJB概要介绍 503
19.2.2 EJB形成原因 503
19.2.3 EJB的适用范围 504
19.2.4 EJB组成 504
19.2.5 EJB服务器和EJB容器 505
19.2.6 EJB类型 506
19.3 网上模拟ATM
19.3 提款机系统 507
19.3.1 系统介绍 507
19.3.2 用例介绍 508
19.3.3 应用程序功能组成 509
19.3.4 程序组成 510
19.4 模块编写准备工作 511
19.4.1 创建数据库 511
19.4.2 应用服务器的配置 512
19.4.3 数据源配置 514
19.4.4 创建工程和EJB模块 515
19.4.5 使用JBuilder开发
19.4.5 Account实体类 516
19.4.6 创建业务逻辑类 518
19.4.7 Web设计 521
19.4.8 测试程序 524
19.4.9 程序运行 525
19.5 总结 526
第20章 Web Service开发 527
20.1 Web Service简介 527
20.1.1 Web Service概述 527
20.1.2 Web Service相关概念 529
20.1.3 Web Service的特点 530
20.2 在JBuilder中实战Web Service 531
20.2.1 创建并测试Web Service 531
20.2.2 创建Web Service客户端 536
20.2.3 在Tomcat 5.0中部署
20.2.3 Web Service 539
20.2.4 传递复杂数据类型
20.2.4 的Web Service 540
20.2.5 传递大二进制数据
20.2.5 的Web Service 546
20.2.6 基于EJB创建
20.2.6 Web Service 548
20.3 JBuilder提供的
20.3 Web Service工具 549
20.3.1 SOAP报文侦听 549
20.3.2 Web Service搜索器 552
20.4 总结 553
第21章 CORBA开发 554
21.1 CORBA简介 554
21.1.1 什么是CORBA 554
21.1.2 ORB原理 555
21.1.3 CORBA与Java的关系 557
21.1.4 使用CORBA的优点 557
21.2 接口定义语言IDL介绍 558
21.2.1 OMG IDL数据类型 558
21.2.2 IDL设计 559
21.3 使用JDK开发CORBA应用 561
23.3.1 简单的CORBA应用 561
21.3.2 传递复杂数据类型
21.3.2 的CORBA应用 564
21.4 使用VisiBroker开发
21.4 CORBA应用 571
21.4.1 VisiBroker简介 571
21.4.2 基于VisiBroker开发
21.4.2 CORBA应用的步骤 572
21.4.3 基于VisiBroker开发
21.4.3 CORBA应用的实例 572
21.5 总结 574
第22章 无线应用开发 575
22.1 J2ME概述 575
22.1.1 J2ME介绍 575
22.1.2 J2ME总体架构 576
22.1.3 配置概述 576
22.1.4 简表概述 576
22.1.5 J2ME、J2SE与J2EE
22.1.5 之间的比较 577
22.1.6 J2ME在手机应用的前景 578
22.2 实例介绍 578
22.3 创建工程 579
22.3.1 工程的创建 579
22.4 入口主程序开发 580
22.4.1 MIDlet介绍 580
22.4.2 入口程序 581
22.5 RMS管理模块 583
22.5.1 RMS介绍 583
22.5.2 RMS管理 584
22.6 远程通信模块 590
22.6.1 网络编程介绍 590
22.6.2 远程通信模块开发 590
22.7 查询界面模块 593
22.7.1 查询界面设计 593
22.7.2 查询功能开发 594
22.8 结果显示模块 597
22.8.1 结果显示界面设计 597
22.8.2 结果显示功能开发 598
22.9 程序运行结果 599
22.10 应用程序打包及部署 599
22.10.1 打包 599
22.10.2 部署 600
22.11 其他配置 601
22.11.1 程序运行方法配置 601
22.11.2 更换模拟器 602
22.12 总结 603
第五篇
第23章 团队协作及版本控制 606
23.1 团队协作开发概述 606
23.1.1 VCS的作用 606
23.1.2 JBuilder对VCS的支持 607
23.2 安装配置CVS服务器 608
23.2.1 初始化CVS代码库 608
23.2.2 分配代码库访问权限 610
23.3 提交工程和下载工程 611
23.3.1 提交工程到
23.3.1 CVS服务器 611
23.3.2 从CVS服务器下载工程 614
23.4 CVS团队协作常用操作 616
23.4.1 添新文件到代码库 616
23.4.2 提交更改到CVS
23.4.2 服务器(Commit) 617
23.4.3 同步更新到本地
23.4.3 机器(Update) 617
23.4.4 合并更改(Merge) 617
23.4.5 删除文件 621
23.4.6 版本回溯和比较 621
23.4.7 批量提交和更新 622
23.5 用StarTeam进行团队开发 624
23.5.1 StarTeam概述 624
23.5.2 安装StarTeam服务器 625
23.5.3 启动StarTeam服务器 626
23.5.4 添加新用户 626
23.5.5 提交工程到StarTeam
23.5.5 服务器 628
23.5.6 从StarTeam服务器
23.5.6 下载工程 631
23.5.7 StarTeam的操作
23.5.7 界面介绍 632
23.6 变化监视的标识设置 633
23.7 总结 634
第24章 UML浏览器 635
24.1 Java和UML 635
24.2 JBuilder和UML 636
24.2.1 有限包依赖图 636
24.2.2 组合类图 637
24.3 JBuilder UML图 639
24.4 浏览UML图 641
24.4.1 UML浏览器 642
24.4.2 浏览包图 643
24.4.3 浏览类图 643
24.4.4 浏览内部类图 643
24.5 UML和结构窗格 644
24.6 UML相关配置 644
24.6.1 工程属性中相关配置 644
24.6.2 开发环境相关配置 646
24.7 总结 646
第25章 单元测试 647
25.1 自动测试代码的重要性 647
25.2 JUnit测试框架 648
25.2.1 简单的框架 648
25.2.2 测试固件(Fixture) 649
25.2.3 测试用例(TestCase) 650
25.2.4 测试套件(TestSuite) 650
25.2.5 测试运行器 651
25.3 业务类介绍 652
25.3.1 分段函数类 652
25.3.2 字符串处理类 653
25.4 创建测试用例 654
25.5 用套件捆绑运行多个测试用例 658
25.6 创建测试固件 661
25.6.1 JDBC测试固件 661
25.6.2 比较测试固件 667
25.7 测试运行配置 670
25.8 总结 672
第26章 创建Javadoc文档 674
26.1 什么是Javadoc文档 674
26.2 Javadoc标签介绍 677
26.3 编写Javadoc注释 682
26.3.1 Javadoc对话框 682
26.3.2 使用JavadocInsight 683
26.3.3 自定义的Javadoc标签 684
26.3.4 使用代码模板 685
26.3.5 Javadoc注释冲突 687
26.3.6 todo标签 688
26.4 创建Javadoc文档 689
26.5 总结 693
第27章 代码重构 694
27.1 认识重构 694
27.1.1 为什么要重构 694
27.1.2 何时着手重构 695
27.2 JBuilder对重构的支持 696
27.2.1 提供了哪些重构
27.2.1 的功能 697
27.2.2 重构对话框 697
27.2.3 重构一般操作步骤 698
27.3 重构之事前侦察 699
27.3.1 查看定义 699
27.3.2 查看引用 699
27.3.3 查看覆盖方法 700
27.4 重命名 700
27.4.1 值域及变量重命名 701
27.4.2 属性重命名 701
27.4.3 方法重命名 702
27.4.4 方法参数更改 703
27.4.5 类重命名 705
27.4.6 包重命名 705
27.5 类的内部提炼 706
27.5.1 提炼方法 706
27.5.2 内联方法 707
27.5.3 提炼变量 707
27.5.4 内联变量 708
27.6 类继承体系间的搬迁 709
27.6.1 搬迁方法 709
27.6.2 迁值域 710
27.6.3 提炼超类 711
27.6.4 提炼接口 712
27.7 无缝升级到JDK 5.0 713
27.7.1 使工程基于JDK 5.0 713
27.7.2 优化循环 713
27.7.3 自动装/拆箱 714
27.7.4 非泛型转泛型 715
27.8 杂项重构 716
27.8.1 优化import 716
27.8.2 自动添加异常捕捉 717
27.8.3 部署描述文件 719
27.8.4 EJB 720
27.8.5 代理 720
27.9 分布式重构 722
27.10 总结 725
第六篇
附录A 各种数据库连接关键代码 728
附录B 使用第三方工具开发XML 730
附录C Javadoc命令使用说明 733
第一篇
第1章 JBuilder 2005概述 2
1.1 功能介绍 2
1.2 新增特性 4
1.3 程序安装 5
1.3.1 不同版本的差异 5
1.3.2 硬件要求 6
1.3.3 安装步骤 7
1.4 理解安装目录 11
1.5 使用帮助 12
1.5.1 如何获取帮助 12
1.5.2 使用Help Viewer 13
1.6 常见问题解决之道 14
1.6.1 光标错位 14
1.6.2 汉字乱码 17
1.7 总结 17
第2章 Java语言基础 18
2.1 Java简介 18
2.1.1 Java发展史 18
2.1.2 Java的特点 19
2.1.3 关于Java的FAQ 19
2.2 Java语言基础 20
2.2.1 注释 20
2.2.2 Java中的关键字 21
2.2.3 基本数据类型 22
2.2.4 基本数据类型的转换 23
2.2.5 字面值 24
2.2.6 数组 25
2.2.7 运算符和表达式 27
2.3 流程控制 32
2.3.1 选择流程控制语句 33
2.3.2 循环语句及跳转 34
2.4 类和对象 37
2.4.1 类的一般结构 38
2.4.2 类的包 39
2.4.3 类的值域和方法 40
2.4.4 方法的重载和覆盖 42
2.4.5 类的构造函数 43
2.4.6 类的继承 44
2.4.7 类和接口 46
2.5 异常处理 47
2.5.1 Java中的异常结构 48
2.5.2 发生异常时的流程控制 49
2.5.3 抛出异常 50
2.6 JDK 5.0快速进阶 51
2.6.1 简易开发 51
2.6.2 提高扩展性和性能 51
2.6.3 监视和管理 52
2.6.4 新的JVM整形API 52
2.6.5 改进诊断能力 53
2.6.6 元数据Metadata 54
2.6.7 泛型 55
2.6.8 自动装/拆箱 56
2.6.9 增强型for循环 56
2.6.10 枚举化的类型 57
2.6.11 静态引入 57
2.6.12 格式化的输出 57
2.6.13 格式化的输入 57
2.6.14 不定参数 58
2.6.15 并行工具 58
2.6.16 其他的一些新特性 58
2.7 总结 59
第3章 JBuilder 2005集成开发环境 60
3.1 集成开发环境 60
3.1.1 菜单条 61
3.1.2 工具条 62
3.1.3 工程窗格 63
3.1.4 结构窗格 65
3.1.5 内容窗格 66
3.1.6 信息窗格 67
3.1.7 状态条 68
3.1.8 调整工作区效果 69
3.2 工程及工程组 70
3.2.1 何为工程 70
3.2.2 用工程向导创建一个工程 71
3.2.3 工程属性 73
3.2.4 工程组 74
3.3 维护类库 76
3.3.1 类库的结构 76
3.3.2 维护JBuilder类库 77
3.3.3 维护工程扩展类库 81
3.4 设置JDK 82
3.4.1 配置一个新的JDK 82
3.4.2 在工程中使用JDK 5.0 84
3.5 小结 85
第4章 编辑器——高效代码
第4章 开发之利器 87
4.1 编辑器界面组成 87
4.2 编辑器的一般设置 88
4.2.1 设置编辑器字体 88
4.2.2 调整编辑器的显示效果 89
4.2.3 动作触发设置 89
4.3 快捷键 91
4.3.1 快捷键模式 91
4.3.2 配置快捷键 91
4.3.3 常用快捷键 93
4.4 代码选择 96
4.4.1 一般性选择 96
4.4.2 块选择 96
4.5 智能拷贝 97
4.6 查找 98
4.7 用书签进行快速导航和定位 100
4.7.1 数字书签 100
4.7.2 文本书签 100
4.7.3 Todo标识 101
4.8 CodeInsight 101
4.9 代码模板 103
4.9.1 常用代码模板 103
4.9.2 使用代码模板 105
4.9.3 代码模板的设置 105
4.10 同步代码编辑 107
4.11 ErrorInsight 108
4.12 辅助显示支持 109
4.12.1 ScopeInsight 109
4.12.2 代码折叠 110
4.13 代码排版格式化 111
4.13.1 排版格式化的内容 111
4.13.2 设置和调用 112
4.14 总结 113
第5章 代码审查 114
5.1 何谓代码审查 114
5.2 使用代码审查 114
5.3 代码风格审查 116
5.3.1 “switch”必须带一个
5.3.1 default语句 116
5.3.2 应通过类名引用静态成员 116
5.3.3 避免复杂晦涩的代码 117
5.3.4 尽量使用赋值运算符 118
5.3.5 其他代码风格的审查 119
5.4 声明审查 120
5.4.1 避免命名覆盖 120
5.4.2 使用适合的修饰符 121
5.4.3 有关子类覆盖的审查 121
5.4.4 代码排列及先后顺序 121
5.5 命名风格 122
5.5.1 取消不良命名习惯 122
5.5.2 建立和国际接轨的包名 122
5.5.3 避免过于简单的变量名 122
5.6 潜在错误审查 123
5.6.1 聚焦switch 123
5.6.2 避免浮点值等值逻辑判断 125
5.6.3 用括号清晰化
5.6.3 复杂的表示式 126
5.6.4 字符串比较 126
5.7 各种画蛇添足的审查 126
5.7.1 将布尔变量和
5.7.1 布尔值比较 126
5.7.2 无用的成员 127
5.7.3 多余的接口修饰符 127
5.7.4 不必要的强制类型转换 128
5.7.5 多余的import包引入 128
5.8 其他 128
5.8.1 无作为的表达式 128
5.8.2 流程控制中存在
5.8.2 不可至的语句 129
5.8.3 无用的流程标签 130
5.9 总结 130
第6章 编译、运行、调试、
第6章 优化及打包 131
6.1 编译程序 131
6.1.1 关于代码编译 131
6.1.2 编译操作及编译器 131
6.1.3 编译器的设置 133
6.1.4 编译的错误信息 134
6.2 运行程序 135
6.2.1 邮件收发程序 135
6.2.2 运行程序文件 138
6.2.3 设置运行配置信息 139
6.3 调试程序 142
6.3.1 程序的错误类型 142
6.3.2 调试界面 142
6.3.3 调试Sender.java的
6.3.3 运行期错误 144
6.3.4 调试Sender.java的
6.3.4 逻辑错误 146
6.3.5 查看程序加载的类
6.3.5 及类的静态变量 148
6.3.6 多线程调试 149
6.4 Optimizeit代码优化工具 151
6.4.1 Profiler 152
6.4.2 Thread Debugger 154
6.4.3 Code Coverage 156
6.5 打包输出 157
6.5.1 何谓打包 157
6.5.2 混淆编译打包 158
6.5.3 将MailBox打包输出 159
6.5.4 运行打包档案程序文件 162
6.6 总结 163
第二篇
第7章 用户界面应用程序开发 166
7.1 用户界面设计器 166
7.2 布局管理器 167
7.2.1 为何使用布局管理器 167
7.2.2 经典布局管理器 168
7.2.3 JBuilder提供的
7.2.3 布局管理器 173
7.3 用户界面组件 174
7.4 事件处理模型 177
7.4.1 事件类 177
7.4.2 事件监听器 177
7.4.3 显式事件使能 181
7.4.4 适配器 182
7.5 文本编辑器 183
7.5.1 创建工程和主界面 183
7.5.2 加入一个多行文本框组件 186
7.5.3 创建菜单 188
7.5.4 加入一个FontChooser
7.5.4 对话框 190
7.5.5 使用FontChooser设置
7.5.5 多行文本框中的字体 192
7.5.6 添加菜单事件调用
7.5.6 JColorChooser 192
7.5.7 添加菜单事件清除多行
7.5.7 文本框的内容 193
7.5.8 添加文件选择对话框 193
7.5.9 添加从文件中读取
7.5.9 内容的方法 194
7.5.10 添加保存文件菜单
7.5.10 处理事件 195
7.5.11 添加代码监视文件
7.5.11 内容的变化 197
7.5.12 让工具栏工作起来 198
7.5.13 为多行文本框组件
7.5.13 添加事件处理 200
7.5.14 为多行文本框添加
7.5.14 上下文菜单 200
7.5.15 在窗口状态条中显示
7.5.15 文件及其状态 201
7.6 总结 203
第8章 JavaBean开发 204
8.1 什么是Bean 204
8.2 Bean的编写过程 204
8.3 Bean属性和事件 206
8.3.1 Bean的属性 206
8.3.2 属性编辑器 207
8.3.3 属性定制器 208
8.3.4 Bean的事件 209
8.4 整数值范围Bean功能介绍 209
8.5 IntValueBean编写 210
8.5.1 创建IntValueBean 210
8.5.2 序列化组件 212
8.5.3 添加关联属性 212
8.5.4 成为属性变化的监听器 215
8.5.5 添加限制属性 218
8.5.6 添加得到或失去焦点事件 220
8.6 建立RangeBean 223
8.6.1 创建RangeBean 223
8.6.2 代理设置IntValueBean
8.6.2 的bgColor属性 225
8.6.3 代理设置IntValueBean
8.6.3 的intValue属性 226
8.6.4 成为限制属性否决监听器 226
8.7 BeanInfo 229
8.8 属性编辑器 231
8.8.1 生成属性编辑器 232
8.8.2 在BeanInfo中声明
8.8.2 属性编辑器 234
8.9 Bean定制器 236
8.9.1 创建Bean的定制器 236
8.9.2 在BeanInfo中说明
8.9.2 Bean的定制器 238
8.10 打包输出 239
8.10.1 为Bean设定图标 239
8.10.2 查看Bean的各部分内容 240
8.10.3 打成JAR包 240
8.11 添加到组件面板 241
8.12 总结 243
第9章 JDataStore数据库开发 244
9.1 DataStore简介 244
9.1.1 JDataStore的特性 244
9.1.2 JDataStore的配置 244
9.2 用JDataStore浏览器管理数据库 246
9.2.1 启动JDataStore 246
9.2.2 创建JDataStore文件 246
9.2.3 打开JDataStore文件 247
9.3 如何创建表及索引 247
9.3.1 创建表 247
9.3.2 创建索引 248
9.4 JDataStore的安全性管理 248
9.4.1 管理用户 248
9.4.2 修改密码 248
9.4.3 数据库加密 249
9.5 DataStore数据库简单应用 249
9.6 数据库图形用户界面程序 251
9.7 JDataStore的数据导入导出 255
9.8 JDataStore在非结构化
9.8 存储方面的应用 259
9.9 发布基于JDataStore
9.9 的应用程序 264
9.10 总结 264
第10章 DataExpress和
第10章 dbSwing数据库开发 265
10.1 DataExpress简介 265
10.1.1 DataExpress的主要组件 265
10.1.2 DataExpress组件
10.1.2 说明及其属性 266
10.1.3 DataExpress的体系结构 268
10.1.4 模块化DataExpress
10.1.4 体系结构的优点 269
10.2 使用DataExpress和dbSwing
10.2 组件编写数据库应用程序 269
10.2.1 访问文本数据 269
10.2.2 数据库图形用户界面程序 274
10.2.3 允许“脱机”修改
10.2.3 的数据集 278
10.2.4 数据集二次处理 281
10.2.5 使用存储过程
10.2.5 返回数据集 285
10.2.6 序列化数据集 288
10.2.7 触发器 292
10.3 总结 294
第11章 Applet开发 295
11.1 Applet概述 295
11.2 关于浏览器 296
11.3 指法练习Applet游戏介绍 298
11.3.1 界面及功能 298
11.3.2 程序组成 298
11.4 利用向导生成Applet 301
11.5 设计Applet界面 305
11.6 游戏的统计数据 306
11.7 字母下落线程 307
11.8 添加击中音效 309
11.9 字母下落线程的产生器线程 310
11.10 响应用户按键事件 311
11.11 控制游戏 312
11.11.1 为按钮添加图标 312
11.11.2 通过按钮事件
11.11.2 控制游戏 313
11.11.3 保存游戏统计数据 314
11.11.4 关注Applet生命周期 315
11.12 打包并进行数字签名 317
11.12.1 数字签名技术 317
11.12.2 数字证书的生成 318
11.12.3 打包 319
11.12.4 在文件中引用
11.12.4 Applet包文件 321
11.13 使用插件下载JRE 322
11.14 总结 324
第三篇
第12章 Web应用程序开发基础 326
12.1 Web应用程序概述 326
12.2 Web开发的各项技术 327
12.3 Web开发的过程 329
12.4 Web模块和WAR文件 330
12.4.1 什么是Web模块 330
12.4.2 什么是WAR文件 330
12.4.3 如何用JBuilder向导
12.4.3 创建Web模块 331
12.4.4 Web模块的
12.4.4 目录结构 333
12.5 更改Web模块设置 335
12.5.1 Module设置页 335
12.5.2 Web设置页 336
12.5.3 Clean设置页 336
12.5.4 Build设置页 337
12.5.5 Content设置页 338
12.6 配置Web应用服务器 340
12.7 结束 341
第13章 JSP开发 342
13.1 JSP开发必备 342
13.1.1 JSP概述 342
13.1.2 JSP标签 343
13.1.3 JSP隐含对象 344
13.1.4 JSP和对应的Servlet 345
13.2 用户登录Web应用
13.2 程序功能介绍 346
13.3 模块编写准备工作 348
13.3.1 创建数据库表 348
13.3.2 创建工程及Web模块 349
13.3.3 编写获取数据库连接类 349
13.4 登录页面login.jsp 351
13.4.1 创建login.jsp 351
13.4.2 将用户列表改为动态 353
13.5 切换控制switch.jsp 355
13.5.1 编写User.java 356
13.5.2 编写页面程序 357
13.6 错误处理页面error.jsp 361
13.7 登录失败fail.jsp 362
13.8 欢迎页面welcome.jsp 363
13.8.1 将第三方标签库
13.8.1 配置到JBuilder中 363
13.8.2 创建欢迎JSP页面 365
13.9 quit.jsp退出处理页面 368
13.10 用户登录和退出日志 368
13.11 程序部署 371
13.12 总结 373
第14章 Servlet开发 374
14.1 Servlet开发必备 374
14.1.1 Servlet工作方式 374
14.1.2 Servlet的特性
14.1.2 及应用场合 375
14.2 应用程序改造和功能新增 376
14.2.1 原登录模块的不足 376
14.2.2 新增系统日志模块 377
14.2.3 事前准备 377
14.3 自动启动Servlet 378
14.4 过滤器的Servlet 383
14.5 监听器的Servlet 385
14.6 文件下载的Servlet 387
14.6.1 通过向导创建
14.6.1 ExcelFileServlet 387
14.6.2 下载日志文件代码 389
14.6.3 改造welcome.jsp 391
14.7 总结 391
第15章 Struts开发 392
15.1 Struts概述 392
15.11 Struts技术框架 392
15.1.2 Struts 1.1新增功能 395
15.2 应用程序改造和升级 397
15.2.1 用Action控制器
15.2.1 替换switch.jsp 397
15.2.2 新增一个图书
15.2.2 管理模块 397
15.2.3 事前准备 398
15.3 改造原登录模块 398
15.3.1 用ActionForm截取
15.3.1 登录表单数据 398
15.3.2 用Action代替switch.jsp
15.3.2 的控制转换功能 401
15.4 新增图书记录 407
15.4.1 新增一个Struts
15.4.1 配置文件 407
15.4.2 图书ActionForm 409
15.4.3 新增图书JSP页面 411
15.4.4 创建BookInsertAction 415
15.5 总结 418
第16章 JSF开发 419
16.1 JSF快速学习 419
16.1.1 JSF简介 419
16.1.2 JSF原理 420
16.2 创建基于JSF框架
16.2 的Web应用 421
16.2.1 开始使用JSF前的准备 421
16.2.2 一个简单的JSF应用 422
16.3 在JBuilder中实战JSF 426
16.3.1 JBuilder提供
16.3.1 的JSF工具 426
16.3.2 模拟账户查询程序 429
16.3.3 字体编辑程序 435
16.4 总结 441
第17章 Cocoon开发 442
17.1 Cocoon简介 442
17.1.1 Web发布框架 442
17.1.2 什么是Cocoon 443
17.1.3 Cocoon的工作原理 443
17.1.4 XSP的工作原理 444
17.2 在JBuilder中实战Cocoon 446
17.2.1 创建Cocoon模块 446
17.2.2 一个最简单的XSP 448
17.2.3 利用ESQL从数据库
17.2.3 中读取数据 450
17.2.4 在XSP中发送电子邮件 456
17.3 总结 457
第四篇
第18章 XML开发 460
18.1 XML简介 460
18.1.1 XML文档规则 460
18.1.2 常用概念 461
18.1.3 第一个XML文档 462
18.1.4 XML结构化定义简介 463
18.1.5 XML转换简介 464
18.2 在JBuilder中实战XML 469
18.2.1 基于DTD生成XML 469
18.2.2 转换XML文档 471
18.2.3 XTable和XQuery组件 475
18.2.4 XMLDBMSQuery和
18.2.4 XMLDBMSTable组件 479
18.2.5 基于DTD实现数据绑定 483
18.3 XML解析 489
18.3.1 文档对象模型(DOM) 489
18.3.2 用于XML的简单
18.3.2 API(SAX) 492
18.3.3 使用SAX同步解析
18.3.3 XML数据流 496
18.3.4 选择合适的API 500
18.4 总结 500
第19章 EJB开发 501
19.1 J2EE 501
19.1.1 J2EE技术与EJB 502
19.2 EJB 503
19.2.1 EJB概要介绍 503
19.2.2 EJB形成原因 503
19.2.3 EJB的适用范围 504
19.2.4 EJB组成 504
19.2.5 EJB服务器和EJB容器 505
19.2.6 EJB类型 506
19.3 网上模拟ATM
19.3 提款机系统 507
19.3.1 系统介绍 507
19.3.2 用例介绍 508
19.3.3 应用程序功能组成 509
19.3.4 程序组成 510
19.4 模块编写准备工作 511
19.4.1 创建数据库 511
19.4.2 应用服务器的配置 512
19.4.3 数据源配置 514
19.4.4 创建工程和EJB模块 515
19.4.5 使用JBuilder开发
19.4.5 Account实体类 516
19.4.6 创建业务逻辑类 518
19.4.7 Web设计 521
19.4.8 测试程序 524
19.4.9 程序运行 525
19.5 总结 526
第20章 Web Service开发 527
20.1 Web Service简介 527
20.1.1 Web Service概述 527
20.1.2 Web Service相关概念 529
20.1.3 Web Service的特点 530
20.2 在JBuilder中实战Web Service 531
20.2.1 创建并测试Web Service 531
20.2.2 创建Web Service客户端 536
20.2.3 在Tomcat 5.0中部署
20.2.3 Web Service 539
20.2.4 传递复杂数据类型
20.2.4 的Web Service 540
20.2.5 传递大二进制数据
20.2.5 的Web Service 546
20.2.6 基于EJB创建
20.2.6 Web Service 548
20.3 JBuilder提供的
20.3 Web Service工具 549
20.3.1 SOAP报文侦听 549
20.3.2 Web Service搜索器 552
20.4 总结 553
第21章 CORBA开发 554
21.1 CORBA简介 554
21.1.1 什么是CORBA 554
21.1.2 ORB原理 555
21.1.3 CORBA与Java的关系 557
21.1.4 使用CORBA的优点 557
21.2 接口定义语言IDL介绍 558
21.2.1 OMG IDL数据类型 558
21.2.2 IDL设计 559
21.3 使用JDK开发CORBA应用 561
23.3.1 简单的CORBA应用 561
21.3.2 传递复杂数据类型
21.3.2 的CORBA应用 564
21.4 使用VisiBroker开发
21.4 CORBA应用 571
21.4.1 VisiBroker简介 571
21.4.2 基于VisiBroker开发
21.4.2 CORBA应用的步骤 572
21.4.3 基于VisiBroker开发
21.4.3 CORBA应用的实例 572
21.5 总结 574
第22章 无线应用开发 575
22.1 J2ME概述 575
22.1.1 J2ME介绍 575
22.1.2 J2ME总体架构 576
22.1.3 配置概述 576
22.1.4 简表概述 576
22.1.5 J2ME、J2SE与J2EE
22.1.5 之间的比较 577
22.1.6 J2ME在手机应用的前景 578
22.2 实例介绍 578
22.3 创建工程 579
22.3.1 工程的创建 579
22.4 入口主程序开发 580
22.4.1 MIDlet介绍 580
22.4.2 入口程序 581
22.5 RMS管理模块 583
22.5.1 RMS介绍 583
22.5.2 RMS管理 584
22.6 远程通信模块 590
22.6.1 网络编程介绍 590
22.6.2 远程通信模块开发 590
22.7 查询界面模块 593
22.7.1 查询界面设计 593
22.7.2 查询功能开发 594
22.8 结果显示模块 597
22.8.1 结果显示界面设计 597
22.8.2 结果显示功能开发 598
22.9 程序运行结果 599
22.10 应用程序打包及部署 599
22.10.1 打包 599
22.10.2 部署 600
22.11 其他配置 601
22.11.1 程序运行方法配置 601
22.11.2 更换模拟器 602
22.12 总结 603
第五篇
第23章 团队协作及版本控制 606
23.1 团队协作开发概述 606
23.1.1 VCS的作用 606
23.1.2 JBuilder对VCS的支持 607
23.2 安装配置CVS服务器 608
23.2.1 初始化CVS代码库 608
23.2.2 分配代码库访问权限 610
23.3 提交工程和下载工程 611
23.3.1 提交工程到
23.3.1 CVS服务器 611
23.3.2 从CVS服务器下载工程 614
23.4 CVS团队协作常用操作 616
23.4.1 添新文件到代码库 616
23.4.2 提交更改到CVS
23.4.2 服务器(Commit) 617
23.4.3 同步更新到本地
23.4.3 机器(Update) 617
23.4.4 合并更改(Merge) 617
23.4.5 删除文件 621
23.4.6 版本回溯和比较 621
23.4.7 批量提交和更新 622
23.5 用StarTeam进行团队开发 624
23.5.1 StarTeam概述 624
23.5.2 安装StarTeam服务器 625
23.5.3 启动StarTeam服务器 626
23.5.4 添加新用户 626
23.5.5 提交工程到StarTeam
23.5.5 服务器 628
23.5.6 从StarTeam服务器
23.5.6 下载工程 631
23.5.7 StarTeam的操作
23.5.7 界面介绍 632
23.6 变化监视的标识设置 633
23.7 总结 634
第24章 UML浏览器 635
24.1 Java和UML 635
24.2 JBuilder和UML 636
24.2.1 有限包依赖图 636
24.2.2 组合类图 637
24.3 JBuilder UML图 639
24.4 浏览UML图 641
24.4.1 UML浏览器 642
24.4.2 浏览包图 643
24.4.3 浏览类图 643
24.4.4 浏览内部类图 643
24.5 UML和结构窗格 644
24.6 UML相关配置 644
24.6.1 工程属性中相关配置 644
24.6.2 开发环境相关配置 646
24.7 总结 646
第25章 单元测试 647
25.1 自动测试代码的重要性 647
25.2 JUnit测试框架 648
25.2.1 简单的框架 648
25.2.2 测试固件(Fixture) 649
25.2.3 测试用例(TestCase) 650
25.2.4 测试套件(TestSuite) 650
25.2.5 测试运行器 651
25.3 业务类介绍 652
25.3.1 分段函数类 652
25.3.2 字符串处理类 653
25.4 创建测试用例 654
25.5 用套件捆绑运行多个测试用例 658
25.6 创建测试固件 661
25.6.1 JDBC测试固件 661
25.6.2 比较测试固件 667
25.7 测试运行配置 670
25.8 总结 672
第26章 创建Javadoc文档 674
26.1 什么是Javadoc文档 674
26.2 Javadoc标签介绍 677
26.3 编写Javadoc注释 682
26.3.1 Javadoc对话框 682
26.3.2 使用JavadocInsight 683
26.3.3 自定义的Javadoc标签 684
26.3.4 使用代码模板 685
26.3.5 Javadoc注释冲突 687
26.3.6 todo标签 688
26.4 创建Javadoc文档 689
26.5 总结 693
第27章 代码重构 694
27.1 认识重构 694
27.1.1 为什么要重构 694
27.1.2 何时着手重构 695
27.2 JBuilder对重构的支持 696
27.2.1 提供了哪些重构
27.2.1 的功能 697
27.2.2 重构对话框 697
27.2.3 重构一般操作步骤 698
27.3 重构之事前侦察 699
27.3.1 查看定义 699
27.3.2 查看引用 699
27.3.3 查看覆盖方法 700
27.4 重命名 700
27.4.1 值域及变量重命名 701
27.4.2 属性重命名 701
27.4.3 方法重命名 702
27.4.4 方法参数更改 703
27.4.5 类重命名 705
27.4.6 包重命名 705
27.5 类的内部提炼 706
27.5.1 提炼方法 706
27.5.2 内联方法 707
27.5.3 提炼变量 707
27.5.4 内联变量 708
27.6 类继承体系间的搬迁 709
27.6.1 搬迁方法 709
27.6.2 迁值域 710
27.6.3 提炼超类 711
27.6.4 提炼接口 712
27.7 无缝升级到JDK 5.0 713
27.7.1 使工程基于JDK 5.0 713
27.7.2 优化循环 713
27.7.3 自动装/拆箱 714
27.7.4 非泛型转泛型 715
27.8 杂项重构 716
27.8.1 优化import 716
27.8.2 自动添加异常捕捉 717
27.8.3 部署描述文件 719
27.8.4 EJB 720
27.8.5 代理 720
27.9 分布式重构 722
27.10 总结 725
第六篇
附录A 各种数据库连接关键代码 728
附录B 使用第三方工具开发XML 730
附录C Javadoc命令使用说明 733
JBuilder的领导地位
2004年无疑是Java世界发生了翻天覆地变化的一年,Java的根基已经提升到了JDK 5.0。此次,Sun对JDK功能的提升幅度无疑是前所未有的。Java Web层的标准JSF使得开发人员可以开发像桌面应用程序一样开发Web层的界面,这一革新性的技术必将深刻地影响Web程序的界面实现。Apache的Struts框架已成为J2EE Web层开发的事实标准,Struts在2004年是达到成熟顶点。此外,许多像IOC、AOP、SOA、MDA等时新的Java技术名字渐渐占据了我们的视线。
Java IDE开发市场越来越热闹,但JBuilder依然得稳坐榜首的位置,根据《不安分的2004与震荡的2005》文章的调查结果,JBuilder 2005以52.05%的市场份额傲视群雄,比位居其二的Eclipse多出了33.11%的份额。JBuilder是Borland ALM(应用周期管理)战略的重要组成部分,它能够和需求、分析、测试、配置管理、部署等多种开发周期的产品紧密结合,形成强大的整体效应。
Borland(中国)高级工程师左轻侯先生表示,Eclipse和JBuilder不是一个级别的东西,前者是IDE,而后者涵盖了软件开发生命周期的各个过程,是成熟的企业级开发平台。JBuilder还是各种Java技术的集大成者,IDC曾这样评价JBuilder:JBuilder准确提供了开发人员所需的功能,甚至早在开发人员认为他们需要这项功能之前,JBuilder就已经提供了该功能。
在JBuilder 2005中最引人注目的无疑是对JDK 5.0和JSF的支持,直追Java技术最前沿。JBuilder 2005还开创性地提供了代码审查的功能,这项功能将使Java开发者特别是初中级Java开发者受益,代码审查像一位技术高超、耐心十足的良师益友时刻匡正你的不足,使你在使用开发工具的同时不断提升Java开发水平。
本书的特点
以往很多JBuilder的书籍都是由培训师、教育工作者或Borland员工编写,本书最大的特点即是其作者全部来自于一线的开发人员,他们都有着多年的在JBuilder中身体力行、摸爬滚打的经验,从事着各种大型Java应用程序的开发。他们熟知JBuilder各项丰富而强大的功能,并能将它们和开发过程融会贯通,真正做到“手中无剑而心中有剑”。因此,将JBuilder各项功能通过实例开发逐步由点至面,层层剥笋,拨云见日,让读者在实例的酣战中学习和掌握JBuilder的功能。
本书的结构
本书分为5大篇,其中第1篇为JBuilder基础知识篇;第2篇至第4篇为各种Java开发专题,其级别和难度逐渐递增;而第5篇为应用开发的高级主题。全书由4位作者撰写,其中耿渊负责第19章,廖建平负责第22章,涂传滨负责第9、10、16、17、18、20、21共7章,而陈雄华负责其余18章及全书的初审工作。
如何使用本书
你应该在机器上安装JBuilder 2005,在你的机器上重现书中实例的开发过程。毕竟程序开发是实践性极强的工作,只有亲身体验才能掌握真谛。
本书配套光盘拥有本书所有实例的代码,你也可以在些基础上重复本书的实例开发过程,省去重新录入代码之苦。
本书约定
为了方便读者阅读本书,本书采用了一些特殊的编写方式。由于像通过菜单项、对话框、按钮等界面组件调用某一具体功能的描述会频繁出现,如果笔者不厌其烦地按如下方式进行描述:
从主菜单中选择“File”菜单,然后点击其下的“New...”菜单项,打开“Object Gallery”对话框,在对话框中左边的树中选择“Web”项,在右边的“Web”页面中双击“JSP”图标。
不但笔者需要浪费较多的笔墨,读者阅读起来也很费力。所以本书摒除这种吃力不讨好的描述方式,而采用下面的这种简洁描述方式:
File->New...->Web->在Web页中双击JSP图标。
本书程序代码占了较大的比重,这是因为依笔者的经验,读者往往希望通过丰富的代码在学习开发工具的同时学习到语言的开发技巧。代码清单中重点的内容,我们会用粗体的形式标出,方便读者找到需要特别关注的部分。
此外,本书会适时加入一些提示、注意、实战经验的小段插文,在不打断行文的同时提供一些有益的开发经验和技巧,相信这些内容将对读者大有裨益。这些插文都带有一个小图标加以凸显,说明如下:
提示信息,在上下文中可能存在一些读者容易忽视或不容易直接掌握的地方,在提示信息中予以更具体的描述
注意信息,使用JBuilder或开发程序容易犯错的地方,且读者不容易自行解决,对此通过注意信息的描述,使读者轻松跨过这些难点
实战经验,本书的作者都有着多年的开发实战经验,他们在多年的开发过程中总结了许多有益的经验、技巧和捷径。这些知识往往是不能从一般的书籍或资料中获得的。本书会适时地在行文中将这些实战经验传授给读者,相信可以使读者朋友少走不少的弯路。
此外,由于JBuilder 2005会在本书中频繁提及,为了保持简洁,除非特别指出,本书的JBuilder即代表JBuilder 2005。
如何与作者联系
由于本书作者水平有限,错误之处在所难免。我们不但欢迎读者朋友来信交流,也欢迎各界高手、专家就不足之处给予赐教和指正。
读者咨询及意见反馈,请发邮件至:jsj@phei.com.cn或editor@broadview.com.cn。
陈雄华