第1章Web开发技术概述1
1.1Web技术的发展1
1.1.1静态文档1
1.1.2动态网页1
1.1.3Web 2.02
1.2常见应用系统的体系结构2
1.2.1C/S结构2
1.2.2B/S结构3
1.3Web服务器端开发技术4
1.3.1ASP.NET技术4
1.3.2PHP技术5
1.3.3JSP技术5
1.4Web客户端开发技术5
1.4.1CSS6
1.4.2JavaScript6
1.4.3XML6
1.4.4AJAX6
1.4.5DOM和DHTML7
1.4.6HTML 57
1.5用MyEclipse开发Web应用程序7
1.5.1创建MyEclipse Web项目8
1.5.2创建文件8
1.5.3配置Tomcat应用程序服务器9
1.5.4部署和测试Web应用程序9
1.6对Web开发初学者的建议11
第2章JSP基本语法13
2.1JSP中的HTML代码13
2.1.1HTML常用标签13
2.1.2HTML的表单18
2.2JSP简介21
2.3JSP脚本及注释21
2.3.1JSP的声明语句21
2.3.2JSP的可执行脚本22
2.3.3JSP的表达式22
2.3.4JSP的注释语句23
2.4JSP的操作指令24
2.4.1page指令24
2.4.2include指令25
2.4.3taglib指令27
2.5JSP的动作标签27
2.5.1<jsp:include>动作标签27
2.5.2<jsp:forward>动作标签28
2.5.3<jsp:param>动作标签28
2.6JSP的内置对象29
2.6.1out对象29
2.6.2request对象30
2.6.3response对象33
2.6.4session对象35
2.6.5application对象37
2.6.6cookie39
同步训练41
第3章深入JSP42
3.1JavaBean42
3.1.1编写JavaBean42
3.1.2使用JavaBean43
3.2Servlet46
3.2.1Servlet概念46
3.2.2Servlet生命周期47
3.2.3Servlet编程接口48
3.2.4编写和部署Servlet49
3.2.5Servlet过滤器51
3.3JDBC53
3.3.1JDBC工作原理53
3.3.2JDBC接口54
3.3.3连接数据库58
3.3.4数据库连接池59
3.4JSP MVC编程62
3.4.1MVC设计思想62
3.4.2MVC模式实现63
3.5JSP的错误处理67
3.6案例1: 用JSP编写留言板程序69
3.6.1功能分析69
3.6.2数据库结构70
3.6.3实现PO类71
3.6.4DAO接口设计71
3.6.5数据库连接和DAO实现类72
3.6.6页面设计76
同步训练83
第4章Struts 2基础84
4.1认识Struts 284
4.2创建Struts 2应用程序84
4.2.1Struts 2开发步骤84
4.2.2扩展ActionSupport类89
4.3接收用户输入90
4.3.1属性驱动90
4.3.2模型驱动92
4.3.3实现ModelDriven93
4.4跟踪用户状态94
4.4.1利用非IoC方式跟踪用户状态94
4.4.2利用IoC方式跟踪用户状态98
4.5MyEclipse提供的Struts 2添加向导99
同步训练101
第5章深入Struts 2102
5.1Struts 2的工作原理102
5.2Struts 2的配置文件104
5.2.1Struts 2的配置文件介绍104
5.2.2struts.xml的结构104
5.2.3constant(常量)配置105
5.2.4package(包)配置106
5.2.5namespace(命名空间)配置107
5.2.6include(包含)配置108
5.3配置Action109
5.3.1使用method属性109
5.3.2动态方法调用110
5.3.3使用通配符111
5.3.4利用静态参数给Action传递值112
5.3.5默认的Action113
5.4配置result113
5.4.1result映射与结果类型113
5.4.2dispatcher类型114
5.4.3redirect类型116
5.4.4redirectAction类型118
5.4.5chain类型119
5.4.6plainText类型120
5.4.7全局result121
5.5异常映射122
5.6案例2: 用Struts 2改写留言板的数据模型124
同步训练127
第6章Struts 2的标签库128
6.1OGNL表达式128
6.1.1ActionContext和Value Stack128
6.1.2访问Value Stack中的元素129
6.1.3访问Stack Context中的对象129
6.1.4访问静态属性和静态方法130
6.1.5访问集合元素130
6.1.6OGNL中的三个重要符号131
6.2标签库132
6.2.1使用标签库的好处132
6.2.2Struts 2的标签库133
6.3数据标签133
6.3.1debug标签133
6.3.2property标签133
6.3.3param标签134
6.3.4action标签135
6.3.5bean标签136
6.3.6set标签137
6.3.7push标签138
6.3.8url与a标签139
6.3.9include标签141
6.3.10date标签142
6.4控制标签143
6.4.1if、elseif和else标签143
6.4.2iterator标签144
6.4.3append标签和merge标签147
6.4.4generator标签148
6.4.5subset标签150
6.4.6sort标签152
6.5表单标签153
6.5.1表单标签的公共属性153
6.5.2form标签154
6.5.3textfield、 password和hidden标签155
6.5.4textarea标签155
6.5.5reset标签156
6.5.6submit标签156
6.5.7checkbox标签157
6.5.8checkboxlist 和radio标签158
6.5.9select标签159
6.5.10optgroup标签161
6.5.11combobox标签162
6.5.12updownselect标签162
6.5.13doubleselect标签163
6.5.14optiontransferselect标签165
6.5.15其他UI标签167
6.6actionerror、actionmessage和fielderror标签167
6.7模板和主题169
6.8案例3: 用Struts 2标签库改写留言板的视图171
同步训练174
第7章拦截器175
7.1Struts 2拦截器175
7.2自定义拦截器176
7.3拦截器的配置和使用178
7.4PreResultListener接口182
7.5案例4: 利用拦截器为留言板增加身份验证功能183
同步训练185
第8章文件的上传和下载186
8.1文件的上传186
8.1.1文件上传概述186
8.1.2限制上传文件长度和内容类型187
8.1.3上传单个文件188
8.1.4上传多个文件190
8.2文件的下载192
8.2.1文件下载概述192
8.2.2stream结果类型192
8.2.3文件下载实例193
8.3案例5: 为留言板程序添加附件功能195
8.3.1为留言板添加上传附件功能195
8.3.2为留言板添加下载附件功能198
同步训练200
第9章输入验证201
9.1输入验证概述201
9.2验证配置文件的结构202
9.3Struts 2内置的验证器203
9.3.1required验证器204
9.3.2requiredstring验证器204
9.3.3int、long和short验证器205
9.3.4double验证器206
9.3.5date验证器207
9.3.6expression 验证器207
9.3.7fieldexpression验证器208
9.3.8regex验证器209
9.3.9email验证器209
9.3.10url验证器210
9.3.11conversion验证器211
9.3.12stringlength验证器211
9.3.13visitor验证器212
9.3.14conditionalvisitor验证器215
9.4短路验证216
9.5手工验证217
9.6案例6: 为留言板的注册程序添加输入验证218
9.6.1自定义字段验证器类218
9.6.2编写验证文件220
同步训练221
第10章消息处理与国际化222
10.1国际化和本地化222
10.1.1国际化概述222
10.1.2Java对国际化的支持222
10.1.3资源的参数化225
10.2Struts 2对国际化的支持226
10.3Struts 2访问国际化资源的方式228
10.3.1在Action中访问国际化资源228
10.3.2在JSP页面中访问国际化资源229
10.3.3在表单标签的属性中访问国际化资源231
10.4案例7: 为留言板程序添加国际化支持232
10.4.1编写资源文件232
10.4.2JSP页面的国际化233
10.4.3校验信息的国际化235
同步训练238
第11章类型转换239
11.1类型转换概述239
11.1.1Struts 2内置的类型转换器239
11.1.2类型转换时装配对象的原则241
11.2复杂对象类型的转换241
11.2.1数组和List的类型转换241
11.2.2Map的类型转换245
11.3自定义类型转换器248
11.3.1开发自定义类型转换器248
11.3.2配置类型转换器252
11.4类型转换中的错误处理253
同步训练254
第12章注解255
12.1注解概述255
12.2约定256
12.3利用注解代替struts.xml257
12.3.1@Action和@Actions257
12.3.2@Result和@Results259
12.3.3@Namespace260
12.3.4@ResultPath注解261
12.3.5@ParentPackage261
12.3.6@InterceptorRef和@InterceptorRefs注解262
12.3.7@ExceptionMapping和@ExceptionMappings注解262
12.4案例8: 利用注解配置留言板程序263
同步训练268
第13章整合JQuery269
13.1JQuery语法269
13.1.1JQuery简介269
13.1.2JQuery选择器269
13.1.3常用的JQuery属性方法271
13.1.4常用的JQuery事件方法271
13.2利用JQuery实现客户端验证274
13.3利用JQuery实现AJAX277
13.3.1JSON277
13.3.2JQuery的AJAX方法278
13.3.3调用Action返回JSON字符串280
13.3.4调用Action返回List282
同步训练284
附录AMyEclipse常用的快捷键285附录BEL表达式286
参考文献289
