技术教育社区
www.teccses.org

JAVAWEB程序设计基础教程

封面

作者:李绪成[等]编著

页数:283

出版社:西安电子科技大学出版社

出版日期:2007

ISBN:9787560619330

电子书格式:pdf/epub/txt

节选

bsp; 序
    进入2l世纪以来,高等职业教育呈现出快速发展的形势。高等职业教育的发展,丰富了
高等教育的体系结构,突出了高等职业教育的类型特色,顺应了人民群众接受高等教育的强
烈需求,为现代化建设培养了大量高素质技能型专门人才,对高等教育大众化作出了重要贡
献。目前,高等职业教育在我国社会主义现代化建设事业中发挥着越来越重要的作用。
    教育部2006年下发了《(关于全面提高高等职业教育教学质量的若干意见)》,其中提出了
深化教育教学改革,重视内涵建设,促进“工学结合”人才培养模式改革,推进整体办学水
平提升,形成结构合理、功能完善、质量优良、特色鲜明的高等职业教育体系的任务要求。
    根据新的发展要求,高等职业院校积极与行业企业合作开发课程,根据技术领域和职
业岗位群任职要求,参照相关职业资格标准,改革课程体系和教学内容,建立突出职业能
力培养的课程标准,规范课程教学的基本要求,提高课程教学质量,不断更新教学内容,
而实施具有工学结合特色的教材建设是推进高等职业教育改革发展的重要任务。
    为配合教育部实施质量工程,解决当前高职高专精品教材不足的问题,西安电子科技
大学出版社与中国高等职业技术教育研究会在前三轮联合策划、组织编写“计算机、通信
电子、机电及汽车类专业”系列高职高专教材共160余种的基础上,又联合策划、组织编
写了新一轮“计算机、通信、电子类”专业系列高职高专教材共120余种。这些教材的选
题是在全国范围内近30所高职高专院校中,对教学计划和课程设置进行充分调研的基础上
策划产生的。教材的编写采取在教育部精品专业或示范性专业的高职高专院校中公开招标
的形式,以吸收尽可能多的优秀作者参与投标和编写。在此基础上,召开系列教材专家编
委会,评审教材编写大纲,并对中标大纲提出修改、完善意见,确定主编、主审人选。该
系列教材以满足职业岗位需求为目标,以培养学生的应用技能为着力点,在教材的编写中
结合任务驱动、项目导向的教学方式,力求在新颖性、实用性、可读性三个方面有所突破,
体现高职高专教材的特点。已出版的第一轮教材共36种,2001年全部出齐,从使用情况看,
比较适合高等职业院校的需要,普遍受到各学校的欢迎,一再重印,其中《(互联网实用技
术与网页制作)》在短短两年多的时间里先后重印6次,并获教育部2002年普通高校优秀教
材奖。第二轮教材共60余种,在2004年已全部出齐,有的教材出版一年多的时间里就重
印4次,反映了市场对优秀专业教材的需求。前两轮教材中有十几种入选国家“十一五”
规划教材。第三轮教材2007年8月之前全部出齐。本轮教材预计2008年全部出齐,相信
也会成为系列精品教材。
    教材建设是高职高专院校教学基本建设的一项重要工作。多年来,高职高专院校十分
重视教材建设,组织教师参加教材编写,为高职高专教材从无到有,从有到优、到特而辛
勤工作。但高职高专教材的建设起步时间不长,还需要与行业企业合作,通过共同努力,
出版一大批符合培养高素质技能型专门人才要求的特色教材。
    我们殷切希望广大从事高职高专教育的教师,面向市场,服务需求,为形成具有中国
特色和高职教育特点的高职高专教材体系作出积极的贡献。
前言
    在多年的教学过程中,作者使用了多本JSP的教材,应该说这些教材都写得挺好。但
是实际了解到的情况是学生听课的时候可以听懂,学完之后却不知道怎么去应用,要自己
编写一个网站程序还是有困难。这几年作者也一直在研究其中的原因,逐渐发现了一些问
题,并且想了一些方法来解决,还在一些班级进行了实验,效果比较好。现在想把这些想
法与其他老师分享,让学生也能学有所用。
本书运用的思想
    ·应用驱动而不是知识点驱动。
    现有教材的编写基本上都是按照JSP知识点的分类来进行的,例如:JSP概述、JSP基
础、内部对象、JSP动作和指令、JavaBean、JDBC、表达式语言、国际化、标准标签库等。
这些教材都是以知识点驱动的,强调的是知识点。
    在实际应用中我们需要解决各种问题,不同的问题需要不同的知识点,即实际中是以
  问题为驱动的。所以本书以应用为中心,围绕如何解决应用中的问题进行讲解,即完成相
  关功能需要什么知识点,就介绍什么知识点。
    同时为了使学生能够全面掌握知识,我们在每一部分列出了相关的知识点。
    ·提供完整的项目而不是不相关的例子。
    多数JSP图书的不同章节采用的实例都没有关联性,这样在学完整个课程之后,学生
会感觉例子很乱,没有整体的概念。
    本书的所有内容都围绕一个项目进行,每一部分完成项目的一个功能,实训也是整个
项目的一部分。这样当课程结束之后,学生就可以完成一个完整的项目。
    ·不仅教学生如何实现,并且教学生如何设计。
    对于每一个例子,不仅教学生如何编写程序,更重要的是教学生如何进行设计,这样
学生就可以触类旁通了。
    ·先模仿后自创。
    每次介绍完一个案例之后,都要求学生完成一个类似的功能,通过这样的模仿来加深
理解所学的知识,最后由学生再独立完成一部分功能。
    ·理论与实训并重。
    每部分内容都包括教师讲授和学生实训两部分,使得理论与实训结合紧密。
    ·JSP用于显示,Servlet用于控制。
    在JSP的发展早期,开发JavaWeb应用的主要方式是在网页中嵌入Java代码,但这种
方式的弊端逐渐显露出来。Java Web开发经常是由多种技术协同完成的:JSP主要完成与
用户的交互过程,不应该包含处理代码和控制代码;而Servlet在显示信息方面没有优势,
所以坚决不使用Servlet显示信息。本书严格遵循这种思想。
本书的内容组织
    本书的内容组织围绕一个比较通用的项目——网上书店系统。整个项目分成三个部分:
    ·图书信息管理。
    ·用户管理。
    ·购物车和订单管理。
    每一部分的内容基本上都覆盖了JSP的所有知识点。整个课程的安排按照两条线进行:
教师授课和学生实训。
    教师授课内容是用户管理功能部分。把用户管理功能分解成各个小的案例,每个案例
都可以完成一个功能,每个案例包含若干知识点。授课时边讲解边带领学生操作,把知识
点融合在案例中。
    学生实训内容是图书信息管理部分。每章最后都会有一个学生实训,这个实训与本章
授课内容吻合,与教师讲解的案例功能基本相同。例如,教师讲解用户信息修改功能,学
生实训的内容就是图书信息修改功能。
    在完成基本内容的讲解和实训之后,在本书的最后给出了一个综合实例:购物车和订
单管理。这部分内容由教师介绍知识点,然后由学生进行实训。
    本书内容是根据JSP的最新规范编写的,采用的模式是MVC模式,它是几乎所有Java
Web应用开发所采用的模式。JSP主要用于显示信息,所以在用到JSP的时候,要避免在
JSP中嵌入Java代码。虽然Servlet能够像JSP一样向用户显示信息,但是Servlet主要用于
控制。本书严格遵循这种思想,只在Servlet中编写控制代码。
    学习任何一门语言时,学习者调试程序的能力都是一项非常基础但却非常重要的能力。
本书专门使用一章的内容对常见的调试错误进行了分析,并对常用的调试方法进行了介绍。
    本书首先描述目标,然后通过运行效果进一步展示目标,并根据目标分析编程思路,
最后一步一步告诉读者如何编写这个代码。
学习目标
    通过学习本书,学生应该达到以下目标:
    ·创建一个网站。
    包括搭建运行环境,创建网站的框架。
    ·展示信息。
    可以采用多种向用户展示信息的方式,通常情况下展示信息是Web应用的最基本的
功能。
    ·提交信息。
    通过界面提交信息到服务器是网站中信息更新功能所必需的。
    ·检索信息。
    信息检索功能能够帮助用户从网站提供的大量信息中查找需要的信息。这样的功能对
于一个信息量非常大的网站来说是必不可少的。
    ·处理信息。
    能够完成网站中信息的处理。
  ·管理信息。
    能够管理各种网站中的大量信息。
    ·进行安全控制。
    包括实现登录功能和权限控制。
    ·进行异常处理。
    能够处理网站中的各种异常。
    ·进行分页显示。
    分页显示在很多网站中都存在,学习完本课程后,读者应该能够掌握其方法。
    ·完成购物车管理。
    几乎所有的电子商务网站中都有购物车功能,学习完本课程后,学生应该能够编写各
种网站中的购物车管理代码。
主要内容
    全书共分15章。第1章介绍如何构建Java Web应用。第2章和第3章介绍如何解决
Java Web应用的输入和输出问题。第4~6章对登录功能进行了3次重构,这也就是Java Web
技术的3个发展阶段。第7~10章进一步强化MVC模式的运用,并介绍数据库的常用操
作。第11~13章介绍了JavaWeb应用的国际化、异常处理和安全控制问题。第14章是综
合实训,分析了购物车功能和订单管理功能的主要编写思路,并给出了关键的知识点。第
15章介绍了在编写和运行JavaWeb应用的过程中经常出现的错误以及如何调试程序。
    本书最后有3个附录。附录A列出了JavaWeb开发中常用的功能,可以方便读者的学
习。附录B列出了JSP技术中非常重要的API方法,读者在学习的过程中可以查找使用。
附录C是本书的知识点索引,因为本书没有像其他书那样按照知识点分章节,而是按照应
用划分,所以要查找知识点可以通过该索引进行。
编者分工
    本书第1章及第9~15章由李绪成编写,第2、3章由闫海珍编写,第4~6章由王红
编写,第7、8章由张阳编写。全书由李绪成统稿,闫海珍审定。
给学生的建议
    ·一定要动手写程序,只有动手了才能发现问题。
    ·不要害怕出错,编写程序不可能不出错,熟练之后,就会少出错了。
    ·充分利用网络,网络上的各种资源非常丰富。
    ·要学好英语,因为很多文档都是英文的。
    ·要掌握Java基础,本书对JSP的语法讲得不多,难就难在Java语言本身。
给老师的建议
    ·给学生动手的时间,不管你讲得有多好,如果学生不自己动手,一切都是徒劳。
    ·帮助学生调试程序,调试程序的时候要给学生讲解,最好能够把你调试程序过程中
心中想的东西告诉学生。要鼓励学生试着自己调试程序。
预备知识
    预备知识包括三个方面:Java、HTML和JavaScript语言。
    Java Web开发技术是以Java语言为基础的,其编码使用的都是Java的基本语法,最后
也是按照Java程序的运行方式运行的。如果读者对Java不熟悉,需要补习一下Java。能够
用到的Java知识包括:
    ·Java的基本语法,包括标识符、运算符、变量、方法和流程控制等。
    ·Java的面向对象特性,包括包、类、接口的定义和使用。
    ·Java的常用类库,包括字符串相关的String和StringBuffer、日期处理相关的Date
和Calendar、日期和数字的格式化DateFormate和NumberFormat以及Collection框架等。
    ·异常处理,在编写Java文件的时候不可避免地要使用它。
    对于HTML语言,我们需要掌握最基本的语法,包括以下几个方面:
    ·网页的结构。
    ·表单元素。
    JavaScfipt语言在客户端执行,所以如果希望在浏览器端执行功能,就需要使用
JavaScript语言。现在在网站中使用比较多的JavaScfipt内容有客户端验证。
进一步学习的建议
    JavaWeb开发技术属于Java企业级应用的一部分,属于Java企业级应用中的Web层。
如果想更完整地学习Java企业级应用的各方面,可以学习Java EE企业级开发技术,它包
括企业级JavaBean(EJB)技术和RMI、JNDI、JTA、JTS、数据源、JavaMail、JAAS、连接
器等服务。
    另外,本书介绍的是最基本的JavaWeb开发技术。为了提高Web应用的开发效率和方
便Web应用的管理维护,人们设计出了很多基于Java Web技术的框架。常见的Web应用
框架有:JSF、Struts、Tapestry和WebWork。它们都属于Web层框架,主要用于开发Web
应用,其功能基本相同,但特性各有千秋。在Java企业级应用的最新版本中,JSF已经属
于Java Web技术的一个组成部分。读者可以选择一种Web应用框架进行学习。
    除了这些Web应用框架之外,还有一些能够简化对数据库进行操作的技术,通常称为
持久层框架,常见的有Hibernate和TopLink。Hibernate相对来说比较流行,在很大程度上
影响了后来的EJB3中Java持久性API的规范。读者可以从Hibernate和TopLink中选择其
一进行学习,但如果读者要学习Java企业级应用,则可以不用学习这些持久性框架,因为
在Java企业级应用中包含了Java持久性API,而且在Java企业级应用的早期版本中还有实
体Bean。
    还有一个比较流行的技术Spring,它是一个企业级应用的框架,与Java EE平行。它虽然
不属于Java企业级应用开发的标准,但却非常成功,也是读者可以选择学习的一个不错的技术。
    编者
    2007年9月

第7章动态显示信息
    目标:
    ·掌握使用JDBC连接数据库的基本过程。
    ·掌握如何使用JDBC从数据库中查询信息。
    ·掌握Tomcat中数据库连接池的配置。
    ·掌握连接池的使用。
    ·了解如何使用标准标签库中的相关标签完成对数据库中信息的查询。
    网站在运行的过程中会有大量的信息,这些信息可能是刚开始就存在的,也可能是在
  网站的运行过程中增加的。在网站运行的过程中,这些信息可能会发生变化,有些信息需
  要删除。这些信息不能使用静态页面来展示,而要使用动态页面来展示。在运行过程中,
  从数据库中动态加载信息,这就需要使用数据库来存储大量与系统相关的信息。
    Java应用程序可以连接到各种数据库服务器上,但是因为各种数据库服务器的实现不
  同,连接方法也不相同,所以对应用程序编写人员来说,要掌握连接各种数据库的方法,
  比较困难。为了解决这个问题,在Java中提供了一种机制,通过这种机制,Java应用程序
  可以采用一种统一的连接数据库的方式,而不管使用什么类型的数据库服务器,这样就简
  化了应用开发人员的工作。
    为了能够采用统一的方式访问数据库,Java提供了一组标准的API,称为JDBC(Java
  DataBase Connectivity)API,即Java数据库互连API。Java应用开发人员可以采用这组API
  中的方法连接数据库。但是因为各种类型的数据库的实现不一样,所以在连接各种类型的
  数据库时,需要使用连接特定数据库的程序,称为JDBC驱动程序。
    因此,我们在开发数据库应用程序的时候,需要学会做两件事情:
    ·得到相应数据库的JDBC驱动程序:
    ·学会使用这组标准的API,能够完成对数据库的基本操作。
    因为数据库开发技能是Java Web应用开发中比较基本也是比较重要的部分,所以本章
  以及接下来的几章将重点介绍Java Web数据库开发常用技能。
    7.1目标及演示
7.1.1功能描述
    首先需要在数据库中建立存储用户信息的表,然后使用JSP把数据库中的这些信息显
示出来。所有用户的信息将显示在表格中,每一行表示一个用户。
7.7.2运行效果
7.1.3相关文件
    显示用户信息的功能包括3个文件:
    ·UserBeanjava,需要在这个文件中添加一个查询方法,查询所有的用户信息。
    ·usefiistjisp,显示所有用户信息。
    ·FindAllUserServletJava,控制器Servlet,调用UserBean中的查询所有用户的方法,
传递给userlist:jsp。
7.1.4思路分析
    根据前面介绍的MVC模式,对于本功能应该做如下设计:
    (1)考虑V部分,也就是输入/输出,应该从用户的角度出发。用户要查看所有用户的
信息,分两步:
    ·输入。用户要查看所有用户的信息,应该在某个界面上有一个超链接,通过点击这
个超链接发送请求。所以只需要在需要查看所有用户信息的界面上增加一个超链接即可。
    ·输出。系统完成查询之后,界面要显示查询的结果。而这些信息是动态的,所以需
要从控制层传递过来,这里需要知道要传递的信息的名字。我们使用user,st表示,这个名
字相当于控制层与表示层之间的接口。因为查询的结果可能有很多,所以通常需要使用表
格来呈现信息,使用标准标签库的<c:forEach>标签完成信息的输出。
    (2)考虑M部分,也就是功能如何实现。该功能是查询所有用户信息,是与用户相关
的操作,可以考虑使用前面介绍的UserBean,然后增加一个新的方法即可。方法的设计
如下:
    ·方法名。方法名要体现方法的功能,所以这里使用findAllUser。
    ·方法的参数。因为要查询所有的用户,不需要查询条件,所以参数列表为空。
    ·方法的返回值。查询的结果是多个用户,每个用户是一个对象,所以应该返回对象
的集合,通常使用ArrayList。
    ·方法的异常列表。这里不需要考虑异常,所以异常列表为空。
    ·方法实现,访问数据库获取所有用户信息,然后把这些信息封装成对象,再把对象
封装成集合对象。
    (3)考虑C部分,也就是如何建立视图和模型之间的关联,这里使用Servlet来实现,
设计过程如下:
    ·获取用户的输入信息,这个请求没有条件,所以不需要获取。
    ·调用模型,创建UserBean的对象,然后调用fmdAUUser方法,并保存返回的结果。
    ·把得到的结果存储在request对象中,使用名字userlist,这是前面界面设计时给出的
名字。
  ·跳转到响应界面userlist:jsp。
7.2使用MySQL
    在介绍访问数据库的基础之前,首先要创建存储数据的数据库。本书采用MySQL数据
库,所以首先需要简单介绍MySQL的使用。如果书中对于MySQL的介绍不能满足读者的
要求,读者可以参考专门的书籍。
7.2.1  MySQL数据库的下载
    本书使用的安装程序是:mysql-5.0.20-win32.exe。最新的安装程序可以从MySQL的官
方网站下载。
7.2.2 MySQL数据库的安装
    安装前的准备工作和注意事项:
    (1)首先检查计算机上是否已经安装了MySQL。方法是:打开[开始]→[程序],
查看是否有MySQL的目录;或者到[服务]中查看是否有名为MySQL的服务。

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《JAVAWEB程序设计基础教程》
Article link:https://www.teccses.org/98831.html