出版时间:2010年8月1日 出版社:清华大学出版社 作者:李兴华,王月清 页数:555
Tag标签:无
前言
前 言“我们在用心做事,做最好的教育,做最好的图书!”——北京魔乐科技教学总监 李兴华“无独有偶,因为执着,所以专业!”——中科软通CEO 王月清本书起源这本书是北京魔乐科技(MLDN软件实训中心)继《名师讲坛——Java开发实战经典》之后的又一扛鼎之作!亲爱的读者朋友,感谢您独具慧眼选择了这本书,我们坚信:本书将向您充分展示出Java开发技术的神奇魅力,且将会带您快速、轻松地进入Java Web的开发领域。这本书浸透了我们的心血。它最初来源于我们的讲义,后应出版社之邀,数易其稿,从开始创作整理到完稿,到最后的视频全部录制完成,一共历时14个月。当然在这14个月中,我还有繁重的教学及项目开发任务,但是无论教学还是开发中间,我们无时无刻不在惦记、验证、揣摩、记录与本书有关的内容。希望用我们的学习、教学和开发经历、经验,启示后来的读者,少走弯路,能够在有限的时间内快速掌握一门技术。记得若干年前,当JSP技术刚刚在中国兴起的时候,我们就迫切寻觅一本能很快掌握这门技术的书,当时是几乎每周都会向图书城跑一趟,用每个月省吃简用的钱去买一些相关的书来学习,当把每一本书带回家的时候,心中的那份喜悦是无法用言语来表达的。但往往是因为晦涩的文字、解释不清的概念、调试不通的程序等一系列问题,让人感到技术似乎十分深奥,并一度怀疑我们是不是真的适合做这个行业。现在才知道,很多问题出在书上——很多书是一些不懂技术的人拼出来的,真有一种上当受骗的感觉!现在,经过多年的摸爬滚打,我们对这些技术已经很熟悉了,但回想当年的经历,还隐隐作痛。于是,就想用“心”写一本书,让每一位后来的读者不再为技术而吓到、而退却。因为,我们觉得技术并不难,但第一步——选书很关键,一本晦涩无比、不知所云而又故作深奥的书,很可能让人从此与该行业无缘,相反,一本好书好比是一个好的启蒙老师,可以轻松、愉快地把人带入一个专业的领域。本书内容结构本书共分为五个部分:Web开发前奏、Web基础开发、Web高级开发、框架开发、附录。本书的核心章节为:第3章~第10章, 第14章、第15章、第17章。本书循序渐进,每一部分的知识都是为后续内容进行服务的,学习步骤参考下图。 学习步骤上图中,对于整个Web学习应该分五步展开,每一步都有须掌握的核心知识,这些步骤和核心知识的对应关系下图所示。 与学习步骤相对应的核心知识 在学习本书之前,建议读者一定要先掌握一些Java基础知识,我们推荐《名师讲坛——Java开发实战经典》一书,因为这本书与本书内容有关联,而且要特别注意• 面向对象:理解类的设计原则,掌握抽象类和接口的使用;• 类集框架:掌握集合框架的主要作用,并且可以灵活使用Collection、Map、Iterator等接口;• Java IO:文件的输入输出操作,在文件上传章节中将会有重要作用;• JDBC:Java Web贯彻始终的技术,没有JDBC基本上Java Web也就将失去全部意义。读者服务前 言“我们在用心做事,做最好的教育,做最好的图书!”——北京魔乐科技教学总监 李兴华“无独有偶,因为执着,所以专业!”——中科软通CEO 王月清本书起源这本书是北京魔乐科技(MLDN软件实训中心)继《名师讲坛——Java开发实战经典》之后的又一扛鼎之作!亲爱的读者朋友,感谢您独具慧眼选择了这本书,我们坚信:本书将向您充分展示出Java开发技术的神奇魅力,且将会带您快速、轻松地进入Java Web的开发领域。这本书浸透了我们的心血。它最初来源于我们的讲义,后应出版社之邀,数易其稿,从开始创作整理到完稿,到最后的视频全部录制完成,一共历时14个月。当然在这14个月中,我还有繁重的教学及项目开发任务,但是无论教学还是开发中间,我们无时无刻不在惦记、验证、揣摩、记录与本书有关的内容。希望用我们的学习、教学和开发经历、经验,启示后来的读者,少走弯路,能够在有限的时间内快速掌握一门技术。记得若干年前,当JSP技术刚刚在中国兴起的时候,我们就迫切寻觅一本能很快掌握这门技术的书,当时是几乎每周都会向图书城跑一趟,用每个月省吃俭用的钱去买一些相关的书来学习,当把每一本书带回家的时候,心中的那份喜悦是无法用言语来表达的。但往往是因为晦涩的文字、解释不清的概念、调试不通的程序等一系列问题,让人感到技术似乎十分深奥,并一度怀疑我们是不是真的适合做这个行业。现在才知道,很多问题出在书上——很多书是一些不懂技术的人拼出来的,真有一种上当受骗的感觉!现在,经过多年的摸爬滚打,我们对这些技术已经很熟悉了,但回想当年的经历,还隐隐作痛。于是,就想用“心”写一本书,让每一位后来的读者不再为技术而吓到、而退却。因为,我们觉得技术并不难,但第一步——选书很关键,一本晦涩无比、不知所云而又故作深奥的书,很可能让人从此与该行业无缘,相反,一本好书好比是一个好的启蒙老师,可以轻松、愉快地把人带入一个专业的领域。 本书内容结构本书共分为5个部分:Web开发前奏、Web基础开发、Web高级开发、框架开发、附录。本书的核心章节为:第3章~第10章, 第14章、第15章、第17章。本书循序渐进,每一部分的知识都是为后续内容进行服务的,学习步骤参考下图。 学习步骤上图中,对于整个Web学习应该分5步展开,每一步都有需掌握的核心知识,这些步骤和核心知识的对应关系下图所示。 与学习步骤相对应的核心知识 在学习本书之前,建议读者一定要先掌握一些Java基础知识,我们推荐《名师讲坛——Java开发实战经典》一书,因为这本书与本书内容有关联,而且要特别注意以下几点。 面向对象:理解类的设计原则,掌握抽象类和接口的使用。 类集框架:掌握集合框架的主要作用,并且可以灵活使用Collection、Map、Iterator等接口。 Java IO:文件的输入输出操作,在文件上传章节中将会有重要作用。 JDBC:Java Web贯彻始终的技术,没有JDBC基本上Java Web也就将失去全部意义。读者服务1.本书随书DVD光盘提供了教学视频和实例中用到的源程序,读者可以先看视频,并调试相关程序,在体验中学习。2.本书提供了http://bbs.mldn.cn论坛,读者可以登录寻求帮助,还可以发邮件给我们mldnqa@163.com。3.高校教师可以登录http://www.jiangker.com/,注册后,我们为您提供完整的教学大纲、学习笔记、视频教学等一系列的资料。高校、应用型、高职院校邀请授课,请致电:010-51283346。本书作者本书主要由李兴华、王月清执笔完成,还有其他人员参与了本书的文字整理、技术调试等工作,在此,谨向他们深表谢意,他们是:康丽华、董鸣楠、孙述龙、刘翳、张笑楠、刘刚、田弘冰、庞猛、刘桢媛、刘圣、李祺、孙浩、范金圣、周艳军、刘宏伟、徐明明、马云涛、李杰、张蕊、郭鸿喜、王四波、李金曼、张旭明、马宁、王续、石瑞、师铂弘、苏莹、张金旭、朱亚娜、李少龙、韩雷、朱红、吴海斌、郑京伟、张军、高林、樊庆冲、刘闵、王孝庆、汤敬宁、罗昆、崔岚、谢欢欢、堪雪莲、王继生、赵建军、张艳萍、吴亨、路继、苑建明和李超。寄语读者——追求梦想,永不放弃!本书是我们长达5年的经验的总结,它记录了教学和开发中的点点滴滴的经验和教训,也历经许多学生的检验,绝非滥竽充数之书!只要认真研读本书内容,就一定能够顺利跨入Java Web的大门。由于书中的内容基本都是原创,难免会有解释不到位的地方,希望读者朋友能提出宝贵意见,我们来共同交流。最后,希望本书成为您的“启蒙老师”,引领您在软件开发的大道上越走越好!
内容概要
本书用通俗易懂的语言和丰富多彩的实例,通过对Ajax、JavaScript、HTML等Web系统开发技术基础知识的讲解,并结合MVC设计模式的理念,详细讲述了使用JSP及Struts框架进行Web系统开发的相关技术。 全书分4部分共17章,内容包括Java Web开发简介,HTML、JavaScript简介,XML简介,Tomcat服务器的安装及配置,JSP基础语法,JSP内置对象,JavaBean,文件上传,Servlet程序开发,表达式语言,Tomcat数据源,JSP标签编程,JSP标准标签库(JSTL),Ajax开发技术,Struts基础开发,Struts常用标签库,Struts高级开发。另外,附录中还介绍了实用工具、MyEclipse开发工具和HTTP状态码及头信息。本书所有知识均以实用性为主,讲解的是开发的核心内容,几乎全部用实例和代码讲解。 本书配备32小时同步教学视频,以及几乎全部实例的源程序,服务网站提供了电子教案等教学配套资料。 本书适合Java Web开发的入门者使用,也可以作为普通高校、应用型高校、部分高职院校等以实用性为主的在校大学生作为参考书。
作者简介
李兴华:著名JAVA培训讲师,JAVA EE高端培训讲师,北京魔乐科技(MLDN软件实训中心)教学总监,中科软通系统架构师,火车票网技术总监,北京伟仕嘉禾科技发展有限公司系统架构师,8年软件开发经验,5年高端培训经验,先后为40多家大中型企业做过培训,在JAVA培训方面享有很高
书籍目录
第1部分 Web开发前奏 第1章 Java Web开发简介 第2章 HTML、JavaScript简介 第3章 XML简介 第4章 Tomcat服务器的安装及配置 第2部分 Web基础开发 第5章 JSP基础语法 第6章 JSP内置对象 第7章 JavaBean 第8章 文件上传 第3部分 Web高级开发 第9章 Servlet程序开发 第10章 表达式语言 第11章 Tomcat数据源 第12章 JSP标签编程 第13章 JSP标准标签库 第14章 Ajax开发技术 第4部分 框架开发 第15章 Struts基础开发 第16章 Struts常用标签库 第17章 Struts高级开发 第5部分 附录 附录A 实用工具 附录B MyEclipse开发工具 附录C HTTP状态码及头信息
章节摘录
第1章 Java Web开发简介通过本章的学习可以达到以下目标: 了解Web的发展过程。 理解Web开发的主要技术及作用范围。 掌握企业开发的整体架构。随着互联网的兴起,Web技术已经应用得越来越广泛,而且已经有越来越多的语言开始支持Web的开发。本章将介绍Web的发展历程和Web常见的开发语言。1.1 Web发展历程在早期,人们为了方便开展科学研究,设计出了Internet用于连接美国的少数几个顶尖研究机构,之后随着进一步的发展,人们开始应用HTTP协议(Hypertext Transfer Protocol,超文本传输协议)进行超文本(hypertext)和超媒体(hypermedia)数据的传输,从而将一个个的网页展示在每个用户的浏览器上。今天的Web已经从最早的静态Web发展到了动态Web阶段,随之而来的像网上银行、网络购物等站点的兴起,更是将Web带进了人们的生活和工作中。最早的Web是以静态Web出现的,用户在浏览器中输入网址将请求通过HTTP协议传送到Web服务器上,服务器会根据用户的请求找到相应的网页文件(*.htm、*.html),接着再通过HTTP协议传回到客户端浏览器上进行显示,如图1-1所示。 图1-1 静态Web处理流程但是这种Web返回的只是电子文本的形式,在服务器生成之后,内容永远是固定的。在最初阶段,一些科学家可以通过这些静态Web的方式进行论文研究,而且很多的企业也并没有发现这座“金矿”,而最初可以实现静态Web的主要手段也就是使用HTML(超文本标记语言)。随后,一些人对于Web就有更高的要求了,希望可以得到一些更加绚丽的效果,而此时SUN公司推出的Applet正好满足了这种需求。SUN公司在1995年正式推出了Applet程序,而Applet(应用小程序,简称小程序)允许开发人员编写可以嵌入在Web页面上的小应用程序,只要用户使用了支持Java的浏览器就可以直接运行此程序,那么此时的Web处理结构如图1-2所示。 图1-2 Web处理结构Applet程序虽然带来了很多好处,但是Applet程序本身也存在着一些限制。例如,不允许进行文件读写,也无法进行数据库的操作,而且Applet属于胖客户端程序,下载速度也是非常缓慢。从图1-2中可以分析出,Applet技术本身只能运行在客户端,所以此时虽然带来了一些动态的效果,但是服务器端依然没有做太大的改变,还是采用了请求及回应机制,客户端需要哪些资源,服务器端就返回哪些资源。当然,除Applet技术外,像JavaScript语言也可以实现客户端动态效果,但不管如何实现,这种在客户端完成的动态效果在代码的开发上也是很复杂的,而现在的JavaScript在开发中也只是完成一些简单的表单验证功能的实现(这一点以后会讲解到)。 在客户端实现动态效果似乎已经成为了一件很麻烦的事情,那么人们只能在服务器端做出改变,而这种改变真正造就了动态Web的发展。下面先来看一下动态Web的执行图,并观察与静态Web的区别,如图1-3所示。 图1-3 动态Web流程图从图1-3中可以发现,此时的客户端已经不再需要JVM的支持了,而只是一个普通的浏览器,但是服务器端却发生了重大的改变。首先,所有请求不再直接提交给Web服务器,而是通过Web服务插件进行接收,此插件的主要目的是用于区分用户所发出的请求是动态请求还是静态请求。如果用户发出的是静态请求,则会将用户请求交给Web服务器,并通过文件系统将用户所需要的资源发回给客户端浏览器,这一点与最初的静态Web处理流程是完全一样的;但如果此时的请求是动态请求,则会将所有请求交给Web容器进行处理,在Web容器中将会采用拼凑代码的形式(主要是拼凑HTML)动态地生成数据并通过Web服务器发回给客户端浏览器。动态Web的最大特点就是具备交互性,所谓交互性就是服务器端会自动根据用户请求的不同而显示不同的结果。它类似于使用搜索引擎那样,只要输入关键字,服务器端就会根据这些指定的关键字,返回检索结果。要想实现一个动态Web,可以采用如下5种方式。 CGI(Common Gateway Interface,公共网关接口):CGI是最早出现的实现动态Web的操作标准,可以采用任何语言实现(如C或VB),但是这种传统的CGI程序本身是采用多进程的机制进行处理的,每当一个新用户连接到服务器上时,服务器都会为其分配一个新的进程,很明显,这种程序的执行效率是很低的。 PHP(Hypertext Preprocessor,超文本预处理):PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C、Java和Perl语言的语法,并结合PHP自身的特性,使Web开发者能够迅速地写出动态页面。而且PHP是完全免费的,用户可以从PHP官方站点自由下载。但是PHP本身也有缺点,就是需要运行在Apache服务器下,只有在使用MySQL数据库时才可以达到性能的最大发挥,所以一般都只适合于个人或小型项目开发。 ASP(Active Server Pages,动态服务页):ASP是一个动态Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务应用程序。ASP采用脚本语言VBScript(JavaScript)作为自己的开发语言。由于ASP技术出现较早,所以一直到今天还在被陆续使用着,但是ASP技术本身有一个最大的问题就是平台的支持,ASP只能运行在IIS(Internet Information Services,互联网信息服务)服务器上,且只能在SQL Server数据库上才可以得到最大发挥。但是这套开发相对于使用Java开发而言,性能是很差的,所以一般用于个人或中小型项目 开发。 ASP.NET:ASP.NET是微软公司继ASP之后推出的新一代动态网站开发技术。ASP.NET基于.NET框架平台,用户可以选择.NET框架下自己喜欢的语言进行开发。ASP.NET技术是ASP技术的更新,也是微软公司目前主推的技术,但是由于微软的产品永远都会受到平台的限制,所以此技术往往用于中型项目的开发。 JSP(Java Server Page,Java服务页):使用Java完成的动态Web开发,代码风格与ASP类似,都属于在HTML代码中嵌入Java代码以实现功能,由于Java语言的跨平台特性,所以JSP不会受到操作系统或开发平台的制约,而且有多种服务器可以支持,如Tomcat、WebLogic、JBoss、Websphere等,所以经常在中大型项目开发中使用。JSP的前身是Servlet(服务器端小程序),但是由于Servlet开发过于复杂,所以SUN公司的开发人员根据ASP技术的特点,将Servlet程序重新包装,而形成新的一门开发技术——JSP。1.2 企业开发架构在现代的企业平台开发中已经大量地使用了B/S开发模式,不管是使用何种动态Web实现手段,其操作形式都是一样的,核心操作的大部分都是围绕着数据库进行的。但是如果直接使用编程语言进行数据库的开发则程序员要处理许多诸如事务、安全等操作,所以现在的开发往往都会通过中间件进行过渡,即程序运行在中间件上,并且通过中间件进行数据库的操作,而具体一些相关的处理,如事务、安全等完全由中间件负责,这样程序员只需要负责具体功能的开发即可,此种模式如图1-4所示。 图1-4 企业开发的核心架构在图1-4中可以发现,企业的平台需要操作系统的支持,所有数据库都是建立在操作系统上的,之后开发平台(Java EE就是一种开发平台)通过中间件进行数据库的操作。1.3 Java EE架构Java EE(Java Enterprise Edition,在2005年之前称为J2EE)是在Java SE基础之上建立起来的一种标准开发架构,主要用于企业级应用程序的开发。在Java EE的开发中是以B/S作为主要的开发模式,在Java EE中提供了多种组件及各种服务,如图1-5所示。 图1-5 Java EE架构从图1-5中可以发现,整个Java EE架构都是基于Java SE基础构建的,主要由容器、组件和服务三大核心部分构成,下面分别进行介绍。1.Java EE容器容器负责一种组件的运行,在Java EE中一共提供了4种容器,即Applet Container、Application Client Container、Web Container和EJB Container。各个容器负责处理各自的程序,且互相没有任何影响,而如果需要运行Web程序,则一定要有Web容器的支持。2.Java EE组件每一种Java EE组件实际上都表示着一种程序的开发,例如,Application程序就是使用主方法(main())运行的一种组件。在Java EE中提供了4种容器,每一种容器中都运行各自的组件,读者可以发现在Web容器中运行的是JSP和Servlet组件。EJB组件本身提供的是一个业务中心,由于EJB属于分布式开发的范畴,所以本书暂不对此做深入讲解。3.Java EE服务Java EE之所以应用广泛,主要是由于Java EE提供了各种服务,通过这些服务可以方便用户进行开发。例如,如果要进行数据库操作,则应使用JDBC服务。在Java EE中的主要服务有如下几种。 HTTP(Hypertext Transfer Protocol):在Java EE中主要采用了HTTP协议作为通信标准,包括Web开发中的主要协议也是HTTP协议。 RMI-IIOP(Remote Method Invocation over the Internet Inter-ORB Protocol):远程方法调用,融合了Java RMI和CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)两项技术的优点而形成的新的通信协议,在使用Application或Web端访问EJB端组件时使用。 Java IDL(Java Interface Definition Language):Java接口定义语言,主要用于访问外部的CORBA服务。 JTA(Java Transaction API):用于进行事务处理操作的API,但在Java EE中所有的事务应该交由容器处理。 JDBC(Java Database Connectivity):为数据库操作提供的一组API。 JMS(Java Message Service):用于发送点对点消息的服务,需要额外的消息服务中间件支持。 JavaMail:用于发送邮件,需要额外的邮件服务器支持。 JAF(JavaBeans Activation Framework):用于封装传递的邮件数据。 JNDI(Java Naming and Directory Interface):在Java EE中提供的核心思想就是 “key→value”,为了体现这种思路,可以通过JNDI进行名称的绑定,并且依靠绑定的名字取得具体的对象。 JAXP(Java API for XML Parsing):专门用于XML解析操作的API,可以使用DOM或SAX解析,在最新的Java EE中提供了一种新的解析组件——STAX。 JCA(J2EE Connector Architecture):Java连接器架构,通过此服务可以连接不同开发架构的应用程序。 JAAS(Java Authentication and Authorization Service):用于认证用户操作,可以让当前运行的代码更加可靠。 JSF(Java Server Faces):Java EE官方提供的一套MVC实现组件。 JSTL(JSP Standard Tag Library):JSP页面的标签支持库。 Web服务组件:主要用于异构的分布式程序开发,主要服务有SAAJ(SOAP with Attachments API for Java)、JAXR(Java API for XML Registries)等。但是在整个企业的应用环境中,Java EE架构只是工作在中间层的一种组件,如图1-6所示。 图1-6 Java EE在企业环境中的位置在整个企业开发中主要分为如下3个层次。 客户层:分为内部用户及外部用户,客户端可以使用Web浏览器,也可以是Java编写的应用程序。 中间层:为客户访问提供服务,使用Java EE中的各种组件技术进行搭建,且各个容器之间允许互相调用。 企业信息系统层(Enterprise Information Systems,EIS):例如,保存数据的数据库就是工作在此层。客户端一般不会直接去操作企业信息系统层,而是会通过中间层提供的服务进行访问,开发人员所需要完成的就是为所有的客户端提供更方便的操作。1.4 Java EE核心设计模式在整个Java EE中最核心的设计模式就是MVC(Mode-View-Controller)设计模式,且被广泛应用。Java EE中的标准MVC设计模式如图1-7所示。 图1-7 Java EE中的标准MVC设计模式在标准的MVC设计模式中,用户一旦发出请求之后会将所有请求交给控制层处理,然后由控制层调用模型层中的模型组件,并通过这些组件进行持久层的访问,再将所有结果都保存在JavaBean(Java类)中,最终由JSP和JavaBean一起完成页面的显示。但是此种设计模式,在不同的开发架构中也会存在一些区别,因为在开发中如果没有特殊的需要不一定会使用EJB技术,这一点在本书中会有具体的讲解。1.5 Struts开发框架使用标准MVC设计模式进行开发,则肯定要求进行过多的复杂设计,这对于一般项目而言是非常麻烦的,所以Apache专门提供了一套用于进行MVC开发的框架——Struts。Struts的软件包依然用于Web层次的开发,使用Struts可以更方便地对代码开发进行严格的管理。图1-8列出了Struts框架的基本组成。 图1-8 Struts框架的基本组成从图1-8中可以发现,Struts框架的主要作用还是在Web层上,也就是说Struts是对JSP和Servlet的一种变相应用,其核心的内部原理依然是MVC,而且由于Struts出现较早,使用较为广泛,所以现在俨然已经成为了Java EE的一套标准框架,是每一个从事Java EE开发人员必须具备的一项基本技能。1.6 本 章 摘 要1.Web运行环境经历了静态Web和动态Web两个时期,静态Web与动态Web最本质的区别就在于资源(数据库)的访问上。2.动态Web的常见实现手段有CGI、ASP、PHP、JSP/Servlet等。3.Java EE架构主要由组件、容器、服务组成,在整个Java EE中MVC是其核心设计思路。4.Struts开发主要是为了解决Web层的开发问题,可以节约设计的成本。
编辑推荐
《名师讲坛:Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)》精彩视频:32小时全真教学培训视频,市场价值1000元;案例教学:30个案例分析;丰富实例:300个小实例、源程序;教学支持:详尽电子教案。
图书封面
图书标签Tags
无
评论、评分、阅读与下载