深入分析java web推送技术技术内幕怎么样

&深入分析Java Web技术内幕
秒后自动跳转到登录页
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
深入分析Java Web技术内幕
上传时间:
技术分类:
资源评价:
(13位用户参与评价)
已被下载&321&次
围绕JavaWeb相关技术从三方面全面深入地进行阐述。首先介绍前端知识,主要介绍JavaWeb开发中涉及的一些基本知识,包括Web请求过程、HTTP协议、DNS技术和CDN技术。其次深入介绍Java技术,包括I/O技术、中文编码问题、Javac编译原理、class文件结构解析、ClassLoader工作机制及JVM的内存管理等。最后介绍Java服务端技术,主要包括Servlet、Session与Cookie、Tomcat与Jetty服务器、Spring容器、Ibatis框架和Velocity框架等原理介绍
深入分析Java Web技术内幕.part2.rar
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
相关专题推荐
PHP是在服务器端执行的嵌入HTML文档的
本教程循序渐进,由浅及深;具有完整
PHP是一种HTML内嵌式的语言,是一种在
本专题为XML视频教程,共20集,视频格
ExtJS是一种主要用于创建前端用户界面
您想不想设计出漂亮美观的网页?这专
本视频教程有针对性的讲解Ajax技术如
本专题包含了Java Web开发必须的各种
JSP技术使用Java编程语言编写类XML的
本专题为UML实战操作视频教程,讲解了
小甲鱼版delphi视频学习,从入门到精
主要讲述springMVC启用注解功能,还有
这是韩顺平老师最新版的jsp视频教程
韩顺平.第二版XML视频教程.共21讲,本
Flex 是一个高效、免费的开源框架,可
ERP是英文Enterprise Resource Plann
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理&>&深入分析Java Web技术内幕
深入分析Java Web技术内幕
上传大小:86.26MB
本书围绕Java Web相关技术从三方面全面深入地进行阐述。首先介绍前端知识,主要介绍JavaWeb开发中涉及的一些基本知识,包括Web请求过程、HTTP协议、DNS技术和CDN技术。其次深入介绍Java技术,包括I/O技术、中文编码问题、Javac编译原理、class文件结构解析、ClassLoader工作机制及JVM的内存管理等。最后介绍Java服务端技术,主要包括Servlet、Session与Cookie、Tomcat与Jetty服务器、Spring容器、Ibatis框架和Velocity框架等原理介绍。本书不仅介绍这些技术和框架的工作原理,而且结合示例来讲解,通过通俗易懂的文字和丰富生动的配图,让读者充分并深入理解它们的内部工作原理,同时还结合了设计模式来介绍这些技术背后的架构思维。
  许令波,毕业于合肥工业大学,获计算机硕士学位。热爱JavaWeb技术,关注服务端性能优化,热衷开源技术的研究和分享,曾获developerWorks最佳作者称号。2009年进入淘宝工作,目前从事模板渲染框架与MVC框架的开发与应用、JavaWeb的性能优化、高访问量系统静态化和商品详情系统的业务改造等工作。
  个人博客:http://xulingbo.net...展开收缩
综合评分:4.4(14位用户评分)
所需积分:
下载个数:291
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var q = $("#form1").serializeArray();
console.log(q);
var res_area_r = $.trim($(".res_area_r").val());
if (res_area_r == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
var mess = $(".res_area_r").val();
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, _username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click",'.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
$(".res_area_r").val($.trim($(".res_area").val()));
评论共有8条
好东西,正在看
是这本书,好书,感谢分享。
每天都在看,很好的扫盲教材
这个是全是,大赞
感谢分享,内容很好。
要的就是这个,谢谢了
感谢分享,书是全的。
是这本书,好书,感谢分享。
审核通过送C币
java8/cassandra/netty/scala相关
创建者:xueyumihuan
Java达内课程(18800元)
《疯狂Java实战演义》源代码与运行包
创建者:boxiong86
上传者其他资源上传者专辑
gradle中文指南
深入剖析Nginx
一线架构师实践指南
maven项目 cxf webservice
spring mvc 集成mongoDB项目 例子
开发技术热门标签
VIP会员动态
前端开发重难点
17年软考最新真题及解析
物联网全栈开发专题
二十大技术领域优质资源
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
CSDN&VIP年卡&4000万程序员的必选
深入分析Java Web技术内幕
会员到期时间:剩余下载个数:
积分不足!
资源所需积分
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分
当前拥有积分
VIP年卡全年1200个资源免积分下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
liangrui1988
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
session和cookie都是用来保持用户与后端服务器的交互状态。
cookie大小大小受限,并且占带宽。
session不能在多个服务器间共享。
cookie是保存在客户端的一个数据结构
session是保存在服务端的一个数据结构。
服务端:在tomcat中使用addcookie方法添加cookie,真正则是在response中完成创建。
接受客户端cookie:通过request.getcookies()来获得。
request和response&
Request 和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据,而 Response 对象的功能则是将服务器端的数据发送到客户端浏览器。
session对cookie的改进:
cookie在每次访问时需要传回,增加传输量,可以设置id作为标志进行传递,即session id是通过cookie传递的,属性值为jsessionid。
有了seesionid,服务端可以创建httpsession对象。第一次触发通过request.getsession()。以后都通过session id来找到session。
session没过期时,即使容器关闭或重启也会被持久化。
同个浏览器打开同一个应用多次会使用同一个session,不同浏览器打开一个应用会用不同的session。
cookie问题:客户端存储限制、cookie管理混乱,cookie不能跨域名,安全问题。
可以用分布式session框架解决。
实现方式:
1统一使用订阅服务器管理cookie,应用服务器需要哪个cookie由订阅服务器来推送。一般用zookeeper实现
集群的配置管理。
2session将保存到分布式缓存中,让服务器可以共享访问,因为session不可能同步到每个服务器上。
分布式缓存可以用memcache实现。
3cookie太大的办法是压缩cookie,将keyvalue转化为文本。
4多终端session统一:手机和电脑的cookie和session需要统一,即包括数据结构,存储。防止二次登陆等问题。所以需要在服务端统一session,所有终端拿到的session id都一样。
5:热门。电脑打开网页扫码登录
服务端不停检测标识,手机登录后产生标识使pc端登录成功。
本文已收录于以下专栏:
相关文章推荐
session和cookie都是用来保持用户与后端服务器的交互状态。
cookie大小大小受限,并且占带宽。
session不能在多个服务器间共享。
cookie是保存在客户端的一个数据结构
深入分析 Java I/O 的工作机制
1 I/O接口分为字节型和字符型,通过inputstreamreader进行转换。
I/O访问方式
2.1 磁盘I/O:标准访问...
网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。
一、深入web请求过程
1.B/S网络架构,服务端基于同一的http。
在浏览器输入会发生:dns解析ip——&根据ip寻找服务器(负载均衡选择服务器)---&查找数据(分布式缓存...
claasloader读书笔记
claasloader
1、classloader将class加载到jvm中。
2、父优先的等级加载,双亲委派模型。
3、defineclass用于将字节流解析成C...
servlet+tomcat原理剖析
servlet工作原理分析
servlet是运行在服务器上的java程序。
1ContextConfig负责web应用的配置文件的解析
JVM内存管理
1物理内存和虚拟内存。
物理内存不足时,会使用虚拟内存,让线程共享虚拟内存(实际上还是逻辑独立的),只是共享空间。
2内核空间和用户空间
内核空间主要用于程序调度,虚...
1.适配器模式:把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法一起工作的两个类能够在一起工作。适配器继承源接口,实现目标接口。
2.装饰器模式:使源类功能更强大。
JVM体系结构
JVM体系结构详解
Java内存管理
JVM工作机制
机器如何执行代码
一.深入Web请求过程
1.B/S架构:
一、深入web请求过程
他的最新文章
讲师:王渊命
讲师:蔡栋
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)深入分析Java
Web技术内幕
修订版PDF_Linux下载_Linux公社-Linux系统门户网站
你好,游客
深入分析Java
Web技术内幕
来源:Linux社区&
作者:Linux
阿里巴巴集团技术丛书
深入分析Java Web技术内幕(修订版)(阿里巴巴集团技术丛书。技术大牛范禹、玉伯、毕玄联合力荐!大型互联网公司开发应用实践!)
许令波 著& &
ISBN 978-7-121-23293-0
2014年8月出版
定价:79.00元&
让读者知其然,并知其所以然,是《深入分析Java Web技术内幕(修订版)》一书最大的特色。
作者来自淘宝技术一线,亲历了淘宝网PV从1亿到10亿的发展历程,直接经历了在这个过程中技术的不断突破、飞跃等变迁,并积累了丰富实践经验。
《深入分析Java Web技术内幕(修订版)》正是分享了作者在面临种种技术问题、技术瓶颈时的思路、方法和技巧,具体的应用实践和直接的案例。
在这次的修订版中,作者补充了淘宝网近两年在无线端的最新的应用实践。在这个快速发展的移动互联的时代,这样直接的技术积累和分享尤其珍贵。
相信读者一定能从中获益匪浅。
阿里巴巴集团技术丛书是抱持着为工程师服务的理念诞生的。
阿里的快速发展,使我们有机会见证技术变革的强大力量。在这过程中,我们经历了技术的变迁、兴衰、成败,既有收获也有教训。如今,阿里已成为一家令人瞩目的互联网公司,站在这样的时点上,回顾过去,放眼四周,我们深刻地觉得有必要将沉淀下来的一线经验与智慧,结集出版,理由有三。
1.回报。我们获得的种种经验与教训,只有在阿里这样快速成长、体量巨大的公司中才有机会亲历。这样的技术环境并不是每个工程师都有机缘遇到的。这些经历帮助了我们个人能力的提升,也帮助阿里成为一家技术实力过硬的公司。我们愿意把这些内容分享出来,帮助即将或已经面临类似问题的朋友们,如果他们可以从阅读中获得一些启发而少走弯路的话,将是我们最大的欣慰。
2.交流。在这套丛书里,我们同样会抛出我们的困惑、问题,借助丛书的平台,扩大工程师沟通的圈子,以书会友,共同探索、学习、提高。
3.温故知新。以结集的形式,将以往的经验与知识固化下来,既可便于以后查阅,也可以帮助我们系统地梳理思路,更为全面地审视、洞察、并理解过去发生的种种,为未来的变化做好更充分、扎实的准备。
基于以上的考虑,阿里巴巴集团技术丛书将立足于实践,着眼于问题,从工程师的视角解读技术的内涵。
让思考成为我们生活的乐趣,让阅读成为我们进步的阶梯!
《深入分析Java Web技术内幕(修订版)》新增了淘宝在无线端的应用实践,包括:CDN 动态加速、多终端化改造、 多终端Session 统一 ,以及在大流量的情况下,如何跨越性能、网络和一个地区的电力瓶颈等内容,并提供了比较完整的解决方案。
《深入分析Java Web技术内幕(修订版)》主要围绕Java Web 相关技术从三方面全面、深入地进行了阐述。首先介绍前端知识,即在JavaWeb 开发中涉及的一些基本知识,包括Web 请求过程、HTTP、DNS 技术和CDN 技术。其次深入介绍了Java 技术,包括I/O 技术、中文编码问题、Javac 编译原理、class 文件结构解析、ClassLoader 工作机制及JVM 的内存管理等。最后介绍了Java 服务端技术,主要包括Servlet、Session 与Cookie、Tomcat 与Jetty服务器、Spring 容器、iBatis 框架和Velocity 框架等原理介绍,并介绍了服务端的一些优化技术。
《深入分析Java Web技术内幕(修订版)》不仅介绍这些技术和框架的工作原理,而且结合示例来讲解,通过通俗易懂的文字和丰富、生动的配图,让读者充分并深入理解它们的内部工作原理,同时还结合了设计模式来介绍这些技术背后的架构思维。
深入分析Java& Web技术内幕& 修订版PDF百度网盘免费下载地址:
或者到Linux公社1号FTP服务器下载
------------------------------------------分割线------------------------------------------
在 2016年\10月\深入分析Java& Web技术内幕& 修订版PDF\
下载方法见
------------------------------------------分割线------------------------------------------&
第1章& 深入Web请求过程& & & &
1.1& B/S网络架构概述 2
1.2& 如何发起一个请求& & & & 4
1.3& HTTP解析& & & 6
1.3.1& 查看HTTP信息的工具& & & 8
1.3.2& 浏览器缓存机制& & & &
1.4& DNS域名解析& & & & 12
1.4.1& DNS域名解析过程& &
1.4.2& 跟踪域名解析过程& & 15
1.4.3& 清除缓存的域名& & & &
1.4.4& 几种域名解析方式& & 19
1.5& CDN工作机制& & & & 20
1.5.1& CDN架构& & 20
1.5.2& 负载均衡& & 21
1.5.3& CDN动态加速& & 24
1.6& 总结& & & & 25
第2章& 深入分析Java I/O的工作机制& & & 26
2.1& Java的I/O类库的基本架构& & & &
2.1.1& 基于字节的I/O操作接口 27
2.1.2& 基于字符的I/O操作接口 28
2.1.3& 字节与字符的转化接口& & 29
2.2& 磁盘I/O工作机制& & & &
2.2.1& 几种访问文件的方式& & & &
2.2.2& Java访问磁盘文件& & 34
2.2.3& Java序列化技术& & & &
2.3& 网络I/O工作机制& & & &
2.3.1& TCP状态转化& &
2.3.2& 影响网络传输的因素& & & &
2.3.3& Java Socket的工作机制& &
2.3.4& 建立通信链路& & 41
2.3.5& 数据传输& & 42
2.4& NIO的工作方式& & 42
2.4.1& BIO带来的挑战 42
2.4.2& NIO的工作机制 43
2.4.3& Buffer的工作方式& & & 46
2.4.4& NIO的数据访问方式 48
2.5& I/O调优 50
2.5.1& 磁盘I/O优化& & & 50
2.5.2& TCP网络参数调优& &
2.5.3& 网络I/O优化& & & 53
2.6& 设计模式解析之适配器模式& & & & 57
2.6.1& 适配器模式的结构& & 57
2.6.2& Java I/O中的适配器模式& 58
2.7& 设计模式解析之装饰器模式& & & & 58
2.7.1& 装饰器模式的结构& & 59
2.7.2& Java I/O中的装饰器模式& 59
2.8& 适配器模式与装饰器模式的区别& & & & 60
2.9& 总结& & & & 60
第3章& 深入分析Java Web中的中文编码问题& & & &
3.1& 几种常见的编码格式&
3.1.1& 为什么要编码& & 61
3.1.2& 如何&翻译&& & 62
3.2& 在Java中需要编码的场景& 64
3.2.1& 在I/O操作中存在的编码 64
3.2.2& 在内存操作中的编码& & & &
3.3& 在Java中如何编解码& 67
3.3.1& 按照ISO-8859-1编码& & & & & 69
3.3.2& 按照GB2312编码& & & 70
3.3.3& 按照GBK编码& & 71
3.3.4& 按照UTF-16编码& & & & 71
3.3.5& 按照UTF-8编码 72
3.3.6& UTF-8编码代码片段& 72
3.3.7& 对几种编码格式的比较& & 74
3.4& 在Java Web中涉及的编解码& & &
3.4.1& URL的编解码& &
3.4.2& HTTP Header的编解码& & & 79
3.4.3& POST表单的编解码&
3.4.4& HTTP BODY的编解码& & & &
3.5& 在JS中的编码问题& & &
3.5.1& 外部引入JS文件& & & & 81
3.5.2& JS的URL编码& & 82
3.5.3& 其他需要编码的地方& & & &
3.6& 常见问题分析& & & & 84
3.6.1& 中文变成了看不懂的字符& & & &
3.6.2& 一个汉字变成一个问号& & 85
3.6.3& 一个汉字变成两个问号& & 85
3.6.4& 一种不正常的正确编码& & 86
3.7& 一种繁简转换的实现方式&
3.8& 总结& & & & 88
第4章& Javac编译原理& & & & 89
4.1& Javac是什么 90
4.2& Javac编译器的基本结构& & & 90
4.3& Javac工作原理分析& & & 92
4.3.1& 词法分析器& & & &
4.3.2& 语法分析器& & & &
4.3.3& 语义分析器& & & &
4.3.4& 代码生成器& & & &
4.4& 设计模式解析之访问者模式& & & & 118
4.4.1& 访问者模式的结构& & 119
4.4.2& Javac中访问者模式的实现& & &
4.5& 总结& & & & 121
第5章& 深入class文件结构& & & & 122
5.1& JVM指令集简介&
5.1.1& 与类相关的指令& & & &
5.1.2& 方法的定义& & & &
5.1.3& 属性的定义& & & &
5.1.4& 其他指令集& & & &
5.2& class文件头的表示形式& & &
5.3& 常量池&
5.3.1& UTF8常量类型&
5.3.2& Fieldref、Methodref常量类型& 143
5.3.3& Class常量类型&
5.3.4& NameAndType常量类型& & 144
5.4& 类信息&
5.5& Fields和Methods定义 145
5.6& 类属性描述&
5.7& Javap生成的class文件结构& & & & 150
5.7.1& LineNumberTable& & & &
5.7.2& LocalVariableTable& & &
5.8& 总结& & & & 155
第6章& 深入分析ClassLoader工作机制&
6.1& ClassLoader类结构分析& & &
6.2& ClassLoader的等级加载机制& & &
6.3& 如何加载class文件& & & 161
6.3.1& 加载字节码到内存& & 161
6.3.2& 验证与解析& & & &
6.3.3& 初始化Class对象& & & 163
6.4& 常见加载类错误分析&
6.4.1& ClassNotFoundException& & 163
6.4.2& NoClassDefFoundError& & & & 164
6.4.3& UnsatisfiedLinkError&
6.4.4& ClassCastException& &
6.4.5& ExceptionInInitializerError& 167
6.5& 常用的ClassLoader分析& & & 168
6.6& 如何实现自己的ClassLoader& & &
6.6.1& 加载自定义路径下的class文件& & &
6.6.2& 加载自定义格式的class文件& 174
6.7& 实现类的热部署&
6.8& Java应不应该动态加载类&
6.9& 总结& & & & 179
第7章& JVM体系结构与工作方式& &
7.1& JVM体系结构& & & & 180
7.1.1& 何谓JVM& & 180
7.1.2& JVM体系结构详解& & 183
7.2& JVM工作机制& & & & 185
7.2.1& 机器如何执行代码& & 185
7.2.2& JVM为何选择基于栈的架构& & 186
7.2.3& 执行引擎的架构设计& & & &
7.2.4& 执行引擎的执行过程& & & &
7.2.5& JVM方法调用栈& & & &
7.3& 总结& & & & 197
第8章& JVM内存管理& & & & & 198
8.1& 物理内存与虚拟内存&
8.2& 内核空间与用户空间&
8.3& 在Java中哪些组件需要使用内存& & &
8.3.1& Java堆& & & &
8.3.2& 线程& & 201
8.3.3& 类和类加载器& & 202
8.3.4& NIO& & & 202
8.3.5& JNI& & & & 203
8.4& JVM内存结构& & & & 203
8.4.1& PC寄存器&
8.4.2& Java栈& & & &
8.4.3& 堆& & & &
8.4.4& 方法区& & & &
8.4.5& 运行时常量池& & 206
8.4.6& 本地方法栈& & & &
8.5& JVM内存分配策略& & & & 206
8.5.1& 通常的内存分配策略& & & &
8.5.2& Java中的内存分配详解& & 207
8.6& JVM内存回收策略& & & & 212
8.6.1& 静态内存分配和回收& & & &
8.6.2& 动态内存分配和回收& & & &
8.6.3& 如何检测垃圾& & 213
8.6.4& 基于分代的垃圾收集算法& & & &
8.7& 内存问题分析& & & & 224
8.7.1& GC日志分析& & &
8.7.2& 堆快照文件分析& & & &
8.7.3& JVM Crash日志分析& 227
8.8& 实例1& &
8.9& 实例2& &
8.10& 实例3& 237
8.11& 总结& & & 242
第9章& Servlet工作原理解析& &
9.1& 从Servlet容器说起& & &
9.1.1& Servlet容器的启动过程& & 244
9.1.2& Web应用的初始化工作& & 247
9.2& 创建Servlet实例& 249
9.2.1& 创建Servlet对象& & & & 250
9.2.2& 初始化Servlet& & 250
9.3& Servlet体系结构&
9.4& Servlet如何工作&
9.5& Servlet中的Listener& & & 257
9.6& Filter如何工作& & &
9.7& Servlet中的url-pattern& & & & & 261
9.8& 总结& & & & 262
第10章& 深入理解Session与Cookie 263
10.1& 理解Cookie 264
10.1.1& Cookie属性项& 264
10.1.2& Cookie如何工作& & &
10.1.3& 使用Cookie的限制 268
10.2& 理解Session& & & &
10.2.1& Session与Cookie& & & 269
10.2.2& Session如何工作& & & 270
10.3& Cookie安全问题 273
10.4& 分布式Session框架& & 274
10.4.1& 存在哪些问题& 274
10.4.2& 可以解决哪些问题& 275
10.4.3& 总体实现思路& 275
10.5& Cookie压缩 280
10.6& 表单重复提交问题& & & 282
10.7& 多终端Session统一& & 283
10.8& 总结& & & 285
第11章& Tomcat的系统架构与设计模式& 286
11.1& Tomcat总体设计& & & &
11.1.1& Tomcat总体结构& & & 287
11.1.2& Connector组件& & & &
11.1.3& Servlet容器Container& & & 298
11.1.4& Tomcat中的其他组件& & & 309
11.2& Tomcat中的设计模式& & & &
11.2.1& 门面设计模式& 309
11.2.2& 观察者设计模式& & &
11.2.3& 命令设计模式& 313
11.2.4& 责任链设计模式& & &
11.3& 总结& & & 316
第12章& Jetty的工作原理解析& 317
12.1& Jetty的基本架构& & & &
12.1.1& Jetty基本架构简介 317
12.1.2& Handler的体系结构& & & &
12.2& Jetty的启动过程& & & &
12.3& 接受请求& & & 321
12.3.1& 基于HTTP工作& & & &
12.3.2& 基于AJP工作&
12.3.3& 基于NIO方式工作& 326
12.4& 处理请求& & & 327
12.5& 与JBoss集成& & &
12.6& 与Tomcat的比较& & & & 331
12.6.1& 架构比较& 331
12.6.2& 性能比较& 332
12.6.3& 特性比较& 332
12.7& 总结& & & 333
第13章& Spring框架的设计理念与设计模式分析& & 334
13.1& Spring的骨骼架构& & &
13.1.1& Spring的设计理念&
13.1.2& 核心组件如何协同工作& 336
13.2& 核心组件详解& & & 337
13.2.1& Bean组件 337
13.2.2& Context组件& &
13.2.3& Core组件 340
13.2.4& Ioc容器如何工作& &
13.3& Spring中AOP的特性详解& 352
13.3.1& 动态代理的实现原理& & &
13.3.2& Spring AOP如何实现& & & & 355
13.4& 设计模式解析之代理模式 358
13.4.1& 代理模式原理& 358
13.4.2& Spring中代理模式的实现& & & & 358
13.5& 设计模式解析之策略模式 361
13.5.1& 策略模式原理& 361
13.5.2& Spring中策略模式的实现& & & & 362
13.6& 总结& & & 362
第14章& Spring MVC的工作机制与设计模式&
14.1& Spring MVC的总体设计& & & 364
14.2& Control设计& & & &
14.2.1& HandlerMapping初始化& 370
14.2.2& HandlerAdapter初始化&
14.2.3& Control的调用逻辑 373
14.3& Model设计& 374
14.4& View设计& &
14.5& 框架设计的思考 377
14.5.1& 为什么需要框架& & &
14.5.2& 需要什么样的框架& 377
14.5.3& 框架设计原则& 378
14.5.4 &指航灯&& & & &
14.5.5& 最基本的原则& 378
14.6& 设计模式解析之模板模式 379
14.6.1& 模板模式的结构& & &
14.6.2& Spring MVC中的模板模式示例& & &
14.7& 总结& & & 380
第15章& 深入分析iBatis框架之系统架构与映射原理& & 381
15.1& iBatis框架主要的类层次结构&
15.2& iBatis框架的设计策略& & & & 382
15.3& iBatis框架的运行原理& & & & 384
15.4& 示例& & & 386
15.5& iBatis对SQL语句的解析& & 388
15.6& 数据库字段映射到Java对象& &
15.7& 示例运行的结果 391
15.8& 设计模式解析之简单工厂模式 391
15.8.1& 简单工厂模式的实现原理& & &
15.8.2& iBatis中的简单工厂模式示例& & & &
15.9& 设计模式解析之工厂模式 393
15.9.1& 工厂模式的实现原理& & &
15.9.2& iBatis中的工厂模式示例& & & &
15.10& 总结&
第16章& Velocity工作原理解析 397
16.1& Velocity总体架构& & & &
16.2& JJTree渲染过程解析& 401
16.2.1& #set语法& 405
16.2.2& Velocity的方法调用& & & & & 406
16.2.3& #if、#elseif和#else语法 409
16.2.4& #foreach语法&
16.2.5& #parse语法& & &
16.3& 事件处理机制& & & 413
16.4& 常用优化技巧& & & 416
16.4.1& 减少树的总节点数量& & &
16.4.2& 减少渲染耗时的节点数量& & &
16.5& 与JSP比较& 417
16.5.1& JSP渲染机制& & 417
16.5.2& Velocity与JSP&
16.6& 设计模式解析之合成模式 423
16.6.1& 合成模式的结构& & &
16.6.2& Velocity中合成模式的实现& &
16.7& 设计模式解析之解释器模式& & & 425
16.7.1& 解释器模式的结构& 425
16.7.2& Velocity中解释器模式的实现& & & & & 426
16.8& 总结& & & 426
第17章& Velocity优化实践 427
17.1& 现实存在的问题 427
17.2& 优化的理论基础 428
17.2.1& 程序语言的三角形结构& 428
17.2.2& 数据结构减少抽象化& & &
17.2.3& 简单的程序复杂化& 429
17.2.4& 减少翻译的代价& & &
17.2.5& 变的转化为不变的& 430
17.3& 一个高效的模板引擎实现思路 430
17.3.1& vm模板如何被编译& & & &
17.3.2& 方法调用的无反射优化& 439
17.3.3& 将字符输出改成字节输出& & &
17.4& 优化的成果 443
17.4.1& 将char转成byte& & & 443
17.4.2& 无反射执行& & &
17.5& 其他优化手段& & & 445
17.6& 总结& & & 445
第18章& 大浏览量系统的静态化架构设计& & &
18.1& 淘宝大浏览量商品详情系统简介& & & 446
18.2& 系统面临哪些挑战& & & 447
18.3& 淘宝前台系统的优化历程 449
18.4& 大浏览量系统的静态改造 449
18.4.1& 什么是静态化系统& 449
18.4.2& 为什么要进行静态化架构设计& & &
18.4.3& 如何改造动态系统& 451
18.4.4& 几种静态化方案的设计及选择& & &
18.4.5& 如何解决失效问题& 458
18.4.6& 服务端静态化方案的演进:CDN化& & & 459
18.5& 总结& & & 462
参考资料& & & &
《深入分析Java Web技术内幕(修订版)》的内容涉及从HTTP、Servlet、模板渲染、数据层、容器到JVM 等Java Web开发的各个方面,这些问题是许令波在日常工作中经常遇到的,我想也是所有Java Web开发人员都会遇到的。《深入分析Java Web技术内幕(修订版)》最大的特点就是让Java Web 开发人员对整个开发过程所涉及的技术能有一个完整的脉络图,从前端浏览器到Java 技术,再到Java 服务端技术,还介绍了实现这些技术用到的设计模式;不仅详细总结了这些技术的工作原理,而且也结合了很多实际案例来进行阐述,将复杂、难懂的技术原理通过时序图和架构图的方式展现出来,更加便于读者理解。可以说如果你掌握了本书的知识,那么你就可以成为一个合格的JavaWeb开发人员。
《深入分析Java Web技术内幕(修订版)》文笔流畅,图表清晰、易懂,值得推荐给Java Web 开发人员作为进阶学习的参考书。
&&吴泽明(范禹),天猫产品技术部研究员
这是一本关于Java 的书,里面讲述的大量基础知识对前端开发工程师非常有帮助。比如中文编码章节,作者以一个实践者的身份详细阐述了编码问题的方方面面。总之,这是一本很用心的书,是实践者的思考和总结。目前在国内很少看到这类书籍,强烈推荐从事Web 开发工作的人员阅读并实践之。
&&王保平(玉伯),开源前端类库KISSY、SeaJS作者
作者在淘宝做了很多Java Web 方面的改造项目,在Java Web 的相关技术上有深入的掌握,并积累了丰富的经验。在这本书中作者不仅向读者展示了这类大改造项目所需的知识,还展示了Java Web 更为全景的技术知识体系。本书值得Java Web 开发人员阅读。
&&林昊(毕玄),淘宝资深技术专家
从第1 次拜读相关内容开始,就可以感觉到作者并不是在简简单单地讲述一门技术或者一个概念,他的分析和讲解十分深入,并且可以很好地聚焦读者的思路,尤其是在Java Web 、Servlet 规范及字符串处理方面,都有很优秀的内容。在众多向developerWorks投稿的国内作者中,无论是从文章的质量看,还是从内容的选题方向看,作者的文章都可称为上乘之作。同时,他的多篇文章还得到了广大网站读者的好评,其访问量、评分及评论的数量均名列前茅。
&&刘达,developerWorks中国Java 专区编辑、技术工程师
我第1次接触计算机应该是在10年前,记得当时连怎么开计算机都不会,当时感觉计算机真是一个让人着迷的东西,但是那时别说拥有一台计算机,就算是能玩上计算机也是一件奢侈的事情了。人总是有好奇心的,而我也因为追随着这份好奇和计算机一起走过了将近10年的光阴,也是这份好奇让我接触了计算机,认识了计算机,到现在了解了计算机。但是到目前为止我仍然有很多好奇的东西,所以我将一直求解下去。
回想我开始学习编程的时候,那是在大学期间开始构建自己的第1个网页,然后是第1个网站之时,其中的复杂程度真是让人难以想象。要构建一个网页,需要学习当时的&网页三剑客&,页面布局需要学习Dreamweaver,图片处理需要学习Fireworks,动画制作需要学习Flash。有时候为了一个导航栏甚至通宵达旦。还有,要自己搭建一个本地服务器,要学习IIS、Apache等。当时的我竟然能够一个人完成这一系列的事情,现在想想还真是有点儿佩服自己。
现在回想一下当时自己的学习过程,真是走了很多弯路,浪费了很多时间。当时的学习就像是在一个陌生的城市找路一样,不知道如何才能到达目的地,只能边走边问别人,这个人告诉你一点,那个人告诉你一点,一点一点往前走。但是虽然在往前走,走的路却并不是最近的,甚至有人指的方向是错的。当时缺少一个总揽全局的地图,所以不能画出一条最优的路。虽然走了很多弯路,但是这种不断自学的过程还是大大地提升了我的学习能力,这种好的自学能力也在我以后的学习工作中起到了关键作用。
IT行业的知识变化很快,需要不断地学习新东西,所以学习知识的能力比掌握知识本身更重要。这也是目前大公司招聘标准中很重要的一条。记得当时我的老大在招聘我进入淘宝时,面试时就问我如何学习一门新技术。你在学习的过程中会碰到很多难题,并会克服这些难题,很多这样的过程积累起来就是你无形的宝贵财富。因为你遇到的问题肯定也是其他人遇到的问题,从发现问题、分析问题再到解决问题的过程远比这个问题本身更有价值。
爱因斯坦说过:&发现问题比解决问题更重要。&对IT人员来说,发现Bug和重现Bug比解决这个Bug更有难度。这就好比一个外国人问周思来总理中国有多少厕所,总理回答说只有两个厕所:男厕所和女厕所。但是,什么人在什么时间、什么地点需要上厕所,考虑这样的情形恐怕需要多少厕所就很难计算了。同样,在计算机中也只有0和1两个选择,在计算机中的程序也同样如此,每写一行代码就能增加甚至一个数量级的出错概率。但是我们还是要学习如何避免出现Bug,这就要求我们能有总理看问题的思维,将复杂的问题简单化,发现问题背后的本质,找到解决问题的背后的一些通用逻辑,按照这种思路来解决问题可能会让你事半功倍。
如何让学习知识的过程事半功倍,尤其是我们程序员如何做到,从我这么多年的学习过程来说,有一些经验可以分享给大家,这也是我写这本书的初衷,我真正想分享的不是我掌握的知识,更多的是我学习这个知识的过程,以及我对这些知识的一些总结和提炼。
虽然要掌握在整个Web开发中涉及的所有知识是一件非常困难的事情,尤其是要掌握这些知识的实现原理,不仅知其然还要知其所以然。所以掌握学习它们的方法至关重要。如何快速、高效地阅读它们的源码,有很多同学看到我在developerWorks上发表的文章时来信问我如何阅读各种框架的源码,很多同学都说不知道从哪里入手。其实,当你掌握了一些技巧,加上你的一点耐心,这并不是很难的。
本书虽然介绍了很多开源框架,但是始终都在告诉你如何才能更深入和简单地掌握这个框架,告诉你学习的方法,而并不是告诉你这个框架有哪些类,以及怎么使用这些零碎的知识。打个比喻,本书并不是告诉你1+1=2,1+2=3,2+2=4这个结果,然后你可以根据这个方式得出1+1+2=4,你要计算其他数必须根据它给你的公式才能计算,而是告诉你加、减、乘、除的算法规则,然后你就可以根据这个规则自己做运算了。
另外本书为什么要选择介绍Web开发中这些技术的实现原理,因为只有你掌握它们的实现原理,才能够快速地解决一些意想不到的问题。例如,当你理解了 ClassLoader的工作机制后,遇到ClassNotFoundException时,你就能快速地判断,到底为什么会报这个错误,可能是哪个地方出错导致的。
另外还有一个很重要的原因是,如果你很想进入淘宝、腾讯、百度这样的大型互联网企业工作,不掌握本书讲到的这些技术的实现原理,是很难通过技术面试的。因为面试官不仅希望你会用这些技术,还要求你说出个所以然来,所以,掌握这些技术的实现原理可以为你的职业发展提供更好的机会。
本书的组织结构
本书从结构上主要分为3部分:第1部分为基础知识,主要介绍在Java Web开发中涉及的一些基本知识,例如一次HTTP请求是什么样的,HTTP本身是如何工作的;第2部分将深入介绍Java技术,帮助读者了解Java是如何工作的,在会用的基础上进一步理解Java;第3部分是Java服务端技术,主要介绍Web服务器的处理流程,包括Servlet容器的工作原理和Web框架是如何运转的,也就是从Web服务器接收到请求至返回请求的这个过程中涉及的知识,最后介绍了针对大流量情况下的系统的一些优化技巧和实践项目。
如果你是一名刚毕业的学生或者刚刚准备学习Web开发并且不知道如何入手的人,那么这本书比较适合你;如果你已经工作1~2年,已经熟悉了Java Web开发的基本流程并且想进一步提升自己,那么这本书更适合你。
如果你已经知道了如何学习Java Web开发技术,正准备入门进行实际开发,也就是说你是一个开发新手,那么这本书不太适合你。但是当你知道了如何开发一个Web应用并想知道它们是如何工作时,欢迎你再回来看本书,它能帮助你进一步提高。
总的来说,本书适合以下读者人群。
对Web技术感觉迷茫,不知道如何开始学习,对整个B/S工作机制不了解的同学。
Java技术爱好者,以及想深入学习Java技术内部实现细节的人。
有一定开发基础,但是不了解Web中一些容器和框架的内部工作原理的人。
对性能优化和分布式数据管理有兴趣的大型互联网工程师,这里介绍了淘宝的一些实践经验。
开源代码爱好者,喜欢研究开源代码的Coder可以从本书中找到一些分析源码的方法。
本书不会教你如何开发Web应用程序,也不会介绍Struts、Spring、iBatis等框架如何使用。这些框架的使用参考手册在图书市场上有很多,本书没有必要重复介绍。但是如果你已经掌握了如何使用并且不满足只会使用,想知道它们是如何工作的,想打开这些黑盒子,想以后告诉他人这些黑盒子里到底有些什么东西,对每种技术有强烈的好奇心,如果你是这样的人,那么本书值得你拥有。
本书按照通常的学习习惯设计,为你展示了从浏览器发出请求到浏览器最终显示页面的整个过程,让你对Web开发的整个过程有个总体的理解。
本书虽然讲解的都是比较深入的技术,但是有关实践的示例和比较恰当的比喻将帮你更好地理解。
本书将结合淘宝网中真实使用的示例应用程序来讲解技术,让读者有更好的直观认识。
由于作者水平有限,书中难免有错误之处。在本书出版后的任何时间,若你对本书有任何问题,你都可以通过发送邮件给我,或者到上向我提交你的建议和想法,我会对所有问题给予回复。
感谢我的父母,在我高考失败后仍然给我机会让我选择做自己想做的事,支持我选择了自己喜欢的计算机行业,并在家庭并不富裕的情况下给我配置了第1台计算机,让我有机会继续追求自己的梦想,是你们的支持和鼓励让我在做自己一直喜欢做的事。
感谢我的老婆,从大学你就一直陪伴在我身边,有你在我身边是我不断努力的最大动力,在本书的写作过程中,你完成初稿的审阅工作,同时也给了我很多鼓励和建议。
感谢电子工业出版社的刘皎和张国霞编辑,你们严谨认真的工作态度让我非常敬佩。
感谢吴泽明(范禹)老大为本书写序,你不仅带我进入淘宝,而且一直帮助我持续进步。感谢王保平、林昊和刘达在繁忙的工作中为我写推荐语。
感谢在本书写作过程中提出宝贵意见的同事们,他们的花名是:小凡、小邪、丹臣、哲别、景升、文通、向飞、凌弃、路奇、济城、大仁、常彬、旭天、韩章、小赌、雁声、索尼、凤豪、柳擎、华黎、空望、嗷嗷、渐飞、普智、胜衣、叔度、文景、撒迦、狄龙、祝幽、单通、承泽等。
感谢developerWorks上所有向我提出问题和建议的网友们。
自《深入分析Java Web技术内幕》一书出版以来,我收到了不少读者的反馈,也很感谢他们指出了书中的一些错误和不足。时隔两年,在电子工业出版社博文视点编辑的帮助下,《深入分析Java Web技术内幕》有了修订再版的机会。
这两年来,一些技术也在发生着变化:无线技术越来越成熟,我们的系统开始更多地支持无线,并衍生出系统要进行多终端化改造等问题;同时我们也遇到了一些新的技术问题如大流量、网络瓶颈及机房的电力短缺等,这给系统的部署和系统架构带来新的挑战。所以我借这次再版的机会,将这方面的技术更新和实践尝试一并分享给读者。除了修正前版的一些错漏之处,本次修订还主要做了以下更新。
第1章增加了CDN动态加速的内容,介绍了我们当前最新的想法和尝试。
第3章增加一种繁简转换的实现方式的内容,介绍了我们在遇到多终端的情况下面临的多语言的问题,将我们的思路和实践分享给大家。
第10章增加了多终端Session统一的内容,也介绍了在多终端的情况下如何解决Session统一的问题。
新增了第18章,重点介绍了我们在近两年遇到大流量的情况下,如何跨越性能、网络和一个地区的电力瓶颈等问题,并提供了一个比较完整的解决方案。
感谢刘皎和张国霞两位编辑,感谢阿里巴巴的几位大牛范禹、黄眉等对修订版提供的一些有益建议,也感谢我们技术发展部恬玉同学的大力帮助。
本文永久更新链接地址:
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多关于 javaweb视频聊天技术 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信