目 录 1
第一部分客户层 1
Item 1:当Runtime.exec()运行出错时 4
Item 2:NIO的效率和陷阱 16
Item 3:我宁愿不使用属性 31
Item 4:当信息隐藏得太多时 35
Item 5:避免java.util.logging中的粒度陷阱 41
Item 6:当标准API的实现发生冲突时 49
Item 7:断言绝非多余 55
Item 8:查找DOM的错误方法 61
Item 9:保存一个DOM的困境 68
Item 10:鼠标按钮的可移植性 74
Item 11:Apache Ant和生命周期管理 81
Item 12:JUnit:单元测试使事情变得简单 92
Item 13:执行的失败 100
Item 14:你收集了什么 104
Item 15:避免Singleton陷阱 108
Item 16:当setSize()不能如愿时 113
Item 17:当POST到一个URL无法如愿时 117
Item 18:有效的字符串标记化 130
Item 19:JLayered Pane陷阱 135
Item 20:File.renameTo为什么失败 140
Item 21:使用迭代替代枚举 146
Item 22:J2ME的效率和陷阱 150
第二部分Web层 185
Item 23:珍贵的缓存 186
Item 24:JSP设计错误 193
Item 25:当Servlet HttpSession发生冲突时 205
Item 26:当Applet走向失败时 211
Item 27:事务性LDAP—不要进行提交 217
Item 28:与过滤器有关的问题 226
Item 29:关于JSP复用和内容发布的一些指导 236
Item 30:使用正则表达式进行表单验证 242
Item 31:Servlet中的实例变量 249
Item 32:使用Servlet创建数据库连接的设计缺陷 258
Item 33:试图在SerVlet中使用两种输出机制 270
Item 34:神秘的文件协议 276
Item 35:从Servlet读取文件 280
Item 36:太多的提交 290
第三部分企业层 303
Item 37:J2EE体系结构的考虑 305
Item 38:消除网络瓶颈陷阱的设计策略 311
Item 39:我将使用本地接口 317
Item 40:图像的困扰 323
Item 41:多重并发结果集的问题 328
Item 42:为EJB生成主键 334
Item 43:有状态的无状态会话Bean 339
Item 44:未准备的PreparedStatement 346
Item 45:探索资源池 351
Item 46:JDO和数据持久化 357
Item 47:WSDL位于何处?在UDDI中使用JAXR的陷阱 370
Item 48:JAX-RPC应用程序客户存在的效率陷阱 388
Item 49:让你的Bean远离我的文件系统 398
Item 50:当事务出错时如何保持有状态会话EJB的一致性状态 402
索引 411