Java Web核心编程技术(JSP、Servlet编程)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-24 01:02:40

点击下载

作者:刘勇军,韩最蛟

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Java Web核心编程技术(JSP、Servlet编程)

Java Web核心编程技术(JSP、Servlet编程)试读:

前言

Java Web是用Java技术来解决相关Web互联网领域的技术总和,它是JavaEE技术中的一个重要的组成部分,也是目前最流行、使用最广泛的网站开发技术。本书以一个完整的Java Web项目——网上购书系统为项目驱动,对项目开发中所使用的Java Web技术进行循序渐进地讲解,使读者能尽快掌握开发Web应用程序的方法。

本书共有13章,从第4章到第12章的每一章节都包含两个综合项目,其中,一个是本章知识点的综合案例,另一个是本章知识点在实际项目开发中的具体应用。通过两个综合案例让读者能迅速理解并掌握如何使用Java Web的核心技术。

第1章介绍了基于JavaEE的Web应用的简介、架构以及开发方法。

第2章介绍了网上购书系统的需求、概要设计、详细设计、数据库设计以及系统的测试与发布,其他章节的项目案例就是以本章为基础进行相关技术的讲解。

第3章介绍了Java Web开发的环境搭建,包括JDK、Tomcat以及MyEclipse工具的安装与环境配置。

第4章介绍了JSP语法基础,内容包括JSP指令元素、JSP动作元素、JSP脚本元素、JSP的生命周期以及该知识点的项目案例。

第5章讲解了JSP的内置对象的使用,内容包括request、response、session、out、application等对象的使用以及该知识点的项目案例。

第6章讲解了JSP自定义标签的使用,内容包括JSP扩展标签的定义、标签库的构成、定义标签的使用以及该知识点的项目案例。

第7章讲解了EL表达式与JSTL的使用以及该知识点的项目案例。

第8章讲解了Servlet的使用,内容包括Servlet介绍,Servlet的处理流程,Servlet的核心类和接口,Servlet的编写、配置与调用以及该知识点的项目案例。

第9章讲解了Servlet中的会话处理与过滤技术,内容包括会话跟踪技术、HttpSession的使用、过滤器的使用以及该知识点的项目案例。

第10章讲解了JavaBean的基本概念、JavaBean的创建与使用以及该知识点的项目案例。

第11章讲解了JSP、Servlet连接数据库,内容包括MySQL数据库的安装、配置与简单应用,JDBC的概念、JDBC访问数据库以及该知识点的项目案例。

第12章讲解了MVC模式的概念、优缺点,MVC模型和MVC模式的应用。

第 13 章介绍了学期项目的需求、设计与实现以及测试发布等相关内容的要求与说明,读者可以按照此要求采用Java Web技术实现项目开发,从而对Java Web开发技术有一个比较深入的了解。

本书由四川托普信息技术职业学院的刘勇军、四川管理职业技术学院的韩最蛟担任主编,四川托普信息技术职业学院的罗国涛、四川管理职业技术学院的向劲松和辽宁林业职业技术学院的吴进担任副主编。罗国涛、吴进参与编写了第2章、第3章、第6章的内容,陈锡伟参与编写了第7章的内容,柳国光编写了第5章的内容,魏娟、向劲松和武凤霞编写了第1章、第11章和第12章的内容,袁国贤编写了第4章和第8章的内容,陈虹君编写了第9章和第10章的内容,辽宁林业职业技术学院的白云编写了第13章的内容,在编写本书的过程中,得到了各方的大力支持,在此一并表示感谢。

为了方便教师教学,本书配有电子教学课件,请有此需要的教师登录华信教育资源网(www.hxedu.com.cn)免费注册后进行下载,有问题时请在网站留言板留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn),也可直接与作者联系(E-mail:slllyj@163.com)。

由于编者水平有限和时间仓促,书中难免存在疏漏之处,欢迎广大读者批评指正。

编者第1章 基于JavaEE的Web应用

课程目标了解Web的基本应用及其框架理解Web程序设计模式与运行原理了解JavaEE的相关技术组件了解JavaEE中的Web的相关技术了解JavaEE体系结构了解JavaEE 组件了解JavaEE容器及其服务

了解JavaEE企业级Web应用开发过程

在计算机发展历史上,网络的出现是一个重要的里程碑,近十几年来,网络取得了令人难以置信的飞速发展。“网络就是计算机”不再仅仅是一句口号,现在已经实现。人们在世界各地都可以共享信息,进行电子商务交易,利用网络进行在线办公,在线业务办理,等等,这也促进了Web应用的发展。1.1 Web应用简介

随着Internet的迅速发展和普及,20世纪末,互联网得到了广泛的应用,从而使人们的生活产生了巨变,促使了 Web 应用程序的出现,并在社会的各个方面发挥着重要作用。所谓的Web应用程序也就是一般所说的网站,由服务器、客户端以及网络组成。

在互联网发展的最初阶段,Web应用仅仅是一个静态的网站,其所有的网页内容都是静态的HTML页面,静态Web网站的内容修改只能通过修改静态的HTML网页来实现。在这种情况下,Web网站所能实现的任务仅仅是静态的信息展示,而不能与客户产生互动。总结起来,最初传统的静态Web应用存在如下几个方面的不足:

● 不能提供及时信息,页面上提供的都是静态不变的信息。

● 当需要添加或更新信息时,必须重新编写HTML文件。

● 由于HTML页面是静态的,所以不能根据用户的需求提供不同的信息,不能满足多样性的需求。

静态HTML页面的Web应用程序存在这么多的缺点,决定了它必然不能适应中大型系统和商业需求。为了满足这种特殊的需要,就有了后来一系列的动态页面技术的出现。所谓的动态页面是指可以和用户产生交互,能根据用户的输入信息产生对应的响应,能满足这种需求的技术就可以称之为动态网页技术。动态网页技术的发展促使了Web应用程序从静态向动态的转变,不同的动态网页技术又促使了不同实现技术Web应用程序的发展。动态网页技术出现了CGI、ASP、PHP、Java Servlet、JSP等,那么下面就分别来给大家介绍不同Web应用程序的发展。

1.CGI

在互联网发展的早期,动态网页技术主要使用CGI(通用网关接口),CGI程序是一种特殊的应用程序,运行在服务器上,它被用来解释处理表单中的输入信息,并在服务器中产生对应的操作处理,或者是把处理结果返回给客户端的浏览器。能够根据不同客户端请求输出相应的HTML页面,然后由Web服务器再把这个静态页面返回给浏览器作为客户端的响应,从而可以给静态的HTML网页添加上动态的功能。具体的CGI实现动态功能的操作流程如图1-1所示。图1-1 CGI动态页面实现的操作流程

注意:CGI 程序是在服务器端运行的,它可以和 Web 服务器在同一个主机上,最流行的CGI语言就是Perl和Shell脚本,但是也可以使用C、C++以及Java等语言进行编写。CGI可以访问存储在数据库中的数据或者其他系统中的文件,实现动态生成的效果。

虽然CGI技术可以实现网站动态性,但是CGI也存在很多的问题和不足。

● 需要为每个请求启动一个操作 CGI 程序的系统进程。如果请求非常频繁,这将带来很大的系统开销。

● 需要为每个请求加载和允许一个CGI程序,这也会带来很大的系统开销。

● 需要重复编写处理网络协议的代码以及进行编码,这些工作都非常耗时。

●CGI程序的编写比较困难,效率低下,而且修改维护很复杂。

正是因为CGI存在这样一些问题和不足,使得CGI应用程序在交互性和安全性上都无法与当时的桌面应用软件相比,CGI技术的Web应用也逐渐被其他新的动态网页技术所替代。

2.ASP

ASP是微软公司推出的一种动态网页语言,ASP是Active Server Page的缩写,即活动的服务端页面。ASP在服务器端运行,它可以创建和运行动态网页,可以包含HTML标记、普通文本、脚本命令以及对一些特定微软应用程序的调用,比如COM组件,也可以包含一些交互式的内容,比如在线表单等。

ASP实现动态生成页面的流程是首先将用户的HTTP请求传入到ASP的解释器中,接着这个解释器对这些 ASP 脚本进行分析和执行,然后从服务器中返回处理的结果,从而实现了与用户交互的功能,ASP的语法比较简单,对编程基础没有很高的要求,所以很容易上手,而且微软提供的开发环境的功能十分强大,这更是降低了ASP程序开发的难度。

但是 ASP 也有其自身的缺点,它在本质上还是一种脚本语言,除了使用大量的组件外,没有其他办法提高效率,而且ASP只能运行在Windows环境中,这样Windows自身的一些限制就制约了ASP的发挥,这些都是使用ASP无法回避的弊端,所以ASP渐渐地退出了Web应用。

3.PHP

PHP(Hypertext Preprocessor)全称为超文本预处理语言,完全是基于开源代码的脚本式语言,与ASP采用相同的脚本技术,与ASP类似都是可以嵌套到HTML中的语言。但不同之处在于,PHP的语法比较独特,在PHP中混合了C、Java、Perl等多种语言的语法中的优秀部分,而且PHP网页的执行速度要比CGI和ASP等语言快很多。

PHP功能非常强大,几乎支持所有数据库,包括SQL Server 2000、MySQL、Oracle、Sybase等,这种内置的方法使PHP中的数据库操作变得异常简单,而且PHP程序可以在IIS和Apache中运行,提供对多种操作系统平台的支持,并且得到了广大开源社区的支持,这是PHP比ASP更加流行的主要原因。

PHP也存在一些劣势,PHP的开发运行环境的配置比较复杂,而且PHP是开源的产品,缺乏正规的商业支持。这些因素在一定程度上限制了PHP的进一步发展。

4.Java Servlet

为了解决CGI所留下来的问题,Java推出了Servlet规范,Sun公司在20世纪90年代末就发布了基于Servlet的Web服务器。为了确保加载的各个类之间不起冲突,已经建立一个称为Java Servlet API(应用编程接口)的编码标准,现在基本所有的服务器都遵循这个编码标准,所以 Servlet 的执行效率较高,而且有很好的移植性。同时对于开发者来说,Sun 公司还针对Servlet标准提供了对整个Java应用编程接口(API)的完全访问,而且提供了一个完备的库可以处理HTTP。和传统的CGI程序相比,Servlet有如下几个方面的优势。

● 只需要启动一个操作系统进程以及加载一个JVM,大大降低了系统的开销。

● 当多个请求需要作同样处理的时候,只需要加载一个类,这也大大降低了开销。

● 所有动态加载的类都可以实现对网络协议以及请求解码的代码共享,大大降低了工作量。

●Servlet能够直接和Web服务器交互,而普通的CGI程序不能。

●Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

虽然Servlet改变了传统CGI程序的缺点,但Servlet也不是十全十美的,它也有不足的地方:一方面,使用Servlet设计界面可能很困难,因为Servlet生成网页的方法是在Java类中嵌入HTML标签和表达式,也就说对HTML做一点小小的改动时,都需要修改和重新编译Servlet源文件,然后再重新部署到Servlet容器中,这使得修改Servlet变得非常的烦琐和复杂,不利于修改维护。另一方面,Servlet不仅容易出错,很难生成可视化显示,而且无法让开发者尽展其才。于是,JSP(Java Server Pages)出现了。

5.JSP

在某种程度上,可以说 JSP 是对 Microsoft 的 Active Server Pages(ASP)作出回应。Microsoft从Sun在Servlet规约上所犯的错误汲取了教训,并创建了ASP来简化动态页面的开发。Microsoft增加了非常好的工具支持,并与其Web服务器紧密集成。JSP和ASP的设计目的都是将业务处理与页面外观相分离,从这个意义上讲,二者是相似的。虽然存在一些技术上的差别,但它们有一个最大的共同点,即 Web 设计人员能够专心设计页面外观,而软件开发人员可以专心开发业务逻辑。

JSP是Sun公司于20世纪90年代末提出的基于Java语言的Server端脚本技术,是一种基于服务器端的脚本语言。自从1999年推出以来,逐步发展为开发Web应用的一项重要技术。JSP可以嵌套在HTML中,而且支持多个操作系统平台,一个JSP开发的Web应用系统,不用做什么改动就可以在不同的操作系统中运行。

JSP是一种实现普通静态HTML和动态HTML混合编码的技术,是Servlet API的一个扩展,本质上它就是把Java代码嵌套到HTML中,然后经过JSP容器的编译执行,根据这些动态代码的运行结果生成对应的HTML代码,从而在客户端的浏览器中正常显示。

由于JSP页面在编译成Servlet之前也是可以使用的,所以它具有了Servlet的所有优点,包括访问Java API。又因为JSP是嵌入Servlet中关于应用程序的一般表达代码,所以可以把它看成一种“彻底”的Servlet。通过JSP动态页面技术来访问一个页面时的操作流程如图1-2所示。图1-2 JSP页面访问操作流程图

由于JSP中使用的是Java的语法,所以Java语言的所有优势都可以在JSP中体现出来,尤其是J2EE中的强大功能,更是成为JSP语言发展的强大后盾。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具很好地共同工作。JSP 网页可以非常容易地与静态模板结合,包括HTML或XML片段,以及生成动态内容的代码。

6.Flash

像许多解决方案一样,Flash需要客户端软件。尽管许多流行的操作系统和浏览器上都内置有所需的 Shockwave 播放器插件,但并非普遍都有。虽然能免费下载,但由于担心感染病毒,使得许多用户都拒绝安装这个软件。Flash应用需要大量网络带宽才能正常地工作,另外,由于没有广泛的宽带连接,Flash的推广受到局限。虽然确有一些网站选择建立多个版本的Web应用,分别适应于不同的连接速度,但是许多公司都无法承受支持两个或更多网站所增加的开发开销。

总之,创建Flash应用需要专用的软件和浏览器插件。Applet可以用文本编辑器编写,而且有一个免费的Java开发包,Flash则不同,使用完整的Flash工具包需要按用户数付费,每个用户需要数百美元。尽管这些因素不是难以逾越的障碍,但它们确实减慢了Flash在动态Web应用道路上的前进脚步。

7.DHTML

DHTML不是一个W3C标准,它更像是一种营销手段。实际上,DHTML结合了HTML、层叠样式表(Cascading Style Sheets,CSS)、JavaScript和DOM。这些技术的结合使得开发人员可以动态地修改Web页面的内容和结构。

Flash、DHTML提供的动态特性提高了Web应用的交互性,但仍然无法从根本上改进Web交互的问题,这主要是因为HTTP协议的特殊性,每一次请求都需要和服务器交互一次,在得到响应后刷新网页,这就使得很多操作都反复刷新网页,从而使 Web 的可操作性下降。于是Web应用开发又提出了改进这一弊端的方案,那就是Ajax(Asynchronous JavaScript和XML)。

8.Ajax

Ajax并不是什么新鲜玩意儿。实际上,与这个词相关的“最新”术语就是XMLHttpRequest对象(XHR),它是利用特殊的DOM对象XMLHttpRequest代替HTML中FORM的提交和响应机制。XMLHttpRequest对象实际上是一种利用XML作为HTTP协议传输媒介的封装对象,其最大的特点就是支持与服务器异步通信传输,这样就能创建更加动态的Web应用。

传统的Web应用遵循一种请求/响应模式。如果没有Ajax,对于每个请求都会重新加载整个页面(或者利用IFRAME,则是部分页面)。

使用 XHR,可以对服务器做一个调用,触发某一组验证规则。这些规则可能比你用JavaScript 编写的任何规则都更丰富、更复杂,而且你还能得到功能强大的调试工具和集成开发环境(IDE)。作为Ajax的核心,XHR对象设计为允许从服务器异步获取任意数据。

Ajax 在大多数现代浏览器中都能使用,而且不需要任何专门的软件或硬件。它是一种客户端方法,可以与J2EE、.NET、PHP、Ruby和CGI脚本交互,它并不关心服务器是什么。尽管存在一些很小的安全限制,但还是可以现在就开始使用Ajax,而且能充分利用客户原有的知识。

其实除了以上我们提到的Web应用技术之外,还有很多其他的Web应用技术,比如基于Flash的Flex框架,微软的WPF、Sliver Light,Adobe公司的Applet等都是新兴或者时下被广泛采用的Web应用技术。

随着 Web 应用技术的发展,它将更加趋于标准化、通用化。未来将用 XML 代替 HTML作为桌面表现层与Web表现层的统一描述性语言。如今,我们至少有4种XML衍生语言可以用来创建Web应用(W3C的XHTML不包括在内):Mozilla的XUL;XAMJ,这是结合Java的一种开源语言;Macromedia的MXML;Microsoft的XAML等。1.2 Web应用架构

随着越来越多的企业开始用计算机来管理公司的核心业务,越来越多的数据和业务信息都需要有专门的管理软件来集中管理,越来越多的终端客户要求参与业务管理,要求越来越高的用户操作舒适性也需要更加丰富的图形界面来展现,促使了 Web 应用架构从单机模型发展成了客户端/服务器模型。

1.胖客户端程序RCP

因为桌面程序需要安装到计算机上,利用本地计算机硬件资源和操作系统提供运算功能才能运行,并会导致计算机软件的体积越来越大,因此人们形象地称桌面应用程序为胖客户端程序(fat Client),如图1-3所示。图1-3 胖客户端/服务器模型

在客户端/服务器模型中,客户端可以由多台PC构成,每个客户端都会运行一个客户端应用程序完成业务操作。服务器通常由一台或多台高性能PC构成,主要是使用数据库为业务信息提供存储和查询的集中管理功能。

计算机上安装的任何程序都是RCP,例如办公软件Word、Excel,聊天工具QQ、MSN,播放软件Media Player、Flash Player,图形处理软件Photoshop,等等。RCP的优点很明显,只要安装了软件,就能充分地利用客户端的硬件资源来高效地使用软件的功能,而减轻服务器的负荷,同时又可以利用客户端的桌面资源提供丰富的用户体验;而 RCP 的缺点也是显而易见的,一方面就是需要安装应用程序才能使用,另一方面会占用大量的硬盘资源,再一方面就是每次桌面应用程序更新升级时都必须将更新程序在每台客户端做一次安装部署,从而导致需要付出极大的维护代价,很难满足随需应变的企业级应用软件的要求。

2.瘦客户端程序TCP

与胖客户端程序相对的就是瘦客户端程序。瘦客户端程序(Thin Client Program,TCP)一般表现为Web程序,它指的是在客户端/服务器模型中的一个基本无须应用程序的计算机终端。它的特点是不需要在客户端安装程序就能使用,只要计算机能上网就行。

瘦客户端程序将软件功能的重点集中放到了服务器上,服务器端只需要提供服务,目前流行的概念“软件即服务”(Software-as-a-service,SAAS),就是一种非常流行的瘦客户端应用。它是通过Internet提供软件的模式,用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无须对软件进行维护和升级。

瘦客户端程序的客户端/服务器模型又称为瘦客户端/服务器模型(Thin Client/Server),它主要是采用浏览器来通过HTTP协议传输的HTML文本来展现,所以每次应用程序部署或者更新,只需要更新服务器端程序。其结构模型如图1-4所示。图1-4 瘦客户端/服务器模型

目前,越来越多的Web 2.0概念的应用也都是瘦客户端的应用,随着技术的不断发展和进步,瘦客户端的体验越来越丰富。

3.C/S结构和B/S结构

当今网络技术和网络环境的进化,促进了 Web 应用软件程序的巨大开发市场,在流行的Web应用软件开发模式中,C/S结构和B/S结构占据了主导。

在传统的Web应用程序开发中,需要同时开发客户端和服务器端的程序,由服务器端的程序提供基本的服务,客户端是提供给用户的访问接口,用户可以通过客户端的软件访问服务器提供的服务,这样的We b应用程序开发模式就是传统的C/S开发模式,C/S即客户机/服务器,在这种模式中,由服务器端和客户端的共同配合来完成复杂的业务逻辑。以前的网络软件中,例如 QQ、MSN、PPLive、迅雷等,一般都会采用这种模式。图1-5 C/S两层结构

在C/S结构开发模式时期,由于技术的发展和适应不同的开发需求,C/S结构模式又分为两层和三层两种结构。在初期,C/S结构一般采用两层结构,如图1-5所示,它由两部分构成:前端是客户机,通常是 PC;后端是服务器,运行数据库管理系统,提供数据库的查询和管理。两层结构的Web应用只适用于少量用户在局域网内对数据进行操作。而且由于对数据库的依赖性很强,系统的维护和更新常常令人头疼。于是随着中间件产品的出现和逐渐成熟,C/S结构就兴起了三层结构。

三层结构弥补了两层结构的不足,三层结构的核心是利用中间件将应用分为表示层、业务逻辑层和数据存储层3个不同的处理层次,如图1-6所示。三个层次是从逻辑上来划分的,具体物理分法可以有多种组合。中间件作为构造三层结构 Web 应用系统的基础平台,提供了以下主要功能:负责客户机与服务器间、服务器之间的连接和通信;实现Web应用与数据的高效连接;提供一个三层结构Web应用的开发、运行、部署和管理平台。

随着时间的推移,C/S架构的弊端开始慢慢显现,逐渐被另一种Web应用系统的结构方式所代替,这种新的Web应用软件结构模式就是B/S。

B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的发展,对C/S结构的一种变化或者改进的结构。在这种结构中,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成了三层结构。B/S这种结构主要利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script脚本语言和ActiveX技术,通用浏览器实现了原来需要复杂专用软件才能实现的强大界面功能,并节约了开发成本,是一种全新的软件系统构造技术,其结构如图1-7所示。

随着 Windows 将浏览器技术植入操作系统内部,B/S 结构已经成为当今应用软件的主要开发体系结构,例如各大门户网站、各种We b信息管理系统等。使用B/S结构不仅加快了Web应用程序开发的速度,提高了开发效率,而且降低了B/S结构应用程序开发的难度。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载