正版二手书,发货前杀菌消毒,保证符合品相,不缺页,圆通发货(圆通不到走邮政),下单后24小时内发货。
¥ 14.24 1.4折 ¥ 99.8 八品
库存2件
作者刘京华
出版社清华大学
ISBN9787302209768
出版时间2010-01
装帧平装
开本16开
定价99.8元
货号1610804863900963328
上书时间2024-11-17
JSP、Servlet、Struts、Hibernate、AOP、WebWork、Spring、EJB……,好复杂,脑袋都大了!这么多技术到底都是干什么的?它们有什么联系呢?
近几年,Web程序发展异常迅猛,不仅出现了形形色色的购物网站、交友网站、银行自助系统等,还出现了像PalmOSWeb操作系统、可以替代Office等传统办公软件的GoogleDocument等功能强大的Web程序。这些主要得益于Web程序的瘦客户端的特点,即不需要客户安装任何软件,只需要使用浏览器即可完成操作。
Web程序可以非常简单,简单到只有几个HTML页面、几个图片,例如小型企业的介绍性网站等。也可以非常复杂,例如GoogleDocument网站,完全可以替代Word、Excel、PPT、PDF阅读器等;GoogleTalk也完全可以替代QQ、MSN等。实现这些Web程序所用到的技术也很多,最流行的有微软的.NET技术和Java相关技术。
Java相关技术作为最流行的开发技术之一,在Web开发领域也有着非常广泛的应用。但JavaWeb开发所涉及的技术比较繁杂,涉及了很多开发框架和工具,而且它们各有所长,并不完全是一个完善的体系。这对需要掌握JavaWeb开发的人来说,有一定的困难。笔者曾经任职于IBM中国研究院、诺基亚北京研发中心和用友软件等公司,有幸系统地学习了JavaWeb开发的方方面面的技术,并从事了大量的实际项目,积累了丰富的开发经验。为了帮助读者更好、更快速地掌握JavaWeb开发,笔者花费一年多的时间写作本书,把JavaWeb开发所涉及的方方面面的技术进行了归纳和总结,以最简单易懂的实例进行讲解。相信读者学习完本书内容,可以很全面地掌握JavaWeb开发所涉及的技术,也会搞清楚它们之间的联系,也相信读者一定会在本书的引导下极大地提升JavaWeb开发水平。
为了让读者对JavaWeb开发有一个整体认识,下面先对JavaWeb开发的背景知识、开发模式、开发框架和开发技术等做一个简单介绍,然后再介绍本书内容特色、知识体系、读者对象及本书学习建议等。
JavaWeb开发的背景知识
网站有静态、动态之分。静态网站的内容都是静态的、不可变的,网站发布后,无论是谁、什么时候访问,得到的内容都是一样的。静态网站一般不涉及编程,只需要编写几个HTML文件,连同图片等放到服务器上即可。静态网站一般不称为Web程序。
而动态网站的内容是可以变化的。动态网站一般配合数据库使用,数据存储在数据库中,通过网站程序动态添加,显示数据。而程序怎样添加、显示数据,便是本书要讲解的内容。
动态网站可以用多种语言编写,例如CGI、PHP、ASP、JSP(也是Java技术)、.NET、Perl等。其中应用最广的就是Java。因为Java是一种开源的、跨平台的、面向对象的编程语言,有着众多的免费资源和标准可供选择,例如Struts、Hibernate、Spring等。
JavaWeb开发的模式简介
因为JavaWeb的官方规范是由一个名为JCP的开放组织制定的,任何人都可以参与标准的制定,因此它的开发模式是走在时代前列的。JavaWeb提出了一些革命性的、颠覆传统的开发模式,例如分层模式(Model2模式)、AOP(面向切面编程)等。本书会详细介绍这些模式。
除了JCP制定的官方规范,还有一些广泛流行的非官方的模式和设计思想。大名鼎鼎的Struts、Spring、Hibernate等都是非官方的框架。这些非官方的开发模式甚至超越了官方提出的模式。
JavaWeb开发所涉及的框架及技术
JavaWeb编程包括两部分:服务器端执行的代码和客户端(即浏览器端)执行的代码。服务器端执行的代码即Java,用于生成HTML、CSS、JavaScript等浏览器端可以执行的代码。本书的JavaWeb编程指的就是服务器端编程。服务器端编程可用的技术有Servlet、JSP、Struts、Spring、Hibernate、EJB、WebService等。
浏览器端能够显示HTML、CSS代码,并能够执行JavaScript脚本程序。注意,JavaScript与Java并不是一种语言,语法不一样,运行的环境也不一样。对于一般的动态网站,可以不使用JavaScript。
JavaScript能够在浏览器中实现一些功能,例如数据校验等,还可以实现Ajax(也就是所说的Web2.0技术)等复杂功能。跟Java编程一样,JavaScript编程也积累了一些流行的技术,例如Prototype、JQuery、DOJO等。使用这些技术能够显著提高开发效率。本书的一些章节也会用到这些框架和技术。
需要注意的是,本书侧重于服务器端Java的编程,客户端JavaScript的编程也会涉及,但不是本书重点。
本书特色
本书的写作原则是:避免啰里啰唆,长篇大论;而是抽丝剥茧,层层深入,给读者提供大量高质量的代码供读者理解,那些无用的东西与本书无关,不作介绍。本书内容上的主要特色体现在以下几个方面。
1.囊括多种主流技术
本书第14~第34章详细讲解了多种主流的技术。例如Spring、Struts、Hibernate、WebWork、WebService、EJB3、JPA、SSH组合、SSH2组合等。95%的JavaWeb系统都采用这些技术构架程序,学会了这些技术,也就能胜任95%的JavaWeb开发工作。
2.丰富的原创实例
本书中含有丰富的原创实例,使用效果一目了然,一些实例是国内外教材上都少有的。例如,利用Filter实现给图像动态添加Logo、使用Listener实现单点登录及在线人数统计、利用Ajax实现带进度条上传文件、利用WebService构架自己的搜索引擎等。
3.详尽的工具讲解
本书详细讲解了SVN、Log4J、JFreeChart、iText等开发工具的使用。使用这些工具进行开发,可以极大地提高工作效率。
4.实战案例丰富
本书实战篇演示了书中所使用系统构架。例如,经典框架组合SSH(Struts+Spring+Hibernate)搭建论坛程序,比较新潮的组合SSJ(Struts2+Spring2+JPA)搭建博客系统。
5.标准的分层模式
本书使用接口编程模式与分层模式。书中后面的章节大都使用标准的MVC(Model-View-Control)三层模式,而Control层又分了两层:DAO层与Service层。这是比较科学的设计方式。
6.提供多媒体视频讲解
为了方便读者学习本书内容,本书配书光盘中赠送了400多分钟的JavaWeb开发学习视频,内容涉及常用开发工具的下载、安装和配置,同时还包括了Struts框架的核心用法。读者通过这些视频可以很直观地学习。
本书内容及体系结构
本书共分为9篇,所涉及的内容与知识体系介绍如下。
第1篇(第1~2章):入门篇。讲解JavaWeb开发的一些概念、搭建开发环境、并开发部署第一个JavaWeb程序。
第2篇(第3~7章):基础篇。讲解Servlet规范中的基础技术,包括Servlet、JSP、Cookie、Session、Filter、Listener等,并用详尽的实例演示其功能。本篇中有大量生动的演示实例。
第3篇(第8~13章):高级篇。讲解JSTL标签、自定义标签、资源国际化等高级特性,并介绍数据库的使用、JDBC编程、XML等相关知识。
第4篇(第14~19章):Struts框架篇。分别讲解Struts1.x、Struts2.x这两个截然不同的MVC框架,以及它们的高级应用,例如数据校验、文件上传、错误处理等。
第5篇(第20~25章):Hibernate框架篇。讲解Hibernate框架的原理,并使用@注解与XML两种方式演示Hibernate的常用配置,包括单边的及多边的一对多、多对一、多对多等关系,还包括简单的HQL查询、LeftJoin、RightJoin等复杂查询。
第6篇(第26~33章):Spring框架篇。讲解Spring的IoC、AOP特性,并逐一讲解Spring的Core、AOP、DAO、ORM、Web、MVC等6大模块,演示Spring与Struts1.x、Struts2.x、Hibernate等框架的结合,以及使用Spring定时器、发送HTML电子邮件等功能。
第7篇(第34~36章):EJB与Web服务篇。讲解JavaEE规范中的EJB3与JPA,以及WebService实现。使用JBOSS服务器作为重量级的EJB3容器。
第8篇(第37~40篇):工具篇。讲解JavaEE开发中常用的工具,例如SVN版本控制工具、Log4J日志记录工具、JFreeChart报表引擎工具、iText电子文档工具等。
第9篇(第41~42篇):实战篇。讲解综合项目案例开发。使用轻量级框架组合Spring+Struts+Hibernate框架构建一个论坛系统;使用重量级框架组合EJB3+JPA+Struts2构建一个分布式的电子宠物商店系统。
本书读者对象
*需要全面学习JavaWeb开发技术的人员
*广大Web开发人员
*Java程序员
*J2EE开发工程师
*希望提高系统设计水平的人员
*专业培训机构的学员
*软件开发项目经理
*需要一本案头必备查询手册的人员
本书学习建议
JavaWeb开发技术比较繁杂,所以本书所涉及的内容也多而繁杂。本书尽可能地覆盖了主流开发技术。然而不同的软件公司或个人所使用的开发技术也有所不同,所以针对不同的读者应该有不同的学习路径。
*Java初学者:没有Java语言基础的人能直接学习J2EE么?当然可以。要学J2EE,不一定非要惊动Java的基础语法,只要懂得开发原理,照样能设计出高效的程序。学习的时候要注意从第1章开始学起,不要跳跃,一步步打好基础。
*即将毕业的学生:大学时学过Java,能编写简单的程序,应该怎么学呢?可以先学习本书的第1篇,掌握JSP开发基础,然后根据企业需要,选择学习后面章节,做到对每个技术都有所涉猎。
*已经工作一两年的程序员:做过一些项目,还有必要学习本书内容吗?本书内容很丰富,可以作为参考手册使用,遇到问题可随时查阅。另外,本书涉及很多高级技术,如SVN、JfreeChart、iText等,在业余时间可以随便翻阅,增长见识。读者可以学习本书第8篇。
*想往系统构架师方面发展的人员:面对让人眼花缭乱的框架,却不知道选择什么好,担心系统的可扩展性太差,不能胜任海量用户访问。这些问题读者可以通过学习本书第6、7篇内容得到解决。
*项目经理:本书对项目经理有帮助吗?本书可以帮助项目经理搭建协同工作环境(SVU),把握项目的进度(Spring),决定先开发哪一层,后开发哪一层,先开发哪一个模块,后开发哪一个模块(MVC)。读者可以学习本书最后两个案例。
最后要说的是,本书书名确定为《JavaWeb整合开发王者归来》。感谢电影《指环王》第三部《王者归来》给我们提供的书名创意!当然这个书名不是为了炫耀作者的资历有多高,而是希望各位读者通过阅读本书,能很好地掌握JavaWeb开发技术,成为JavaWeb开发的“王者”。我将倍感欣慰!所学授之于人,不亦乐乎?
本书作者
刘京华,毕业于山东大学计算机科学与技术学院。先后任职于用友软件、IBM中国研究院、Symbian中国研究院等公司或机构。毕业后一直从事Java开发,有超过10年的Java开发经验。精通Java Web开发的各种技术与框架,对图形化开发、Eclipse插件开发等各种技术也有深入研究。曾经开发过大型的分布式Web系统。参与开发过中国移动、中国联通、中国电信的网关系统。参与开发过物流管理系统、供应链处理系统、联想公司的RMS系统、IBM的Smart SCOR和Nokia Carbide平台。
第1篇 入门篇
第1章 Java Web开发概述
1.1 Web相关概念
1.1.1 胖客户端程序RCP
1.1.2 瘦客户端程序TCP
1.1.3 B/S与C/S结构
1.2 Web开发背景知识
1.2.1 Web访问基本原理
1.2.2 HTTP超文本传输协议
1.2.3 Web浏览器
1.2.4 Web服务器
1.3 Web开发技术发展历史
1.3.1 传统的Web服务器模式开发
1.3.2 动态展现页面技术
1.3.3 CGI实现页面的动态生成
1.3.4 Java Servlet:改进的CGI
1.3.5 JSP:Servlet的模板
1.3.6 JSP基本原理
1.4 本章小结
第2章 搭建Java Web开发环境
2.1 Java Web开发环境概述
2.1.1 开发工具包JDK
2.1.2 集成开发环境IDE
2.1.3 Java服务器
2.2 下载安装Java环境
2.2.1 下载JDK
2.2.2 安装JDK
2.2.3 配置环境变量
2.3 下载解压Eclipse
2.3.1 下载Eclipse
2.3.2 解压Eclipse
2.4 下载MyEclipse插件
2.4.1 下载MyEclipse插件
2.4.2 安装MyEclipse插件
2.4.3 启动MyEclipse
2.5 下载Tomcat服务器
2.5.1 下载Tomcat
2.5.2 解压配置Tomcat
2.5.3 设置端口号
2.5.4 设置临时域名
2.5.5 设置虚拟主机
2.6 第一个Java Web程序
2.6.1 新建Java Web项目
2.6.2 新建Servlet
2.7 部署到Tomcat
2.7.1 手工部署
2.7.2 MyEclipse自动部署
2.7.3 导出为WAR包
2.7.4 在MyEclipse中启动Tomcat
2.7.5 调试程序debug模式
2.8 本章小结
第2篇 基础篇
第3章 深入Servlet技术
3.1 HTTP协议
3.1.1 HTTP协议简介
3.1.2 Telnet演示HTTP协议
3.1.3 GET方式查询
3.1.4 HTTP头数据
3.1.5 POST方式提交数据
3.1.6 其他访问方式
3.2 Servlet概述
3.2.1 Servlet工作流程
3.2.2 Servlet接口
3.2.3 Java Web目录结构
3.3 编写Servlet
3.3.1 实现Servlet
3.3.2 配置
3.3.3 配置
3.3.4 部署Web程序
3.4 请求与响应
3.4.1 获取request的变量
3.4.2 response生成图片验证码
3.5 读取web.xml参数
3.5.1 初始化参数(init-param)
3.5.2 上下文参数(context-param)
3.5.3 资源注射(@Resource)
3.5.4 使用JNDI获取资源
3.5.5 注射数据源
3.6 提交表单信息
3.6.1 GET实现搜索引擎
3.6.2 POST提交个人信息
3.6.3 上传文件客户端
3.6.4 上传文件服务器端
3.7 带进度条的文件上传
3.7.1 工作原理
3.7.2 上传进度条
3.7.3 上传监听器
3.7.4 监听上传进度
3.7.5 读取上传进度
3.7.6 显示上传进度
3.8 Servlet生命周期
3.8.1 Servlet生命周期
3.8.2 个税计算器
3.8.3 注解@PostConstruct与注解@PreDestroy
3.9 Servlet之间的跳转
3.9.1 转向(Forward)
3.9.2 重定向(Redirect)
3.9.3 自动刷新(Refresh)
3.10 Servlet与线程安全
3.10.1 一个实例
3.10.2 线程不安全
3.11 本章小结
第4章 深入JSP技术
4.1 JSP简介
4.1.1 JSP概述
4.1.2 显示问候语
4.1.3 JSP工作原理
4.1.4 JSP生命周期
4.2 JSP语法
4.2.1 JSP元素与模板数据
4.2.2 JSP脚本
4.2.3 JSP输出
4.2.4 JSP注释
4.2.5 JSP方法:查询IP地址
4.2.6 JSP的if语句
4.2.7 JSP的for循环
4.2.8 while循环:显示邮件列表
4.2.9 JSP的return语句
4.2.10 JSP的break语句
4.3 JSP指令
4.3.1 page指令
4.3.2 include指令
4.3.3 taglib指令
4.4 JSP行为
4.4.1 行为
4.4.2 使用Java Bean(POJO)
4.4.3 scope实现各种计数器
4.4.4 嵌入Applet
4.4.5 行为
4.4.6 行为
4.5 JSP隐藏对象
4.5.1 out输出流对象
4.5.2 request请求对象
4.5.3 response响应对象
4.5.4 config配置对象
4.5.5 session会话对象
4.5.6 application应用程序对象
4.5.7 page页面对象
4.5.8 pageContext页面上下文对象
4.5.9 exception异常对象
4.6 JSP配置
4.6.1 JSP配置
4.6.2 标签
4.7 EL表达式
4.7.1 EL表达式
4.7.2 隐藏对象
4.7.3 EL表达式运算
4.8 本章小结
第5章 会话跟踪
5.1 Cookie机制
5.1.1 什么是Cookie
5.1.2 记录用户访问次数
5.1.3 Cookie的不可跨域名性
5.1.4 Unicode编码:保存中文
5.1.5 BASE64编码:保存二进制图片
5.1.6 设置Cookie的所有属性
5.1.7 Cookie的有效期
5.1.8 Cookie的修改、删除
5.1.9 Cookie的域名
5.1.10 Cookie的路径
5.1.11 Cookie的安全属性
5.1.12 JavaScript操作Cookie
5.1.13 案例:永久登录
5.2 Session机制
5.2.1 什么是Session
5.2.2 实现用户登录
5.2.3 Session的生命周期
5.2.4 Session的有效期
5.2.5 Session的常用方法
5.2.6 Session对浏览器的要求
5.2.7 URL地址重写
5.2.8 Session中禁止使用Cookie
5.3 Session与Cookie的比较
5.3.1 从存取方式上比较
5.3.2 从隐私安全上比较
5.3.3 从有效期上比较
5.3.4 从对服务器的负担上比较
5.3.5 从浏览器支持上比较
5.3.6 从跨域名上比较
5.4 本章小结
第6章 过滤器Filter
6.1 Filter概述
6.1.1 Filter概述
6.1.2 Filter接口
6.1.3 Filter配置
6.2 Filter经典案例
6.2.1 防盗链Filter
6.2.2 字符编码Filter
6.2.3 日志记录Filter
6.2.4 异常捕捉Filter
6.2.5
— 没有更多了 —
以下为对购买帮助不大的评价