新書推薦:
《
万千心理·我的精神分析之道:复杂的俄狄浦斯及其他议题
》
售價:NT$
475.0
《
荷马:伊利亚特(英文)-西方人文经典影印21
》
售價:NT$
490.0
《
我的心理医生是只猫
》
售價:NT$
225.0
《
股权控制战略:如何实现公司控制和有效激励(第2版)
》
售價:NT$
449.0
《
汉译名著·哲学经典十种
》
售價:NT$
3460.0
《
成吉思汗传:看历代帝王将相谋略 修炼安身成事之根本
》
售價:NT$
280.0
《
爱丁堡古罗马史-罗马城的起源和共和国的崛起
》
售價:NT$
349.0
《
大宋悬疑录:貔貅刑
》
售價:NT$
340.0
|
編輯推薦: |
本书在讲解每个知识点的时候,都给出了对应的代码。希望这些代码对读者的实际开发有帮助,也希望读者能够亲自动手编写和调试这些代码。
|
內容簡介: |
Java Web应用程序是当前主流的服务器端技术。本书通过大量实例深入浅出地介绍Java Web应用的开发,全书共14章,内容包括: Java Web开发上手、JSP中的超文本、JSP语法、JSP内置对象、JSP中使用JavaBean、用Maven管理项目、Servlet技术、监听器和过滤器、MVC设计模式、JDBC访问数据库、表达式语言EL、标准标签库JSTL、持久层框架MyBatis、Spring MVC。 本书内容精练、结构清晰、示例小而易学,可以作为高等院校计算机及相关专业的教材,也适合广大Java Web初学人员自学使用。
|
關於作者: |
佟强博士2006年毕业于中国科学院计算技术研究所, 拥有10余年的实际项目开发经验和编程类课程教学经验,目前正在讲授的课程有《计算机应用基础》、《Java面向对象程序设计》、《Web应用程序设计》和《C 程序设计》。2013年在清华大学出版社出版了《JSP程序设计》一书,目前正在改版和撰写新书《C 程序设计》的初稿。
|
目錄:
|
第1章Java Web开发上手/1
1.1动态网页技术1
1.1.1CGI1
1.1.2ASP1
1.1.3ASP.NET2
1.1.4PHP2
1.1.5Servlet2
1.1.6JSP2
1.2JSP基本概念2
1.2.1JSP的工作原理2
1.2.2常见应用服务器3
1.2.3Java Web应用程序的目录结构3
1.2.4开发环境4
1.3JDK安装与配置4
1.4应用服务器Tomcat6
1.4.1Tomcat简介6
1.4.2安装Tomcat7
1.4.3启动/停止Tomcat7
1.4.4使用浏览器访问Tomcat9
1.4.5修改Tomcat监听端口9
1.4.6管理Web应用和虚拟主机10
1.4.7Tomcat运行为Windows服务12
1.5集成开发环境Eclipse15
1.5.1Eclipse简介15
1.5.2安装Eclipse15
1.5.3Eclipse中添加Tomcat16
1.5.4Web文件的字符编码16
1.5.5开发个JSP程序17
1.5.6将Web应用打包成WAR文件23
本章小结25
习题一25
第2章JSP中的超文本/27
2.1页面27
2.2字体29
2.3文字布局31
2.4图像35
2.5表格36
2.6框架41
2.7表单与请求参数42
2.8读取中文请求参数47
本章小结49
习题二50
JSP程序设计(第2版)目录第3章JSP语法/51
3.1JSP文件的组成51
3.1.1一个典型的JSP文件51
3.1.2分析JSP文件中的元素52
3.1.3JSP文件的运行结果52
3.1.4JSP转译的Java源文件53
3.2JSP中的注释55
3.3指令元素57
3.3.1page指令57
3.3.2include指令59
3.3.3taglib指令61
3.4脚本元素62
3.4.1声明<%!与%>62
3.4.2表达式 <%=与%>64
3.4.3小脚本 <%与%>65
3.4.4表达式语言 ${}67
3.5动作元素69
3.5.1提供参数69
3.5.2包含页面69
3.5.3转发请求71
3.5.4使用JavaBean73
本章小结73
习题三73
第4章JSP内置对象/75
4.1HTTP协议75
4.1.1统一资源定位符URL75
4.1.2HTTP工作原理76
4.1.3HTTP报文格式77
4.1.4Cookie80
4.2内置对象介绍81
4.2.1内置对象的功能81
4.2.2内置对象的类型81
4.3内置对象82
4.3.1out82
4.3.2request82
4.3.3response87
4.3.4session90
4.3.5application94
4.3.6config97
4.3.7page98
4.3.8pageContext98
4.3.9exception99
4.4JSP实例101
4.4.1用户登录102
4.4.2简单的购物小车103
4.4.3考研成绩查询系统106
本章小结112
习题四112
第5章JSP中使用JavaBean/115
5.1JavaBean介绍115
5.1.1JavaBean简介115
5.1.2编写JavaBean遵循的原则116
5.1.3JavaBean的属性116
5.2118
5.2.1的基本语法118
5.2.2JavaBean的条件化操作119
5.2.3JavaBean存放的位置121
5.2.4JavaBean的作用范围122
5.3获取JavaBean的属性123
5.3.1123
5.3.2使用EL获取JavaBean属性124
5.4125
5.4.1value给出属性的值125
5.4.2param给出HTTP请求参数的名字126
5.4.3自动匹配单个HTTP请求参数127
5.4.4自动匹配全部HTTP请求参数127
5.4.5索引属性的HTTP请求参数自动匹配128
5.5用户登录(JSP JavaBean MySQL)130
5.5.1用户表user130
5.5.2SHA256算法130
5.5.3用户类: User131
5.5.4JSP页面133
5.6购物小车(JSP JavaBean MySQL)135
5.6.1商品表和商品类Item135
5.6.2数据库工具类DatabaseUtils136
5.6.3商品表数据访问类ItemDao137
5.6.4购物小车类CartService139
5.6.5商品列表页面shopping.jsp141
5.6.6购物小车页面cart.jsp143
本章小结145
习题五146
第6章用Maven管理项目/148
6.1安装和配置Maven148
6.1.1下载和安装Maven148
6.1.2Maven的配置文件148
6.1.3Eclipse自带的Maven149
6.2创建Maven管理的动态网站项目150
6.2.1在Eclipse内部添加Tomcat150
6.2.2设置Web文件的字符集150
6.2.3创建动态网站项目151
6.2.4新建JSP文件152
6.2.5启动Server154
6.2.6使用浏览器访问JSP157
6.2.7转成Maven项目157
6.2.8在Eclipse内部构建Maven项目159
6.3Maven项目的目录结构162
6.3.1Maven目录的约定配置162
6.3.2调整项目的目录163
6.4管理项目依赖164
6.4.1搜索依赖的构件164
6.4.2依赖的作用范围165
6.5理解Maven构建的过程166
6.5.1Maven构建的阶段166
6.5.2Maven常用命令166
6.5.3使用mvn命令167
本章小结167
习题六168
第7章Servlet技术/169
7.1Servlet介绍169
7.1.1什么是Servlet169
7.1.2Servlet的特点169
7.1.3Servlet和JSP的比较170
7.2实现Servlet170
7.2.1Eclipse向导创建Servlet170
7.2.2Servlet处理请求参数172
7.3Servlet的工作原理174
7.3.1Servlet的生命周期174
7.3.2实现Servlet类175
7.3.3部署Servlet177
7.3.4Servlet存放的位置179
7.3.5获得其他JSP内置对象179
7.3.6启动装入优先级180
7.4Servlet高级示例181
7.4.1动态生成JPEG图片181
7.4.2JavaMail发送电子邮件183
7.4.3Commons FileUpload上传文件187
本章小结191
习题七191
第8章监听器和过滤器/193
8.1监听器193
8.1.1监听Web应用194
8.1.2监听HTTP会话195
8.1.3监听HTTP请求199
8.2监听器示例201
8.2.1统计在线人数201
8.2.2加载后台服务对象204
8.3过滤器206
8.3.1过滤器的概念206
8.3.2过滤器的链式结构207
8.3.3实现过滤器207
8.3.4部署过滤器209
8.4过滤器示例210
8.4.1字符集过滤器210
8.4.2用户认证过滤器212
8.4.3自定义日志过滤器214
本章小结217
习题八218
第9章MVC设计模式/219
9.1JSP的两种模式219
9.1.1模式一219
9.1.2模式二219
9.1.3两种模式的比较220
9.1.4JSP和Servlet的选择220
9.2MVC模式221
9.2.1MVC模式的概念221
9.2.2各种技术总结221
9.2.3MVC模式的实现222
9.3MVC示例222
9.3.1Hello MVC222
9.3.2个人主页模板225
本章小结233
习题九234
第10章JDBC访问数据库/235
10.1JDBC的接口和类235
10.1.1JDBC简介235
10.1.2Driver235
10.1.3DriverManager236
10.1.4Connection236
10.1.5Statement237
10.1.6ResultSet237
10.1.7PreparedStatement238
10.1.8DatabaseMetadata238
10.1.9ResultSetMetadata238
10.2连接MySQL数据库238
10.2.1安装和使用MySQL238
10.2.2通过JDBC连接MySQL239
10.3基本数据库操作241
10.3.1查询数据242
10.3.2插入数据243
10.3.3带参数的SQL语句244
10.3.4更新数据245
10.3.5删除数据246
10.3.6获取元数据247
10.4高级数据库操作249
10.4.1获得数据库生成的主键249
10.4.2事务处理251
10.4.3存储过程254
10.4.4批处理257
10.4.5分页显示查询结果259
10.5连接池和数据源261
10.5.1Tomcat下配置数据源262
10.5.2JSP页面中使用数据源262
本章小结263
习题十264
第11章表达式语言EL/265
11.1EL简介265
11.2EL语法265
11.2.1字面值266
11.2.2操作符“[]”和“.”266
11.2.3算术运算符269
11.2.4关系运算符269
11.2.5逻辑运算符269
11.2.6empty运算符269
11.2.7条件运算符270
11.3EL中的隐含对象270
11.3.1pageContext对象271
11.3.2范围对象272
11.3.3请求参数对象273
11.3.4请求头对象276
11.3.5Cookie对象277
11.3.6初始化参数277
本章小结278
习题十一278
第12章标准标签库JSTL/280
12.1JSTL介绍280
12.1.1JSTL的功能280
12.1.2JSTL的优点280
12.1.3JSTL的安装281
12.1.4JSTL的使用281
12.2一般用途的标签282
12.2.1282
12.2.2283
12.2.3284
12.2.4285
12.3条件标签286
12.3.1286
12.3.2287
12.4迭代标签288
12.4.1288
12.4.2294
12.5SQL标签295
12.5.1295
12.5.2296
12.5.3297
12.5.4298
12.5.5299
12.5.6299
12.6投票系统(JSTL MySQL)299
12.6.1创建投票数据库299
12.6.2数据库连接池配置300
12.6.3投票页面301
本章小结302
习题十二303
第13章持久层框架MyBatis/305
13.1ORM和MyBatis305
13.1.1ORM相关概念305
13.1.2什么是MyBatis307
13.2MyBatis Generator307
13.2.1MyBatis Generator简介307
13.2.2安装MyBatis Generator308
13.2.3创建MySQL数据库309
13.2.4配置和运行MyBatis Generator311
13.3使用MyBatis314
13.3.1MyBatis配置文件314
13.3.2修改生成的代码315
13.3.3使用MyBatis访问表316
13.4理解MyBatis319
13.4.1关于SqlSessionFactory319
13.4.2核心对象的生命周期320
本章小结321
习题十三322
第14章Spring MVC/324
14.1Spring框架简介325
14.1.1Spring框架的核心325
14.1.2Spring MVC简介325
14.2理解控制反转326
14.2.1添加Spring依赖326
14.2.2设计依赖注入需要的类327
14.2.3配置Spring依赖注入330
14.3Spring MVC起步331
14.3.1添加Sping MVC依赖331
14.3.2配置分发器DispatcherServlet332
14.3.3编写Spring MVC配置文件334
14.3.4编写Spring MVC控制器336
14.4接收多个请求参数338
14.4.1使用JavaBean接收338
14.4.2其他接收多个请求参数的方法340
14.5Spring MVC进阶344
14.5.1Model和ModelMap344
14.5.2映射下一级路径346
14.5.3控制器子包和多个控制器包347
14.5.4注入服务层组件348
14.5.5响应JSON格式的文本350
14.6Spring集成MyBatis352
14.6.1添加MyBatis相关的依赖352
14.6.2集成MyBatis的配置文件353
14.6.3MVC中使用MyBatis356
14.6.4AOP声明式事务管理365
14.7本章pom.xml文件366
本章小结370
习题十四371
|
內容試閱:
|
JSP是一种广泛使用的动态网页技术标准。JSP能够响应客户端的请求,并动态生成HTML、XML或其他格式文档的Web页面。JSP以Java语言作为脚本语言,可以使用Java语言的大部分类库。
JSP页面中既可以有静态的HTML标签,也可以有动态的Java脚本。当一个JSP页面次被请求时,应用服务器首先将JSP页面编译成Servlet(.java),然后调用Java编译器将Servlet编译成字节码文件(.class),后将字节码文件实例化成Java对象,并调用这个对象的service()方法为客户端请求提供服务。编译JSP页面仅仅发生在该页面次被请求时。对于后续的请求,应用服务器将直接使用内存中的Java对象提供服务。当然,如果JSP页面在服务器运行期间被修改,应用服务器也会重新编译这个JSP页面。
Servlet是一种运行在服务器端的Java应用程序。Servlet由应用服务器加载,并由应用服务器维护其生命周期。服务器根据客户端请求的方法调用Servlet中对应的方法。Servlet读取浏览器或其他HTTP客户端发来的请求参数,动态生成响应返回给客户端。
Servlet监听器可以监听Web应用中发生的各种事件。利用监听器,当事件发生时可以在后台自动执行某些代码。Servlet过滤器可以截获HTTP的请求和响应。多个过滤器形成一个过滤器链。利用过滤器可以将一些公共代码从Servlet和JSP中分离出来。
JSP表达式语言(Expression Language,EL)使得访问存储在JavaBean中的数据变得非常简单,EL提供了在JSP页面中以更简洁的语法输出数据的机制。JSP标准标签库(Java Server Pages Standard Tag Library,JSTL)为Java Web开发者提供了一个标准的通用标签库。通过JSTL,可以部分取代传统JSP程序中嵌入Java代码的做法,使得JSP页面的风格趋于统一,且容易维护。
MVC设计模式是Web开发常用的设计模式,核心思想是有效地组合模型(Model)、视图(View)和控制器(Controller),每个部分各有所长,分工明确。模型负责业务逻辑处理和封装数据,视图只负责显示的界面,控制器控制着模型和视图之间的交互过程。JSP作为视图,Servlet作为控制器,JavaBean作为模型,JSP Servlet JavaBean可以实现符合MVC设计模式的Java Web程序。
Maven是一个软件项目管理的综合工具。基于项目对象模型(Project Object Model,POM),Maven可以通过一小段XML描述信息来管理项目的构建、报告和文档。Maven还是一个依赖管理工具,它提供了中央仓库,能够自动下载构件(Artifact)。组ID、构件ID、版本三个元素定位一个构件。
JDBC是Java Database Connectivity的缩写,职责是为Java应用程序访问数据库提供一种通用手段。JDBC API为Java开发者使用数据库提供了统一的编程接口,它由一组Java类和接口组成。
对象关系映射(Object Relational Mapping,ORM)是一种为了解决面向对象与关系数据库存在的互不匹配现象的技术。ORM可以在对象和关系数据库之间建立映射,使得程序可以通过操作对象的方式来访问关系数据库。MyBatis是一个优秀的Java持久化框架,可以实现ORM映射、查询缓存等常用功能。
Spring为Java开发提供了各种基础设施,Spring框架是Spring提供的支持企业级应用开发的项目,其核心是一个控制反转(Inversion of Control,IoC)和面向切面(Aspect Oriented Programming,AOP)的容器。控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就从应用转移到了外部容器,控制权的转移就是所谓反转。依赖注入是指在运行时,由外部容器动态地将依赖对象注入到组件中。Spring框架就是一个大容器,可以将所有对象的创建和依赖关系的维护交给Spring框架管理。
JSP程序设计(第2版)前言Spring MVC是Spring框架的一个模块,是一个MVC设计模式的Web框架。Spring MVC中的控制器可以被注入Spring容器中的服务层组件,而服务层组件可以被注入持久层组件。Spring MVC的Web应用由三层架构组成: Web层、业务层、持久层。注解@Controller和@RestController用于定义Web层的控制器,注解@Service用于定义服务层组件,注解@Repository用于定义持久层的数据访问组件,而注解@Autowired使得Spring可以自动组装组件。
Spring为主流的应用框架提供了集成支持。在Spring中集成持久层框架MyBatis,开发者可在XML映射文件中编写SQL语句,给出Mapper的实现,这个XML映射文件就相当于数据访问对象的实现类。Spring扫描XML映射文件创建持久层组件,并将持久层组件注入到服务层组件中。
从头开始配置一个Spring MVC Spring IoC MyBatis的项目对于开发者理解控制反转、依赖注入、MVC设计模式、Web分层架构、面向切面等基础知识是必要的。Spring还提供了更简单的Spring Boot项目来创建和配置Spring应用,它可以创建独立运行的、产品等级的、只需少配置的、基于Spring的应用。
本书从实践出发,通过大量的小例子深入浅出地介绍Java Web应用程序的设计开发。第1章介绍JSP的工作原理、Java Web应用程序的目录结构、常见的应用服务器、集成开发环境Eclipse。第2章介绍HTML标签,以及如何读取表单数据。第3章介绍JSP的基本语法,包括指令元素、脚本元素、动作元素。第4章介绍HTTP协议和全部9个JSP内置对象。第5章介绍使用JavaBean封装业务逻辑和在JSP页面中使用JavaBean。第6章介绍项目管理工具Maven,它还是一个依赖管理工具,提供了中央仓库,能够自动下载构件。第7章介绍JSP的基础Servlet技术,并用Servlet实现生成JPEG图片、发送电子邮件、上传文件。第8章介绍监听器和过滤器。监听器(Listener)用于监听并处理Web应用中发生的各种事件。过滤器(Filter)可以截获HTTP的请求和响应。第9章介绍MVC设计模式,使用JSP Servlet JavaBean可实现MVC模式。第10章介绍JDBC连接MySQL数据库,除了介绍基本数据库操作之外,还介绍事务处理、存储过程、连接池和数据源等高级数据库技术。第11章介绍表达式语言EL,它可以用更简洁的语法读取属性值。第12章介绍JSP标准标签库JSTL,使用JSTL标签可以让页面更简洁并易于维护。第13章介绍一种持久层框架MyBatis,它是一个SQL映射框架(半自动ORM框架),而不是一个完整的ORM框架。MyBatis使用简单的XML映射器就可以免除了几乎所有的JDBC代码。第14章介绍Spring MVC,首先介绍控制反转和依赖注入的概念,接着介绍Spring MVC的概念和如何配置、接收多个请求参数、注入服务层组件、响应JSON、Spring和MyBatis的集成,以及使用AOP配置声明式数据库事务。
本书第6章使用Maven管理项目,之后的各章项目均使用Maven来管理JAR文件,学会用Maven管理项目至关重要。第10章JDBC访问数据库的内容从第4章就开始使用,需提前学习如何连接MySQL数据库和执行SELECT语句。第11章表达式语言EL和第12章标准标签库JSTL的内容可以只掌握类似${student.name}的EL和迭代标签。Spring MVC Spring IoC MyBatis的方案是当前Java Web后端开发主流的企业级解决方案,第13章持久层框架MyBatis和第14章Spring MVC需要重点掌握。
Java Web开发是一门实践性很强的课程。本书在讲解每个知识点的时候都给出了对应的代码。希望这些代码对读者的实际开发有帮助,也希望读者能够亲自动手编写和调试这些代码。交流可以促进学习,欢迎您写信给本书作者并加入课程交流群。
佟强2022年4月
|
|