<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Hedwig的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u013789656</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013789656]]></copyright><item><title><![CDATA[JS（12）——页面加载、解析和渲染流程]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80943573</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80943573</guid><author>u013789656</author><pubDate>Mon, 09 Jul 2018 09:02:39 +0800</pubDate><description><![CDATA[1. Javascript的加载和执行的特点1、载入后马上执行。 2、执行时会阻塞页面后续的内容（包括页面的渲染、其它资源的下载）。原因：因为浏览器需要一个稳定的DOM树结构，而JS中很有可能有 代码直接改变了DOM树结构，比如使用 document.write 或 appendChild,甚至是直接使用的location.href进行跳转，浏览器为了防止出现JS修 改DOM树，需要重新构建DOM...]]></description><category></category></item><item><title><![CDATA[JMS 和QPID（2）——QPID]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80940530</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80940530</guid><author>u013789656</author><pubDate>Mon, 09 Jul 2018 09:00:08 +0800</pubDate><description><![CDATA[1. 简介Qpid 是 Apache 开发的一款面向对象的消息中间件，它是一个 AMQP 的实现，可以和其他符合 AMQP 协议的系统进行通信。Qpid 提供了 C++/Python/Java/C# 等主流编程语言的客户端库，安装使用非常方便。相对于其他的 AMQP 实现，Qpid 社区十分活跃，有望成为标准 AMQP 中间件产品。除了符合 AMQP 基本要求之外，Qpid 提供了很多额外的 HA...]]></description><category></category></item><item><title><![CDATA[ShallowEtagHeaderFilter]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80940676</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80940676</guid><author>u013789656</author><pubDate>Mon, 09 Jul 2018 08:59:51 +0800</pubDate><description><![CDATA[1. 简介 ShallowEtagHeaderFilter是spring提供的支持ETag的一个过滤器，所谓ETag是指被请求变量的实体值，是一个可以与Web资源关联的记号，而Web资源可以是一个Web页，也可以是JSON或XML文档，服务器单独负责判断记号是什么及其含义，并在HTTP响应头中将其传送到客户端。如果ETag没改变，则返回状态304然后不返回，这也和Last-Modified一样。S...]]></description><category></category></item><item><title><![CDATA[@Configuration]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80940699</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80940699</guid><author>u013789656</author><pubDate>Mon, 09 Jul 2018 08:59:33 +0800</pubDate><description><![CDATA[    我们通常将用于存放配置信息的类的类名以 “Config” 结尾，比如 AppDaoConfig.java、AppServiceConfig.java 等等。我们需要在用于指定配置信息的类上加上 @Configuration 注解，以明确指出该类是 Bean 配置的信息源。并且 Spring 对标注 Configuration 的类有如下要求：  1、配置类不能是 final 的；2、配置类...]]></description><category></category></item><item><title><![CDATA[JS（1）——JavaScript简介]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80940810</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80940810</guid><author>u013789656</author><pubDate>Mon, 09 Jul 2018 08:59:17 +0800</pubDate><description><![CDATA[1. 基本特点JavaScript是一种基于对象和事件驱动(Event Driven)并具有安全性能的脚本语 言。  JavaScript的出现弥补了HTML语言的不足，它是Java与HTML折中的选择，具以下几个基 本特点：  1、脚本编写  JavaScript是一种脚本语言，它采用小程序段的方式实现编程。它作为一种解释性语言，不需要进行编译，而是在程序运行过程中逐行地被解释。  2、基于对象...]]></description><category></category></item><item><title><![CDATA[JS（4）——分组操作符]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80941674</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80941674</guid><author>u013789656</author><pubDate>Mon, 09 Jul 2018 08:59:04 +0800</pubDate><description><![CDATA[分组操作符由一对括号组成，分组操作符的内部只能包含表达式，例如： function foo(){} // 函数声明
 (function foo(){}); // 函数表达式：包含在分组操作符内
 try {
    (var x = 5); // 分组操作符，只能包含表达式而不能包含语句，这里的var就是语句
  } catch(err) {
    // SyntaxError
  }在使用e...]]></description><category></category></item><item><title><![CDATA[JS（2）——数据类型]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80940929</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80940929</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:29:22 +0800</pubDate><description><![CDATA[1.基本类型和引用类型JavaScript 变量可以用来保存两种类型的值：基本类型值和引用类型值。基本类型的值源自以下5种基本数据类型：Undefined、Null、Boolean、Number 和String。基本类型值和引用类型值具有以下特点：1、基本类型值在内存中占据固定大小的空间，因此被保存在栈内存中；从一个变量向另一个变量复制基本类型的值，会创建这个值的一个副本。2、 引用类型的值是对象...]]></description><category></category></item><item><title><![CDATA[JS（3）——执行环境及垃圾回收]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80941634</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80941634</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:29:08 +0800</pubDate><description><![CDATA[1. 执行环境所有变量（包括基本类型和引用类型）都存在于一个执行环境（也称为作用域）当中，这个执行环境决定了变量的生命周期，以及哪一部分代码可以访问其中的变量。以下是关于执行环境的几点总结：1、执行环境有全局执行环境（也称为全局环境）和函数执行环境之分；2、每次进入一个新执行环境，都会创建一个用于搜索变量和函数的作用域链；3、函数的局部环境不仅有权访问函数作用域中的变量，而且有权访问其包含（父）环...]]></description><category></category></item><item><title><![CDATA[JS（6）——原型对象]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80942385</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80942385</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:28:52 +0800</pubDate><description><![CDATA[1. prototype函数定义的时候，函数本身会默认为该函数创建一个prototype的属性，而如果用new 运算符来生成一个对象的时候就没有prototype属性。而prototype也是一个对象，默认情况下prototype包含了2个属性，一个是constructor，另外一个是[[prototype]]（大多数浏览器下显示为__proto__）。constructor属性是一个指向prot...]]></description><category></category></item><item><title><![CDATA[JS（5）——函数]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80941802</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80941802</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:28:37 +0800</pubDate><description><![CDATA[1. Function 类型每个函数都是Function 类型的实例，而且都与其他引用类型一样具有属性和方法。由于函数是对象，因此函数名实际上也是一个指向函数对象的指针，不会与某个函数绑定。由于函数名仅仅是指向函数的指针，因此函数名与包含对象指针的其他变量没有什么不同。换句话说，一个函数可能会有多个名字，如下面的例子所示：function sum(num1, num2){

    return ...]]></description><category></category></item><item><title><![CDATA[JS（7）——继承]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80942629</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80942629</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:28:24 +0800</pubDate><description><![CDATA[继承是OO 语言中的一个最为人津津乐道的概念。许多OO 语言都支持两种继承方式：接口继承和实现继承。接口继承只继承方法签名，而实现继承则继承实际的方法。如前所述，由于函数没有签名，在ECMAScript中无法实现接口继承，ECMAScript 只支持实现继承，而且其实现继承主要是依靠原型链来实现的。但原型链的问题是对象实例共享所有继承的属性和方法，因此不适宜单独使用。1. 原型链ECMAScrip...]]></description><category></category></item><item><title><![CDATA[JS（8）——闭包（closure）]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80942752</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80942752</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:28:12 +0800</pubDate><description><![CDATA[1. 闭包的概念官方的解释是：闭包是一个拥有许多变量和绑定了这些变量的环境的表达式（通常是一个函数），因而这些变量也是该表达式的一部分。简单来说，闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中，只有函数内部的子函数才能读取局部变量，因此可以把闭包简单理解成“定义在一个函数内部的函数”。 所以，在本质上，闭包就是将函数内部和函数外部连接起来的一座桥梁。 要理解闭包，首先必须...]]></description><category></category></item><item><title><![CDATA[JS（9）——BOM（浏览器对象模型）]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80942987</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80942987</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:27:59 +0800</pubDate><description><![CDATA[1. 概念浏览器对象模型（BOM）以window 对象为依托，表示浏览器窗口以及页面可见区域。同时，window对象还是ECMAScript 中的Global 对象，因而所有全局变量和函数都是它的属性，且所有原生的构造函数及其他函数也都存在于它的命名空间下。2. 取得窗口左边和上边的位置坐标使用下列代码可以跨浏览器取得窗口左边和上边的位置。var leftPos = (typeof window....]]></description><category></category></item><item><title><![CDATA[JS（10）——DOM（文档对象模型）]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80943102</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80943102</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:27:45 +0800</pubDate><description><![CDATA[1. 概念DOM是针对HTML 和XML 文档的一个API（应用程序编程接口）。DOM描绘了一个层次化的节点树，允许开发人员添加、移除和修改页面的某一部分。DOM 可以将任何HTML 或XML 文档描绘成一个由多层节点构成的结构。节点分为几种不同的类型，每种类型分别表示文档中不同的信息及（或）标记。每个节点都拥有各自的特点、数据和方法，另外也与其他节点存在某种关系。节点之间的关系构成了层次，而所有...]]></description><category></category></item><item><title><![CDATA[JS（11）——.模块化]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80943434</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80943434</guid><author>u013789656</author><pubDate>Sun, 08 Jul 2018 23:27:31 +0800</pubDate><description><![CDATA[1.模块化实现历程一个模块就是实现特定功能的文件，就如同java中的packag，有了模块，就可以更方便地使用别人的代码，想要什么功能，就加载什么模块。遗憾的是JavaScript在设计时定位原因，没有提供类似的功能，开发者需要模拟出类似的功能，来隔离、组织复杂的JavaScript代码，我们称为模块化。1、函数封装函数就是实现特定逻辑的一组语句打包，而且JavaScript的作用域就是基于函数的...]]></description><category></category></item><item><title><![CDATA[JMS 和QPID（1）——JMS]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80940328</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80940328</guid><author>u013789656</author><pubDate>Fri, 06 Jul 2018 14:28:21 +0800</pubDate><description><![CDATA[JMS（JAVA Message Service,java消息服务）API是一个消息服务的标准或者说是规范，允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低，消息服务更加可靠以及异步性。1.1 基本概念JMS是java的消息服务，JMS的客户端之间可以通过JMS服务进行异步的消息传输。1.2 消息模型Point-to-Point(P2P)Publish/Su...]]></description><category></category></item><item><title><![CDATA[security-constraint和四种认证类型]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80940286</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80940286</guid><author>u013789656</author><pubDate>Fri, 06 Jul 2018 14:19:35 +0800</pubDate><description><![CDATA[1. &amp;lt;security-constraint&amp;gt;&amp;lt;security-constraint&amp;gt; 的子元素 &amp;lt;http-method&amp;gt; 是可选的，如果没有 &amp;lt;http-method&amp;gt; 元素，这表示将禁止所有 HTTP 方法访问相应的资源。 子元素 &amp;lt;auth-constraint&amp;gt; 需要和 &amp;lt;login-config&amp;gt; 相配合使用，...]]></description><category></category></item><item><title><![CDATA[通配符]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80927705</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80927705</guid><author>u013789656</author><pubDate>Fri, 06 Jul 2018 14:16:22 +0800</pubDate><description><![CDATA[＂？＂：匹配一个字符，如＂config?.xml＂将匹配＂config1.xml＂＂＊＂：匹配零个或多个字符串，如＂cn/＊/config.xml＂将匹配＂cn/javass/config.xml＂，但不匹配匹配＂cn/config.xml＂；而＂cn/config-*.xml＂将匹配＂cn/config-dao.xml＂； ＂＊＊＂：匹配路径中的零个或多个目录，如＂cn/**/config.xm...]]></description><category></category></item><item><title><![CDATA[请求参数获取的几种方法]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80927730</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80927730</guid><author>u013789656</author><pubDate>Fri, 06 Jul 2018 14:16:07 +0800</pubDate><description><![CDATA[1、使用@PathVariable注解    @RequestMapping(value = &quot;/{id}/{str}&quot;) 
    public ModelAndView helloWorld(@PathVariable String id, @PathVariable String str) { 
         System.out.println(id); 
        System...]]></description><category></category></item><item><title><![CDATA[@RequestBody和@ResponseBody和消息转换器机制原理]]></title><link>https://blog.youkuaiyun.com/u013789656/article/details/80928036</link><guid>https://blog.youkuaiyun.com/u013789656/article/details/80928036</guid><author>u013789656</author><pubDate>Fri, 06 Jul 2018 14:15:53 +0800</pubDate><description><![CDATA[1、Spring3.1开始使用新的HandlerMapping 和 HandlerAdapter 来支持@Contoller 和@RequestMapping注解处理:处理器映射RequestMappingHandlerMapping和处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5 开始的处理器映射DefaultAnnotationHandlerM...]]></description><category></category></item></channel></rss>