本书介绍在Eclipse环境下开发JSP应用程序的原理与技术。全书共11章,内容包括JSP原理及开发环境的搭建、JSP语法、JSP内置对象、EL基本用法、数据库访问、JavaBean、Servlet、MVC架构、标准标签库及自定义标签、Spring MVC框架、文件上传下载组件和Excel组件的使用方法等。本书将知识点分解、循序渐进将地理知识测试的设计与实现步骤按照由浅入深的方式拆分到各章,有助于读者掌握JSP的基础知识、编程技巧及加深对完整的开发体系的理解。
本书结构紧凑,深入浅出,贴近实践,便于教学,可作为高等学校计算机及相关专业本科生教材或教学参考书,也可供网站开发人员参考使用。
? 注重完整的项目体系概念,将知识点分解,由浅入深、循序渐进地呈现地理知识考试系统的实现步骤。? 注重学生在不同学习阶段的理解力差别,组织材料注重先易后难原则,先用简单示例阐述基本原理和基础知识,再完成实际项目部分。每章附有大量习题和深入学习材料,注重应用能力提高。? 书中给出综合项目的完整代码,并针对实例进行深入的解析,便于理解掌握。? 以表示与处理相分离、提高代码重用性为主线,从基础知识讲起,各章节内容以循序渐进的方式编排。? 按照JSP*版本规范编写。
前言
Java是目前最流行的程序开发语言,在服务器程序设计、手机程序设计等方面应用广泛。Java作为一种完全的面向对象语言,吸取了其他语言的优点,设计简洁优美,使用起来方便高效。Java是一个完整的技术平台,在这个平台上不断涌现各种新技术,其中的很多技术是免费的,因此对于中小企业应用来说选择Java具有非常大的吸引力。在Java发展过程中,不断有过时的技术被弃用。只有那些自身具有强大生命力的技术才会存活下来,并且被不断注入新的活力。JSP(Java Server Pages)就是一种自身具有强大的生命力,一直在快速发展的技术。JSP是基于JavaServlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全、跨平台的动态网站。JSP是由Sun公司倡导、许多公司参与一起建立的一种动态页面技术标准。自JSP推出后,很多公司都推出了支持JSP技术的服务器,如IBM、Oracle公司等,所以JSP迅速成为商业应用的服务器端语言。JSP具备Java技术的简单易用、完全的面向对象、具有平台无关性且安全可靠、面向Internet等特点。JSP从诞生至今,内容越来越丰富,页面设计越来越简洁,是Internet上的主流开发工具之一。全书分为11章,内容包括:第1章概述包括Web应用模型介绍、Tomcat的配置、Eclipse开发环境配置、JSP运行原理、利用表单提交数据、在服务器端处理用户数据。第2章JSP的基本语法包括JSP页面的组成、脚本元素,常用的指令和动作的运用。第3章JSP内置对象包括request、response、cookie、session、application、out等对象工作机制及应用,结合一个简单的购物车实例讲解各个内置对象的作用范围。第4章EL包括表达式语言基础语法和表达式语言的内置对象。第5章数据库访问包括创建MySQL数据库、JDBC应用、使用预编译语句和ResultSet对象等内容。第6章JavaBean包括在JSP中使用JavaBean、利用表单设置JavaBean属性、JavaBeans的Scope属性及利用JavaBean实现数据库表分页显示。第7章Servlet包括Servlet基础知识、工作原理、生命周期、Servlet与客户端通信、Servlet过滤器和利用过滤器做身份验证。[2][3]JSP程序设计前言[2]第8章MVC架构包括MVC架构的基本原理、用RequestDispatcher实现MVC、MVC应用实例。第9章标签库包括标准标签库和自定义标签。第10章Spring MVC包括Spring基本特性、Spring框架、Spring MVC入门、基于注解的控制器和文件上传。第11章JSP实用组件包括文件上传和下载组件SmartUpload、处理Excel文件组件JXL。本书面向具有一定静态页面设计基础的读者,如果未学习过静态页面设计,需要预先学习附录所列内容。附录内容包括JSP开发环境安装与配置、常用字符集、HTTP协议、HTML、CSS、JavaScript。本书围绕着一个地理知识测试项目,以教程的形式深入浅出、由易到难地介绍JSP的常用开发技术。为了便于读者阅读和理解,本书对某些特定内容采用专门的字体。新增的代码或关键代码用加粗字体表示,应该删除的代码打上了删除线。例如,在下面的代码里,将原来的out.print()方法删除,替换为粗体显示代码。代码清单23修改页面内容显示来源 (index.jsp)<%out.print("北京是中华人民共和国首都,简称京。");%><%i=(i 1)%mQuestions.length; out.print(mQuestions\[i\].getQuestion());%>本书各章内容前后联系比较紧密,例如,在前面章节定义的工具类,在后面会直接调用。读者在阅读时需要按照章节顺序阅读和调试程序,建议不要在章节间跳读。对于比较简单的项目,实现时可以采用不同的JSP技术。为了养成良好的编程习惯,希望读者最后能够使用MVC模式设计Web应用程序。为了让初学者有一个由浅入深、渐进的学习过程,不同章节的代码设计规范会存在一定的差异。例如,后面章节尽量避免将大量Java代码嵌入到JSP页面中,而前面的章节并没有遵从这一思想;前几章将JSP页面放在网站根目录下,后面又将JSP页面改为放在WEBINF目录下。这些差异实际上都与JSP程序设计中存在的不同软件设计模式之间存在的差异有关。作为初学者,没有必要也不可能掌握JSP的全部,需要掌握的是软件系统的开发设计思路与语言的核心知识技能。本书在内容选取上没有特别注重知识的完备性。另外,为了突出JSP的核心知识,在页面设计上没有大量引入复杂的样式和JavaScript脚本。由于篇幅有限,地理知识测试项目部分内容未能在本书中详述,读者可在清华大学出版社网站下载相关电子文档及代码。白文秀、侯锟、李淑梅、吕凯参与了本书的编写工作。本书可以作为高等学校计算机及相关专业的JSP程序设计教材,也可以作为JSP爱好者和网站开发人员的参考书。由于作者水平有限,书中难免存在错漏之处,敬请读者批评指正。
作者2016年10月
目录
第1章概述1
1.1Web应用基础1
1.1.1Web模型1
1.1.2配置Tomcat2
1.2JSP页面8
1.2.1创建JSP文件8
1.2.2运行JSP文件10
1.2.3JSP运行机制11
1.3用户数据提交与处理13
1.3.1利用表单提交数据13
1.3.2处理用户提交数据14
1.3.3完善输入界面16
1.3.4设置首页文件19
实验120
习题121
第2章JSP基本语法23
2.1脚本元素23
2.1.1声明23
2.1.2脚本小程序25
2.1.3表达式26
2.2指令元素29
2.2.1page指令29
2.2.2include指令34
2.3动作元素35
2.3.1动作36
2.3.2动作36
2.3.3动作37
2.3.4、动作42
2.4注释43[2][3]JSP程序设计目录[2]实验244
习题244
第3章JSP内置对象47
3.1request对象47
3.1.1request封装的数据47
3.1.2request对象的主要方法49
3.2response对象54
3.2.1response封装的数据54
3.2.2response对象的主要方法55
3.2.3操作Cookie57
3.3session对象60
3.3.1session工作机制61
3.3.2session对象的主要方法62
3.4out对象66
3.5application对象68
3.6其他内置对象70
3.7简单购物车71
实验378
习题380
第4章EL85
4.1EL表达式基础85
4.1.1EL语法85
4.1.2\[\]和.操作符85
4.1.3运算符86
4.2EL内置对象86
实验489
习题490
第5章数据库访问92
5.1创建MySQL数据库92
5.1.1创建数据库92
5.1.2常用DML语句94
5.2JDBC应用概述95
5.2.1载入JDBC驱动程序96
5.2.2定义连接URL97
5.2.3建立连接97
5.2.4创建Statement对象98
5.2.5执行查询或更新98
5.2.6结果处理99
5.2.7关闭连接100
5.2.8数据库连接工具类101
5.3使用预编译语句104
5.4ResultSet对象106
5.4.1读取数据106
5.4.2ResultSet类型106
5.4.3元数据108
实验5112
习题5114
第6章JavaBean120
6.1JavaBean简介120
6.2在JSP中使用JavaBean122
6.3利用表单设置JavaBean属性127
6.4JavaBean的Scope属性133
6.5JavaBean应用实例137
实验6141
习题6142
第7章Servlet148
7.1什么是Servlet148
7.1.1编写第一个Servlet148
7.1.2Servlet工作原理151
7.1.3Servlet生命周期152
7.2Servlet与客户端通信154
7.2.1Servlet生成纯文本154
7.2.2Servlet生成HTML155
7.2.3接收客户提交参数157
7.2.4session对象159
7.2.5Servlet上下文160
7.2.6Servlet的请求转发161
7.3Servlet过滤器162
7.3.1创建简单的过滤器162
7.3.2Filter接口166
7.3.3Filter生命周期167
7.3.4应用过滤器做身份验证168
7.4Servlet应用实例169
实验7175
习题7176
第8章MVC架构182
8.1什么是MVC182
8.2用RequestDispatcher实现MVC183
8.2.1定义JavaBean来表示数据184
8.2.2编写Servlet处理请求184
8.2.3填写JavaBean185
8.2.4结果的存储185
8.2.5转发请求到JSP页面186
8.2.6从JavaBean中提取数据186
8.2.7目的页面中相对URL的解释187
8.2.8控制器示例187
实验8194
习题8196
第9章标签库200
9.1标准标签库200
9.1.1输出标签c:out201
9.1.2迭代标签202
9.1.3条件标签204
9.1.4变量操作标签206
9.1.5URL相关标签207
9.2自定义标签210
9.2.1标签处理类210
9.2.2标签库描述文件211
9.2.3在JSP文件使用自定义标签212
9.2.4标签属性212
9.2.5标签体215
9.2.6定制标签应用示例217
实验9220
习题9220
第10章Spring MVC223
10.1Spring简介223
10.1.1基于POJO223
10.1.2依赖注入224
10.1.3面向切面编程226
10.1.4利用模板消除重复代码226
10.1.5Bean容器226
10.1.6Spring框架230
10.2Spring MVC入门231
10.2.1搭建Spring MVC232
10.2.2Spring MVC示例234
10.3基于注解的控制器238
10.3.1@Controller238
10.3.2@RequestMapping239
10.3.3利用控制器类实现QuestionEdit241
10.3.4利用注解实现依赖注入244
10.4文件上传247
10.4.1客户端编程248
10.4.2接收上传的文件248
实验10253
习题10254
第11章JSP实用组件255
11.1文件上传和下载组件255
11.1.1SmartUpload常用类255
11.1.2使用jspSmartUpload上传257
11.2处理Excel文件组件259
11.2.1jxl对象260
11.2.2基本操作260
11.2.3Excel批量导入数据263
实验11265
习题11266
习题参考答案267
附录AJSP开发环境安装与配置270
附录B常用字符集272
附录CHTTP协议274
附录DHTML、CSS、JavaScript简介277
参考文献287