第1篇基础篇 1
第1章J2EE概述 3
1.1 J2EE的产生背景及其优点 3
1.2 J2EE的体系结构 4
1.3J2EE技术概览 6
1.4小结 8
第2章Java语言基础 9
2.1标识符和关键字 9
2.2数据类型和变量 10
2.3.2赋值运算符 12
2.3.1算术运算符 12
2.3运算符 12
2.3.3关系运算符 13
2.3.4逻辑运算符 13
2.3.5位运算符 14
2.3.6移位运算符 14
2.3.7条件运算符 15
2.3.8运算符的优先级 16
2.4控制语句 16
2.4.1选择语句 16
2.4.2循环语句 19
2.4.3 break和continue语句 20
2.5类和对象 21
2.6专题讨论:转型 24
2.6.1向上转型 24
2.6.2向下转型 26
2.6.3混合转型 27
2.7专题讨论:类的动态加载 28
2.8 小结 30
第3章GUI程序设计 31
3.1事件处理模型 31
3.2常用组件 32
3.2.1 JOptionPane 33
3.2.2 JFrame 34
3.2.3 JLabel 35
3.2.4 JTextField和JPasswordField 37
3.2.5 JButton 39
3.2.6 JCheckBox和JRadioButton 42
3.2.7 JTextArea 47
3.2.8 JMenu 48
3.3键盘和鼠标事件 51
3.3.1 实例:键盘事件 51
3.3.2实例:鼠标事件 53
3.3.3 实例:Adapter类的使用 56
3.4布局管理器 58
3.4.1 实例:FlowLayout布局 59
3.4.2实例:BorderLayout布局 61
3.4.3 实例:CardLayout布局 65
3.4.4 实例:GridLayout布局 68
3.5 Graphics和Java2D 69
3.5.1 实例:Graphics绘图 69
3.5.2 实例:Java2D绘图 71
3.6.1 JTree的使用 76
3.6常用高级Swing组件的使用 76
3.6.2 JTable的使用 78
3.7 小结 80
第2篇技术篇 83
第4章异常处理 83
4.1 何谓异常 83
4.2使用try和catch捕获异常 84
4.2.1 实例:异常的捕获 85
4.3使用throw和throws引发异常 86
4.3.1实例:throw语句的使用 86
4.3.2实例:throws语句的使用 87
4.4.1 实例:finally关键字的用法 89
4.4 finally关键字 89
4.5 getMessage和printStackTrace方法 90
4.5.1 实例:输出异常信息 91
4.6创建自己的异常类 92
4.6.1 实例:用自定义异常类控制端口访问 92
4.7小结 94
第5章流和序列化 95
5.1 字节流 95
5.1.1实例:使用字节流进行I/O操作 97
5.2字符流 99
5.2.1实例:使用FileReader类进行文件操作 100
5.3随机访问文件 102
5.3.1使用RandomAccessFile写文件 102
5.3.2使用RandomAccessFile读文件 103
5.4序列化 104
5.4.1 实例:序列化的应用 105
5.5综合实例:典型的IO使用 106
5.6 Java NIO的使用 112
5.7小结 115
第6章接口和抽象类 117
6.1接口 117
6.1.1接口的定义 117
6.1.2接口的实现 118
6.1.3接口的扩展 120
6.1.4实例:接口的使用 120
6.2抽象类 122
6.2.1抽象类的概念 122
6.2.2实例:使用抽象类计算图形面积 123
6.3小结 126
第7章线程 127
7.1 何谓线程 127
7.2线程的生命周期 128
7.3 Thread类和Runnable接口 129
7.3.1 实例:通过继承Thread类实现线程体 130
7.3.2实例:通过实现Runnable接口实现线程体 132
7.4线程优先级与线程的调度 134
7.4.1 实例:优先级的设置对程序运行的影响 135
7.5线程同步 137
7.5.1 实例:用synchronized关键字实现线程同步 138
7.6线程间通信 140
7.6.1 实例:用wait()和notify()方法实现线程间通信 140
7.7小结 142
第8章本地方法调用 143
8.1 JNI概述 143
8.2.1Java字符串与C字符串 144
8.2数据类型的对应 144
8.2.2 Java数组与C数组 145
8.3 Java与 C/C++代码的互相调用 146
8.3.1 实例:从Java程序调用C/C++代码 146
8.3.2实例:从C/C++程序调用Java代码 150
8.4本地方法中的线程和同步 156
8.5 小结 157
第9章远程方法调用 159
9.1 RMI概述 159
9.2如何创建RMI应用程序 161
9.3实例:用RMI构建一个简单的分布式系统 162
9.3.1定义远程接口 163
9.3.2实现远程接口和服务器 164
9.3.3编写客户端程序 166
9.3.4运行程序 167
9.4 RMI的一些高级话题 168
9.5小结 170
第10章命名与目录服务 171
10.1 JNDI的实现原理 171
10.1.1命名与目录服务 171
10.1.2 JNDI的体系结构 172
10.2 JNDI与LDAP 175
10.3使用JNDI访问命名与目录服务 177
10.3.1 实例:访问命名服务 177
10.3.2实例:访问目录服务 179
10.4小结 182
第11章JavaBeans技术 183
11.1 何谓Bean 183
11.2 Bean的优点 184
11.3实例:编写一个简单的Bean 184
11.3.1编写Bean要遵循的规则 185
11.3.2创建一个简单的Bean 187
11.4 Bean的属性 194
11.4.1单值属性 195
11.4.2关联属性 195
11.4.3受限属性 196
11.4.4索引属性 196
11.5属性编辑器与定制器 196
11.6 java.beans包 197
11.6.1 BeanInfo接口 198
11.6.2 SimpleBeanInfo类 198
11.6.3 FeatureDescription类 199
11.6.6 PropertyDescriptor类 200
11.6.5 ParameterDescriptor类 200
11.6.4 MethodDescriptor类 200
11.6.7 IndexedPropertyDescriptor类 201
11.6.8 BeanDescriptor类 202
11.6.9 EventSetDescriptor类 202
11.6.10 IntroSpector类 203
11.7 小结 204
第12章Java网络编程 205
12.1 Java网络类和接口 205
12.2 InetAddress类 205
12.2.1创建InetAddress对象的方法 206
12.2.2实例:查询IP地址的版本 207
12.3 URL和URLConnection类 209
12.3.1 实例:URL对象的创建及使用 211
12.3.2实例:使用URLConnection从Web服务器读取文件 212
12.4 TCP/IP服务器与客户端套接字 213
12.4.1客户端套接字 214
12.4.2服务器套接字 216
12.4.3 实例:C/S环境下的套接字应用程序 218
12.5 Datagram套接字 224
12.5.1 UDP套接字 224
12.5.2 实例:利用DatagramSocket查询端口占用情况 226
12.5.3 实例:利用数据报通信的C/S程序 228
12.5.4组播套接字 230
12.5.5实例:组播套接字C/S程序 231
12.6使用Java NIO提高服务端程序的性能 236
12.7小结 241
第13章JDBC数据访问接口 243
13.1JDBC的体系结构 243
13.2 JDBC的作用及重要接口 244
13.2.1 DriverManager 245
13.2.2 Connection 245
13.2.3 Statement 246
13.2.4 ResultSet 251
13.3连接数据库 252
13.3.1创建指定数据库的URL 252
13.3.2加载驱动程序 253
13.3.3实例:建立数据库连接 253
13.4实例:数据库的增删查改 254
13.5数据库事务 259
13.6高级数据类型 261
13.7数据源在JDBC中的应用 262
13.7.1 实例:注册数据源 263
13.7.2实例:查找数据源 264
13.7.3 实例:数据源的重新绑定 266
13.7.4实例:删除数据源 267
13.8小结 268
第14章Java Servlets技术 269
14.1 Java Servlet概述 269
14.1.1 Servlet的功能 269
14.1.2 JavaServlet与现有网络技术的差别 270
14.1.3 Servlet的生命周期 270
14.2编写HTTP Servlet程序 272
14.2.1 实例:一个简单的Servlet程序 276
14.3 HTTP POST/GET请求 279
14.3.1 实例:Servlet处理POST请求 283
14.4会话跟踪 287
14.4.1 实例:会话跟踪Servlet程序 288
14.5 Cookie的应用 290
14.5.1 实例:使用Cookie的Servlet程序 291
14.6 Filter Servlet 294
14.7 Listener Servlet 299
14.8小结 302
15.1 JSP在Web程序中的应用 303
15.1.1 B/S应用开发技术 303
第15章Java Server Pages技术 303
15.1.2 JSP技术 304
15.1.3 JSP应用 305
15.1.4 JSP与XML 306
15.1.5 JSP与ASP、PHP 307
15.2 JSP语法 308
15.2.1 JSP语法概述 308
15.2.2 JSP指令 309
15.2.3 JSP动作标识 313
15.2.4脚本元素 322
15.3 JSP内置对象 324
15.3.1 request对象 324
15.3.2实例:使用request对象获取表单参数 327
15.3.3 response对象 329
15.3.4实例:URL重定向和定时刷新 329
15.3.5 out对象 330
15.3.6 session对象 332
15.3.7 pageContext对象 333
15.3.8 application对象 333
15.3.10 page对象 334
15.4 JavaBean在JSP中的应用 334
15.3.9 config对象 334
15.5标签库的开发 336
15.5.1 简单标签 337
15.5.2带有主体和属性的标签 339
15.6在JSP页面的安全 344
15.6.1配置Web服务器的SSL 344
15.6.2配置realms 345
15.7小结 347
第16章事务处理 349
16.1事务的ACID特征 349
16.2 J2EE事务服务 351
16.3.1 UserTransaction接口 353
16.3 JTA事务 353
16.3.2 Status接口 354
16.3.3 JTA定义的事务属性 355
16.4 JTS 356
16.5小结 358
第17章基于JMS的消息处理 359
17.1 JMS概述 359
17.2 JMS API编程模型 361
17.2.1 Administered Objects 361
17.2.2 Destinations 362
17.2.3 Connections 362
17.2.5 Message Producers 363
17.2.4 Sessions 363
17.2.6 Message Consumers 364
17.2.7 Message Listeners 365
17.2.8 Message Selectors 365
17.2.9 Message 365
17.3 JMS Point-to-Point(PTP)模型编程 367
17.4 JMS Publish/Subscribe(Pub/Sub)模型编程 382
17.5小结 389
18.1.1 EJB的设计目标 391
18.1何谓EJB 391
第18章EJB技术 391
18.1.2 EJB容器和服务器 392
18.1.3 EJB的体系结构 393
18.1.4 EJB的重要特性 395
18.1.5 EJB中的角色 395
18.1.6 EJB与JavaBean的区别 396
18.2 EJB的开发过程 397
18.2.1 Home接口 397
18.2.3 Bean类 398
18.2.4配置描述器 398
18.2.2远程接口 398
18.3会话Bean 405
18.3.1有状态会话Bean 406
18.3.2无状态会话Bean 410
18.3.3会话Bean的特点及适用场合 414
18.4实体Bean 415
18.4.1实体Bean的开发 416
18.4.2实体Bean的关系 419
18.4.3 EJB查询语言 424
18.4.4在客户端使用EJB 426
18.5消息驱动Bean 430
18.6小结 433
第19章JavaMail技术 435
19.1 E-mail协议概述 435
19.1.1 SMTP协议 435
19.1.2 POP3协议 436
19.1.3 IMAP协议 436
19.1.4 MIME协议 436
19.2邮件消息模型 436
19.2.1简单消息模型 437
19.2.2 Multipart消息模型 437
19.3.1 Session 438
19.3.2 Message 438
19.3 JavaMail核心类 438
19.3.3 Address 439
19.3.4 Authenticator 440
19.3.5 Transport 440
19.3.6 Store和Folder 441
19.4发送邮件 441
19.5获取邮件 447
19.6邮件的回复和转发 449
19.7小结 450
20.1 Java的安全性 451
第20章基于JAAS的安全技术 451
20.2 JAAS概览 453
20.3 JAAS核心类 454
20.3.1 Subject和Principal 455
20.3.2 LoginContext 455
20.3.3 LoginModule 456
20.3.4 CallbackHandler和Callback 457
20.4认证 458
20.4.1实例:使用JAAS进行认证 458
20.5授权 463
20.5.1 实例:声明性授权 464
20.5.2实例:程序性授权 465
20.6 小结 466
第21章Web服务技术 467
21.1 Web服务体系结构 467
21.2 xML解析——JAXP 469
21.3 UDDI 476
21.3.1 商业实体信息 478
21.3.2商业服务信息 478
21.3.3绑定模板信息 478
21.3.4技术规范信息 479
21.4 WSDL 480
21.5 SOAP 483
21.5.1常用术语 484
21.5.2 SOAP消息 485
2153 SOApFault 487
21.5.4 SOAP编码规则 488
21.5.5 SOAP RPC表示 490
21.6 Web服务开发 492
21.6.1 Servlet作为Web服务的端点 492
21.6.2 EJB作为Web服务的端点 498
21.7 小结 502
附录A主题词表 503
附录B J2EE兼容应用服务器 505
附录C参考资料 526