本书详细介绍了以JSP、AJAX、Struts、Hibernate相结合的轻量级Java EE应用开发技术。针对读者的不同学习阶段,共分基础篇、进阶篇、提高篇与实践篇四大部分循序渐进地进行讲解。\r\n 第1-3章为基础篇,重点讲解基于开源架构Java EE应用开发的优势及其开发运行环境的安装配置,同时对Java Web应用的客户端编程也做了简单介绍;第4-7章为进阶篇,重点讲解JSP 2.0与Web 2.0核心技术AJAX;第8-14章为提高篇,重点讲解经典MVC框架Struts与Java EE轻量级持久化框架Hibernate;第15-16章为实践篇,以“电子商城系统”为例,综合应用前面三大部分14章的知识点,环环相扣,手把手带领读者步入Java EE应用开发的殿堂。最后为满足商业软件开发人员的实际需要,特对Java EE应用的安装打包工具InstallAnywhere也进行了实例讲解。\r\n 本书为轻量级Java EE应用开发人员提供一整套实用的主流开发技术,融入了作者多年的Java EE应用开发经验。任何知识点均配以实例进行讲解,每个实例提供同步配套视频教程,大大缩短了读者的学习周期,降低了学习难度。随书配套光盘除包含长达200小时的视频教程外,还提供了书中范例的源程序。\r\n 本书语言深入浅出,通俗易懂。对于轻量级Java EE应用开发的新手而言,不失为一本好的入门教材,内容既实用又全面,辅以实例视频教程,使读者轻松掌握所学知识;对于行家来说,本书也是一本难得的参考手册。
第1篇 基础篇\r\n 第1章 Java Web应用开发技术选用策略 \r\n 第2章 开发运行环境的安装与配置 \r\n 2.1 安装与配置JDK1.5 \r\n 2.2 安装Web服务器Tomcat5.5 \r\n 2.3 Tomcat5.5的基本配置 \r\n 2.3.1 通过server.xml配置Tomcat \r\n 2.3.2 Web应用的目录结构 \r\n 2.3.3 web.xml配置详解 \r\n 2.3.4 如何修改Tomcat的默认端口 \r\n 2.3.5 如何配置虚拟主机 \r\n 2.3.6 如何部署Web应用\r\n 2.4 安装数据库服务器MySQL5.0 \r\n 2.5 安装Eclipse3.2.2 + MyEclipse5.5.1 集成开发环境 \r\n 2.6 小结 \r\n 第3章 Java Web应用客户端编程 \r\n 3.1 JavaScript语言概述 \r\n 3.1.1 什么是JavaScript \r\n 3.1.2 JavaScript和Java的区别 \r\n 3.1.3 编写第一个JavaScript程序 \r\n 3.2 JavaScript语法基础 \r\n 3.2.1 基本数据类型 \r\n 3.2.2 常量 \r\n 3.2.3 变量 \r\n 3.2.4 表达式和运算符 \r\n 3.2.5 程序流程控制 \r\n 3.2.6 函数 \r\n 3.2.7 事件驱动及事件处理 \r\n 3.3 基于对象的JavaScript \r\n 3.3.1 对象的基础知识 \r\n 3.3.2 常用对象的属性和方法 \r\n 3.4 文档对象(document) \r\n 3.5 窗口对象(window) \r\n 3.6 表单对象(form) \r\n 3.7 框架对象(frame)及其他对象 \r\n 3.7.1 frame对象 \r\n 3.7.2 history对象 \r\n 3.7.3 navigator对象 \r\n 3.7.4 select对象 \r\n 3.7.5 iframe对象 \r\n 3.8 实用综合实例 \r\n 3.8.1 表单验证实例 \r\n 3.8.2 日期选择器 \r\n 3.8.3 地址选择器\r\n 3.8.4 树型菜单 \r\n 3.8.5 卷帘菜单 \r\n 3.8.6 框架应用实例 \r\n 3.8.7 经典实用代码集锦 \r\n 3.9 小结 \r\n第2篇 进阶篇\r\n 第4章 初识Java EE展示层组件JSP 2.0 \r\n 4.1 Servlet2.4简介 \r\n 4.1.1 Servlet概述 \r\n 4.1.2 Servlet的生命周期及请求响应时序 \r\n 4.1.3 HttpServlet相关对象的方法列表 \r\n 4.1.4 创建HttpServlet实例 \r\n 4.2 JSP语法 \r\n 4.2.1 HTML注释 \r\n 4.2.2 隐藏注释 \r\n 4.2.3 声明 \r\n 4.2.4 表达式 \r\n 4.2.5 代码段 \r\n 4.2.6 JSP指令 \r\n 4.2.7 JSP行为标签 \r\n 4.3 JSP隐含对象 \r\n 4.3.1 page对象 \r\n 4.3.2 config对象 \r\n 4.3.3 out对象 \r\n 4.3.4 request对象 \r\n 4.3.5 response对象 \r\n 4.3.6 Session对象 \r\n 4.3.7 application对象 \r\n 4.3.8 pageContext对象 \r\n 4.3.9 exception对象 \r\n 4.4 小结 \r\n 第5章 JSP 2.0在Java EE中的典型应用 \r\n 5.1 JSP与JDBC \r\n 5.1.1 JDBC简介 \r\n 5.1.2 JDBC访问数据库的基本步骤 \r\n 5.1.3 JDBC数据源和连接池 \r\n 5.1.4 综合实例(购物车) \r\n 5.2 JSP与JavaBean \r\n 5.2.1 JavaBean简介 \r\n 5.2.2 在JSP中如何使用JavaBean \r\n 5.2.3 用JavaBean封装数据库操作 \r\n 5.2.4 用JavaBean实现用户登录验证 \r\n 5.3 JSP与JavaMail \r\n 5.3.1 电子邮件工作原理 \r\n 5.3.2 相关协议介绍 \r\n 5.3.3 JavaMail简介 \r\n 5.3.4 使用JavaMail发送文本型邮件 \r\n 5.3.5 使用JavaMail发送HTML型邮件 \r\n 5.3.6 使用JavaMail发送带附件的邮件 \r\n 5.3.7 使用JavaMail收取邮件 \r\n 5.4 JSP与在线编辑器FCKeditor \r\n 5.5 JSP与报表利器JasperReports \r\n 5.6 Log4j实现日志操作 \r\n 5.6.1 Log4j的组成 \r\n 5.6.2 Log4j的配置文件 \r\n 5.6.3 Log4j使用方法 \r\n 5.6.4 Log4j的使用实例 \r\n 5.6.5 Log4j在Web应用中的推荐配置方法 \r\n 5.7 JSP与jspSmartUpload \r\n 5.7.1 File类 \r\n 5.7.2 Files类 \r\n 5.7.3 Request类 \r\n 5.7.4 SmartUpload类 \r\n 5.7.5 应用实例 \r\n 5.8 JSP与XML \r\n 5.8.1 XML简介 \r\n 5.8.2 DOM4J简介 \r\n 5.8.3 使用DOM4J解析XML \r\n 5.8.4 使用DOM4J创建XML \r\n 5.8.5 使用DOM4J修改XML \r\n 5.9 小结 \r\n 第6章 JSP 2.0在Java EE中的高级应用 \r\n 6.1 过滤器Filter \r\n 6.1.1 Filter简介 \r\n 6.1.2 Filter配置说明 \r\n 6.1.3 使用Filter实现编码过滤器 \r\n 6.1.4 使用Filter实现计时过滤器 \r\n 6.2 监听器Listener \r\n 6.2.1 Listener简介 \r\n 6.2.2 Listener的一般使用步骤 \r\n 6.2.3 Listener的应用实例 \r\n 6.3 自定义JSP标签 \r\n 6.3.1 TagSupport类 \r\n 6.3.2 BodyTagSupport类 \r\n 6.3.3 标签库描述文件(TLD) \r\n 6.3.4 自定义JSP标签的一般步骤 \r\n 6.3.5 自定义JSP标签的应用实例 \r\n 6.4 JSTL标签库 \r\n 6.4.1 EL简介 \r\n 6.4.2 核心标签库 \r\n 6.4.3 I18N标签库 \r\n 6.4.4 SQL标签库 \r\n 6.4.5 XML标签库 \r\n 6.4.6 函数标签库 \r\n 6.5 小结 \r\n 第7章 Java EE应用中的异步通信技术——AJAX \r\n 7.1 AJAX基础知识 \r\n 7.1.1 XMLHttpRequest 对象 \r\n 7.1.2 JavaScript编程 \r\n 7.1.3 文档对象模型DOM \r\n 7.2 AJAX应用实例 \r\n 7.2.1 实例一:会员注册唯一性检查 \r\n 7.2.2 实例二:动态更新下拉列表 \r\n 7.2.3 实例三:刷新页面局部内容 \r\n 7.2.4 实例四:交互式电子相册 \r\n 7.2.5 实例五:访问Web服务 \r\n 7.2.6 实例六:创建工具提示 \r\n 7.3 JSON /JSON-RPC组件的使用 \r\n 7.3.1 使用JSON组件 \r\n 7.3.2 使用JSON-RPC组件 \r\n 7.4 Jsp AjaxTags组件的使用 \r\n 7.4.1 Auto-Complete标签应用实例 \r\n 7.4.2 Callout标签应用实例 \r\n 7.4.3 Form Update标签应用实例 \r\n 7.4.4 HtmlContent标签应用实例 \r\n 7.4.5 Portlet标签应用实例 \r\n 7.4.6 Select/Dropdown标签应用实例 \r\n 7.4.7 Tab Panel标签应用实例 \r\n 7.4.8 AJAX DisplayTag标签应用实例 \r\n 7.5 小结 \r\n第3篇 提高篇\r\n 第8章 初识Java EE经典MVC框架Struts \r\n 8.1 MVC概述 \r\n 8.2 Struts概述 \r\n 8.2.1 Struts实现MVC \r\n 8.2.2 Struts的组成 \r\n 8.2.3 Struts的工作流程 \r\n 8.2.4 用MyEclipse开发Struts应用的一般步骤 \r\n 8.2.5 体验Struts(一个简单的应用实例) \r\n 8.3 Struts的配置 \r\n 8.3.1 web.xml配置文件 \r\n 8.3.2 struts-config.xml配置文件 \r\n 8.3.3 应用实例(会员管理) \r\n 8.4 小结 \r\n 第9章 了解Struts的MVC组件 \r\n 9.1 Struts控制器组件 \r\n 9.1.1 使用ActionServlet类 \r\n 9.1.2 使用Action类 \r\n 9.1.3 使用DispatchAction类 \r\n 9.1.4 使用LookupDispatchAction类 \r\n 9.1.5 使用ActionForward类 \r\n 9.1.6 使用ActionMapping类 \r\n 9.2 Struts模型组件 \r\n 9.2.1 概念模型 \r\n 9.2.2 设计模型 \r\n 9.2.3 业务对象BO \r\n 9.2.4 对象持久化 \r\n 9.2.5 数据访问对象DAO \r\n 9.2.6 应用实例(客户关系管理) \r\n 9.3 Struts视图组件 \r\n 9.3.1 数据传输对象(DTO)ActionForm Bean \r\n 9.3.2 ActionError和ActionMessage \r\n 9.3.3 DisplayTag标签库的应用 \r\n 9.3.4 实例解析Struts-Menu菜单框架 \r\n 9.4 小结 \r\n 第10章 Struts的高级应用 \r\n 10.1 Struts的国际化支持 \r\n 10.1.1 Web应用的中文本地化 \r\n 10.1.2 Struts应用的国际化 \r\n 10.1.3 Struts国际化应用实例 \r\n 10.2 Validator 验证框架 \r\n 10.2.1 Validator框架简介 \r\n 10.2.2 为Struts应用配置Validator \r\n 10.2.3 Validator中JavaScript的应用 \r\n 10.2.4 Validator应用实例 \r\n 10.3 多数据源的应用 \r\n 10.4 多消息源的应用 \r\n 10.5 多应用模块的配置使用 \r\n 10.6 Log4j在Struts中的应用 \r\n 10.7 测试Struts应用 \r\n 10.8 小结 \r\n 第11章 Struts专用标签库详解 \r\n 11.1 实例讲解Struts HTML标签库 \r\n 11.1.1 标签详解 \r\n 11.1.2 标签详解 \r\n 11.1.3 标签详解 \r\n 11.1.4 标签详解 \r\n 11.1.5 标签详解 \r\n 11.1.6 标签详解 \r\n 11.1.7 标签详解 \r\n 11.1.8 标签详解 \r\n 11.1.9 标签详解 \r\n 11.1.10 标签详解 \r\n 11.1.11 标签详解 \r\n 11.1.12 标签详解 \r\n 11.1.13 标签详解 \r\n 11.1.14 标签详解 \r\n 11.1.15 标签详解 \r\n 11.1.16 标签详解 \r\n 11.1.17 标签详解 \r\n 11.1.18 标签详解 \r\n 11.1.19 标签详解 \r\n 11.1.20 标签详解 \r\n 11.1.21 标签详解 \r\n 11.1.22 标签详解 \r\n 11.1.23 标签详解 \r\n 11.2 实例讲解Struts Bean标签库 \r\n 11.2.1 标签详解 \r\n 11.2.2 标签详解\r\n 11.2.3 标签详解 \r\n 11.2.4 标签详解 \r\n 11.2.5 标签详解 \r\n 11.2.6 标签详解 \r\n 11.2.7 标签详解 \r\n 11.2.8 标签详解 \r\n 11.2.9 标签详解 \r\n 11.2.10 标签详解 \r\n 11.2.11 标签详解 \r\n 11.3 实例讲解Struts Logic标签库 \r\n 11.3.1 与比较运算相关的Logic标签详解 \r\n 11.3.2 与字符串匹配相关的Logic标签详解 \r\n 11.3.3 与标签详解 \r\n 11.3.4 与标签详解 \r\n 11.3.5 与标签详解 \r\n 11.3.6 标签详解 \r\n 11.3.7 标签详解 \r\n 11.3.8 标签详解 \r\n 11.4 实例讲解Struts nested标签库 \r\n 11.4.1 与其他Struts标签库相同功能的标签 \r\n 11.4.2 与标签详解 \r\n 11.4.3 标签详解 \r\n 11.5 小结 \r\n 第12章 初识Java EE轻量级持久化框架Hibernate \r\n 12.1 ORM简介 \r\n 12.1.1 持久化与持久层 \r\n 12.1.2 JDBC劣势 \r\n 12.1.3 实体域模型与关系数据模型 \r\n 12.1.4 ORM中间件 \r\n 12.2 Hibernate简介 \r\n 12.2.1 Hibernate体系结构 \r\n 12.2.2 Hibernate API简介 \r\n 12.2.3 配置Hibernate \r\n 12.2.4 Hibernate的映射配置文件 \r\n 12.2.5 体验Hibernate(会员管理) \r\n 12.3 Hibernate的映射机制 \r\n 12.3.1 Hibernate的基本映射数据类型 \r\n 12.3.2 Hibernate的主键映射 \r\n 12.3.3 Hibernate的实体映射 \r\n 12.3.4 映射一对一关联关系 \r\n 12.3.5 映射多对一单向关联关系 \r\n 12.3.6 映射一对多双向关联关系 \r\n 12.3.7 映射一对多双向自身关联关系 \r\n 12.3.8 映射多对多单向关联关系 \r\n 12.3.9 映射多对多双向关联关系 \r\n 12.3.10 映射组成关系 \r\n 12.3.11 映射继承关系 \r\n 12.3.12 Hibernate的集合映射 \r\n 12.4 小结 \r\n 第13章 Hibernate检索与操作持久化对象 \r\n 13.1 操作持久化对象的常用方法介绍 \r\n 13.1.1 使用Session的beginTransaction()方法 \r\n 13.1.2 使用Session的close()方法 \r\n 13.1.3 使用Session的connection()方法 \r\n 13.1.4 使用Session的delete()方法 \r\n 13.1.5 使用Session的get()方法 \r\n 13.1.6 使用Session的load()方法 \r\n 13.1.7 使用Session的save()方法 \r\n 13.1.8 使用Session的update()方法 \r\n 13.1.9 使用Session的saveOrUpdate()方法 \r\n 13.1.10 使用Hibernate的isInitialized()与initialize()方法 \r\n 13.1.11 持久化对象间的级联操作 \r\n 13.2 Hibernate的检索策略 \r\n 13.2.1 立即检索 \r\n 13.2.2 延迟检索 \r\n 13.2.3 迫切左外连接检索 \r\n 13.3 HQL查询方式 \r\n 13.3.1 基本查询 \r\n 13.3.2 条件查询 \r\n 13.3.3 分页查询 \r\n 13.3.4 连接查询 \r\n 13.3.5 子查询 \r\n 13.3.6 动态实例化查询结果 \r\n 13.4 QBC查询方式 \r\n 13.4.1 基本查询 \r\n 13.4.2 QBE查询 \r\n 13.4.3 分页查询 \r\n 13.4.4 复合查询 \r\n 13.4.5 离线查询 \r\n 13.5 本地SQL查询 \r\n 13.6 小结 \r\n 第14章 Hibernate的高级话题 \r\n 14.1 Hibernate的批量处理 \r\n 14.1.1 批量插入 \r\n 14.1.2 批量更新 \r\n 14.1.3 批量删除 \r\n 14.2 Hibernate的事务管理 \r\n 14.2.1 事务边界声明 \r\n 14.2.2 并发控制 \r\n 14.2.3 悲观锁 \r\n 14.2.4 乐观锁 \r\n 14.3 Hibernate的缓存机制 \r\n 14.3.1 Hibernate的缓存分类 \r\n 14.3.2 Hibernate的缓存范围 \r\n 14.3.3 Hibernate的缓存管理 \r\n 14.3.4 Hibernate二级缓存的并发访问策略 \r\n 14.3.5 Hibernate的二级缓存配置 \r\n 14.4 Hibernate应用的性能优化 \r\n 14.5 多数据源的应用 \r\n 14.6 JDBC的应用 \r\n 14.7 Hibernate调用存储过程 \r\n 14.8 XML数据持久化 \r\n 14.9 小结 \r\n第4篇 实践篇\r\n 第15章 综合实例:电子商城系统 \r\n 15.1 需求分析 \r\n 15.2 功能设计\r\n 15.3 数据库设计 \r\n 15.4 架构设计 \r\n 15.4.1 基于MVC的分层设计 \r\n 15.4.2 常量类Constants设计 \r\n 15.4.3 带日志功能的基类BaseLog设计 \r\n 15.4.4 带日志功能的基类BaseAction设计 \r\n 15.4.5 消息资源文件ApplicationResources.properties设计 \r\n 15.4.6 Java EE Web应用配置文件web.xml \r\n 15.4.7 Struts配置文件Struts-config.xml \r\n 15.4.8 Hibernate配置文件hibernate.cfg.xml \r\n 15.4.9 工程目录结构 \r\n 15.5 顾客注册、登录模块 \r\n 15.5.1 展示层JSP实现 \r\n 15.5.2 控制层Struts实现 \r\n 15.5.3 持久层Hibernate实现 \r\n 15.6 商品及特价商品检索、浏览模块 \r\n 15.6.1 展示层JSP实现 \r\n 15.6.2 控制层Struts实现 \r\n 15.6.3 持久层Hibernate实现 \r\n 15.7 购物车模块 \r\n 15.7.1 展示层JSP实现 \r\n 15.7.2 控制层Struts实现 \r\n 15.7.3 持久层Hibernate实现 \r\n 15.8 顾客反馈信息、留言模块 \r\n 15.8.1 展示层JSP实现 \r\n 15.8.2 控制层Struts实现 \r\n 15.8.3 持久层Hibernate实现 \r\n 15.9 后台登录模块 \r\n 15.9.1 展示层JSP实现 \r\n 15.9.2 控制层Struts实现 \r\n 15.9.3 持久层Hibernate实现 \r\n 15.10 商品及特价商品管理模块 \r\n 15.10.1 展示层JSP实现 \r\n 15.10.2 控制层Struts实现 \r\n 15.10.3 持久层Hibernate实现 \r\n 15.11 订单管理模块 \r\n 15.11.1 展示层JSP实现 \r\n 15.11.2 控制层Struts实现 \r\n 15.11.3 持久层Hibernate实现 \r\n 15.12 会员管理模块 \r\n 15.12.1 展示层JSP实现 \r\n 15.12.2 控制层Struts实现 \r\n 15.12.3 持久层Hibernate实现 \r\n 15.13 系统用户管理模块 \r\n 15.13.1 展示层JSP实现 \r\n 15.13.2 控制层Struts实现 \r\n 15.13.3 持久层Hibernate实现 \r\n 15.14 小结 \r\n 第16章 安装打包利器—InstallAnywhere7.1 \r\n 16.1 基本概念说明 \r\n 16.2 常用Action介绍\r\n 16.3 常用Rule介绍 \r\n 16.4 Java Application安装包的一般制作流程 \r\n 16.5 Java EE Application安装包的一般制作流程 \r\n 16.6 小结
随着因特网技术的迅猛发展与Java语言的不断完善优化,越来越多的Web程序员义无反顾地踏上了Java Web应用开发之路。最原始的Java Web程序全部使用JSP实现,JSP页面既包含HTML标签,又包含Java业务逻辑代码,使得整个JSP页面臃肿而难于维护。Sun公司为规范Java Web应用的开发,相继推出Model1和Model2模式。在Model1模式中引入JavaBean技术,使用JavaBean封装业务逻辑代码,使业务逻辑代码与JSP页面有效分离,对于流程控制JavaBean却无能为力,直到Model2模式引入Servlet技术才真正实现视图层、模型层与控制层的彻底分离,从此,Java Web应用开发进入到一个规范化的时代。Struts作为Model2模式的经典实现,具有组件的模块化、灵活性和重用性的优点,同时简化了基于MVC的Java Web应用程序的开发。
时代在发展,技术在进步,对各种复杂数据及业务逻辑的处理要求也在不断提高, MVC三层模型已不能完成满足高性能、低耦合框架结构的分层需求,此时,引入持久层概念,用于封装底层数据的持久化与访问操作。在众多商用或开源的持久层中间件中,Hibernate由于其功能与性能的优越而成为Struts框架最理想的底层数据交换组件。
伴随Java Web开发技术不断规范与完善的同时,整个因特网经历了从Web 1.0到Web 2.0的重大变革。在Web 1.0时代,用户主要通过浏览器获取信息,单纯充当网站内容的消费者。Web 2.0则更注重用户的交互与体验,用户既是消息者又是生产者,让用户在因特网中找到了自由发挥的空间。
Blogger Don在他的《Web2.0概念诠释》一文中提到“Web 2.0是以 Flickr、Craigslist、Linkedin、Tribes、Ryze、Friendster、Del.icio.us、43Things.com等网站为代表,以Blog、TAG、SNS、RSS、WIKI等社会软件的应用为核心,依据六度分隔、XML、AJAX等新理论和技术实现的因特网新一代模式”,显然,AJAX是Web 2.0的核心之一,AJAX是“Asynchronous JavaScript and XML”(异步JavaScript和XML)的缩写,是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间异步传送或接收数据的技术。
以JSP技术为基础,整合Struts、Hibernate与AJAX技术开发Java Web应用已成为主流的Java Web开发技术体系。
本书主要内容及其组织结构
本书详细介绍了以JSP、AJAX、Struts、Hibernate相结合的Java Web应用开发技术。针对读者的不同学习阶段,共分基础篇、进阶篇、提高篇与实践篇四大部分循序渐进地进行讲解。
基础篇
第1~3章为基础篇,重点讲解基于开源架构Java EE应用开发的优势及其开发运行环境的安装配置,同时对Java Web应用的客户端编程也做了简单介绍。
基础篇的主要内容包括:
Java Web应用开发技术选用策略
开发运行环境的安装与配置
Java Web应用客户端编程
进阶篇
第4~7章为进阶篇,重点讲解JSP 2.0与Web 2.0核心技术AJAX。
进阶篇的主要内容包括:
初识Java EE展示层组件JSP 2.0
JSP 2.0在Java EE中的典型应用
JSP 2.0在Java EE中的高级应用
Java EE应用中的异步通信技术AJAX
提高篇
第8~14章为提高篇,重点讲解经典MVC框架Struts与Java EE轻量级持久化框架Hibernate。
提高篇的主要内容包括:
初识Java EE经典MVC框架Struts
了解Struts的MVC组件
Struts的高级应用
Struts专用标签库详解
初识Java EE轻量级持久化框架Hibernate
Hibernate检索与操作持久化对象
Hibernate的高级话题
实践篇
第15~16章为实践篇,以“电子商城系统”为例,综合应用前面三大部分14章的知识点,环环相扣,手把手带领读者步入Java EE应用开发的殿堂。最后为满足商业软件开发人员的实际需要,特对Java EE应用的安装打包工具InstallAnywhere也进行了实例讲解。
实践篇的主要内容包括:
综合实例:电子商城系统
安装打包利器——InstallAnywhere 7.1
无封面