本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP 2.0,重点介绍Java在展示层的两项重要技术:Java Servlet与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,将有助于您未来对于JavaServer Faces(JSF)技术以及Java Web Services技术的学习。
\r\n 本书分为三大部分,前三章为基本概念部分,帮助读者奠定相关的概念基础;第四章至第十一章为JSP 2.0的基础内容,这两部分内容会让入门的读者对JSP 2.0技术有比较全面和系统的认认。第十二章至第十八章为提高部分,介绍了SQL、JSP与JDBC的概念与JavaMail的使用;Web应用程序设计师应有的设计理念和实现方式等内容,这是为有一定理论和实践经验的读者准备的,可以适应他们提高水平的需要。
第一章 安装执行环境\r\n 1-1 安装 J2SDK 1.4.2\r\n 1-2 安装 Tomcat 5.0.16\r\n 1-3 安装 JSPBook 站台范例\r\n 1-4 安装 Ant 1.6\r\n第二章 Servlet 2.4 简介\r\n 2-1 Servlet 简介\r\n 2-2 First Servlet Sample Code\r\n 2-3 Servlet 的生命周期\r\n 2-4 Servlet 范例程序\r\n 2-5 Servlet 2.4 的新功能\r\n第三章 JSP 2.0 简介\r\n 3-1 JavaServer Pages 技术\r\n 3-2 What is JSP\r\n 3-3 JSP 与 Servlet 的比较\r\n 3-4 JSP 的执行过程\r\n 3-5 JSP 与 ASP 和 ASP+ 的比较\r\n 3-6 JSP 2.0 新功能\r\n第四章 JSP 语法\r\n 4-1 Elements 和 Template Data\r\n 4-2 批注(Comments)\r\n 4-3 Quoting 和 Escape 规则\r\n 4-4 Directives Elements\r\n 4-5 Scripting Elements\r\n 4-6 Action Elements\r\n 4-7 错误处理 \r\n第五章 隐含对象(Implicit Object)\r\n 5-1 属性( Attribute ) 与范围( Scope )\r\n 5-2 与 Servlet 有关的隐含对象\r\n 5-3 与 Input / Output 有关的隐含对象\r\n 5-4 与 Context 有关的隐含对象\r\n 5-5 与 Error 有关的隐含对象 \r\n第六章 Expression Language\r\n 6-1 EL 简介\r\n 6-2 EL 语法\r\n 6-3 EL 隐含对象\r\n 6-4 EL 算术运算符\r\n 6-5 EL 关系运算符\r\n 6-6 EL 逻辑运算符\r\n 6-7 EL 其他运算符\r\n 6-8 EL Functions \r\n第七章 JSTL 1.1\r\n 7-1 JSTL 1.1 简介\r\n 7-2 核心标签库(Core tag library)\r\n 7-3 I18N 格式标签库(I18N-capable formatting tags library)\r\n 7-4 SQL 标签库(SQL tag library)\r\n 7-5 XML 标签库(XML tag library)\r\n 7-6 函数标签库(Functions tag library) \r\n第八章 JSP 与 JavaBean\r\n 8-1 JavaBean 的简介\r\n 8-2 JSP 与 JavaBean\r\n 8-3 JavaBean 的范围\r\n 8-4 JavaBean 的移除 \r\n第九章 网页窗体的处理\r\n 9-1 HTML 窗体如何传送数据\r\n 9-2 窗体中常见的输入类型\r\n 9-3 JSP 处理窗体\r\n 9-4 文件上传—— Oreilly 上传组件\r\n 9-5 jspSmartUpload ——上传和下载\r\n 9-6 本文区输入类型(Textarea) \r\n第十章 Session Tracking\r\n 10-1 Stateful & Stateless\r\n 10-2 Session Tracking 的四种方法\r\n 10-3 Session 的生命周期\r\n 10-4 HttpSessionBindingListener 接口\r\n 10-5 Shopping Cart 范例程序一\r\n 10-6 Shopping Cart 范例程序二 \r\n第十一章 Filter 与 Listener\r\n 11-1 Filter 简介\r\n 11-2 Filter 的运作方式\r\n 11-3 实现阶段第一个 Filter\r\n 11-4 对请求做统一的认证处理\r\n 11-5 ServletRequest 和 ServletResponse 之 Wrapper 类\r\n 11-6 使用 Filter 来解决中文问题\r\n 11-7 Listener 接口简介\r\n 11-8 ServletContext Listener\r\n 11-9 HttpSession Listener\r\n 11-10 ServletRequest Listener \r\n第十二章 JSP 执行环境与开发工具\r\n 12-1 Tomcat 5.0 的介绍\r\n 12-2 JSP 开发工具介绍\r\n 12-3 Eclipse 简介与安装\r\n 12-4 使用 Eclipse 开发 Hello World\r\n 12-5 使用 Eclipse 开发 Web Application\r\n 12-6 使用 Eclipse 来开发 Web Application(2) \r\n第十三章 SQL 介绍\r\n 13-1 数据库基本概念\r\n 13-2 SQL 简介\r\n 13-3 DDL 语句\r\n 13-4 数据的查询 —— SELECT\r\n 13-5 新增数据—— INSERT\r\n 13-6 修改数据—— UPDATE\r\n 13-7 删除数据—— DELETE \r\n第十四章 JSP 与 JDBC\r\n 14-1 JDBC 简介\r\n 14-2 MySQL 的安装与使用\r\n 14-3 JDBC 连接 MySQL\r\n 14-4 JDBC 连接 MySQL 的中文问题\r\n 14-5 PreparedStatement\r\n 14-6 CallableStatement\r\n 14-7 JDBC 2.0 介绍与使用\r\n 14-8 JNDI - 数据来源(Data Source) 与连接池(Connection Pool)\r\n 14-9 JSTL 的 SQL 标签库\r\n 14-10 Connection Pool - Proxool \r\n第十五章 JSP Tag Library\r\n 15-1 JSP Tag Library 简介\r\n 15-2 一个简单的 Tag Library 范例\r\n 15-3 Tag Handler Class\r\n 15-4 Tag Library 范例程序 \r\n第十六章 Simple Tag 与 Tag File\r\n 16-1 Simple Tag\r\n 16-3 Tag File\r\n 16-4 Tag Library Descriptor(TLD) \r\n第十七章 JSP 与 JavaMail\r\n 17-1 JavaMail 1.3.1 的介绍与使用方法\r\n 17-2 JavaMail 范例程序一——传送一般邮件\r\n 17-3 JavaMail 范例程序二——传送 HTML 格式的邮件\r\n 17-4 JavaMail 范例程序三——传送附件\r\n 17-5 JavaMail 范例程序四——传送自定义内容的邮件\r\n第十八章 Web 架构—— MVC\r\n 18-1 MVC(Model - View - Controller) 的介绍\r\n 18-2 Model 1 与 Model 2 的介绍\r\n 18-3 Model 1 和 Model 2 的范例程序 \r\n附录A 安装 Linux 执行环境\r\n A-1 安装 J2SDK 1.4.2\r\n A-2 安装 Tomcat 5.0.16\r\n A-3 安装 JSPBook 站台范例\r\n A-4 安装 Ant 1.6\r\n A-5 安装 Apache 2.0.48 + Tomcat 5.0.16 \r\n附录B web.xml 元素介绍\r\n附录C 使用 JDBC-ODBC 桥接器连接 Access\r\n附录D JSP 资源\r\n附录E HTTP 状态码\r\n附录F ASCII 码\r\n附录G Apache License 1.1
记得三年前 …… 亲自带着刚上市的《JSP技术手册》送给我最敬重的教授,从他的表情中,可以看出他十分地高兴、满意,在一段不算短的谈话中,他一直不断地重复提到:写书是一件具有影响力的事情,一本好书可以影响很多人,而不好的书更可能误了许多人。感谢昔日恩师的这段话在我的心中埋下种子。今日,我正怀着戒慎恐惧的心情,完成此书。感谢: 本书能够顺利完成,必要感谢许许多多的人。首先感谢王森(moliwang)先生的协助,假若此书遭到众人的讨伐,王森先生亦将受池鱼之殃。感谢松凌科技李日贵(jini)先生在我撰写本书时,提供题材选取的建议和技术问题的解答。感谢吴卢基(Worookie)先生校阅本书的内容,修改许多大大小小的错误,让本书的品质能够更上一层楼。 感谢小傅子(Dennyfu)协助本书的封面设计,和他合作封面设计,乃写书最大之乐趣。感谢许芳凰(Mina)小姐协助本书的图片设计,让书中的图片不再是丑陋的线条。
感谢博文视点(Broadview)资讯有限公司的编辑周筠女士及方舟先生,有了他们的协助,才使得本书的简体版能顺利出版。 感谢我的最爱王斐珊,有你的扶持,使我能够顺利度过这段寂寞又难熬的日子。感谢你在除夕夜至大年初三,协助我润稿。希望此书能够大卖,让我能早日累积起我俩的结婚基金。 最后要感谢我的家人持续不断地支持我,让此书能在最短的时间内完成。 一本书所能介绍的内容有限,为了弥补此项缺憾,特架设Java技术论坛 :http://www.javaworld.com.tw,希望书中缺少的内容,读者都能在论坛中寻找到解答。
序 二回想在大学时江虹庆先生和林上杰先生带我认识Java,至今已三年多了。尤其在当时Servlet/JSP相关的资源还非常的少,对从完全不懂Java且一入门就从Servlet开始的我而言,他们的耐心和认真的指导帮我开启了Java的一扇窗。这次能把从许多前辈那里学习来的东西(不管是周遭或者是网络上的朋友),写成书回馈给更多读者,令我感到非常高兴。跟当时的环境比起来,现在想进入这个领域的人真的很幸福。在Google打上关键字就有看不完的信息,在JSPtw.com (www.javaworld.com.tw 的前身)Java技术论坛中,更可以搜寻到许多相关的精华文章,书架上又有好几本不同作者的书可供读者选择,尤其是你现在手中的这本书J这本书结合了林上杰先生与我的心血,由浅入深,作为入门书,本书无疑是最佳选择;对于进阶者来说,本书更提供了JSP 2.0新增功能的使用说明。希望大家看完这本书后,能对Java在Server-side上的应用产生兴趣,进而接触得更多、更深、更广。再次感谢林上杰先生让我有机会参与本书的撰写,能与他共事是我的一大荣幸,更感谢JSPtw版友的知识分享与讨论,以及容忍我花时间在书上的家人和我的女友新玫,也谢谢花时间正在看此序的您。林康司2004年3月
导 读本书内容分成三大部分。前三章主要内容为:从安装设定执行环境、范例程序到简介Servlet 2.4跟JSP 2.0。阅读完这三章之后,可以让读者奠定相关的概念基础,并且清楚了解Servlet 2.4和JSP 2.0上的进展。第四章到第十一章为学习JSP 2.0的基础章节,从JSP 2.0基本语法、隐含对象、Expression Language和JSTL 1.1,一直到Session Tracking和Filter与Listener的介绍。这几个章节皆以笔者认为合适的顺序循序介绍,希望能够让读者在阅读本书后面部分的时候不会感到突兀。介绍完基本概念和基础课程后,笔者在这里安插一个章节来介绍JSP执行环境与开发工具。读者可以在此章学习到最新Tomcat 5.0的基本使用,当然笔者没有漏掉目前在Java IDE界掀起一片旋风的Eclipse。通过本章的介绍,各位读者会了解到如何使用Eclipse来开发Web Application。完成前两大部分的学习后,接下来就是第十三章到第十八章的提高部分。第十三章为第十四章的前置章节,因为在学习JSP与JDBC之前必须对SQL有相当的认识。第十四章的JSP与JDBC,不只介绍基本的JDBC使用,也进而介绍好用的Connection Pool API的Proxool。
第十五章和第十六章分别介绍JSP 2.0自定义标签的做法。第十五章简单介绍以往开发标签的方式。第十六章介绍在JSP 2.0新增开发标签的方式:Simple Tag与Tag File,通过几个简单的范例演练,轻松学会使用Simple Tag与Tag File。第十七章介绍其他的相关应用:JavaMail。第十七章除了介绍如何使用JavaMail来传送信件之外,还说明了如何传送附件和HTML格式的信件。第十八章则是探讨Web应用程序设计师应有的设计理念和实现方式,使读者掌握开发高弹性、易维护的Web应用程序所应有的观念。最后本书的附录A :安装Linux执行环境。常常会有人提到Java时就会想到Linux,虽然这两者基本上没有任何关系,但是在建构稳定的Web Application时,Linux确实是一个不可错过的平台。因此,笔者把原本在win平台上的安装设定,重新编辑成Linux平台版本,供读者参考。另外,您不能错过附录B,在本附录所列出的Servlet 2.4 / JSP 2.0的web.xml中有一些设定好的项目,那是一份有用的参考内容。相信通过循序渐进的学习,读者定能驾轻就熟,游刃有余。