<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[veverrr的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/veverrr</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; veverrr]]></copyright><item><title><![CDATA[PHP 和 Servlet 通过Socket通信]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/7085636</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/7085636</guid><author>veverrr</author><pubDate>Mon, 19 Dec 2011 21:09:50 +0800</pubDate><description><![CDATA[本实验为了实现 PHP 和 Servlet 进行通信，费了不少周折。。。。。。。。而且网上现成的资料都不完整，怀着激动的心情将本实验遇到的错误和解决方法和大家分享：
PHP 作为Client端，Servlet 作为 Server 端
在Server端，一般的做法是：
1. 写一个Servlet 类，并将该Servlet 设置为服务器启动时就加载的类。
  

   login]]></description><category></category></item><item><title><![CDATA[通过JSONP 模拟简单的单点登录]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/7080051</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/7080051</guid><author>veverrr</author><pubDate>Sat, 17 Dec 2011 16:38:23 +0800</pubDate><description><![CDATA[关于JSONP 的介绍请参考：http://chinazblz.blog.163.com/blog/static/93939173201042485426995/
 本实验模拟在两个不同域 www.sso.com 和 
www.ss.com 下进行单向单点登录。
但用户访问 www.sso.com 时(A 服务器)，会在浏览器中种下 cookie。
当用户访问 www.ss.com 时（B]]></description><category></category></item><item><title><![CDATA[通过cookie 和session 持久化实现  session跨子域]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/7079348</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/7079348</guid><author>veverrr</author><pubDate>Sat, 17 Dec 2011 10:13:50 +0800</pubDate><description><![CDATA[session 有个Session_id 作为session的惟一标志。
要实现Session子域，实际上是在同一个浏览器中在访问两个A 和B子域时，其session是相同的。
由于session都是保存在服务器端，如何让两台服务器识别这两个请求是由一个浏览器发出的呢？
Cookie是保存在客户端的，服务器通常通过Cookie来识别不同的客户端，因此，可以使用Cookie来保存Session]]></description><category></category></item><item><title><![CDATA[通过 iframe 和 location.hash  进行跨域通信]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/7073133</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/7073133</guid><author>veverrr</author><pubDate>Thu, 15 Dec 2011 10:41:58 +0800</pubDate><description><![CDATA[javascript 中 location.hash 是指   www.aa.com/a.php#abc 中的#abc。
在本试验中，在局域网中用两台Windows 机器分别搭建了PHP的简单系统。通过设置 hosts 文件，使得A机器的系统网址为www.sso.com/SSO     B机器系统网址为www.javascript.com/SSO 
本实验模拟的是 A 中通过IFrame将 B]]></description><category></category></item><item><title><![CDATA[页面表格实现不刷新排序 - javaScript]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6453190</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6453190</guid><author>veverrr</author><pubDate>Sun, 29 May 2011 16:27:00 +0800</pubDate><description><![CDATA[<br />页面表格实现不刷新排序<br />一．预备知识：<br />Javascript 的 sort(sortBy)方法：<br />sortBy( )规定排序规则，其必须是函数，而这个函数通常由我们根据排序规则自己进行编写。<br />arrayObject.sort(sortBy) :  数组对象调用带有sortBy 参数的sort() 方法，则会返回排序完成后的数组。<br />如果sort（）函数不加 sortBy 函数，即array.sort()  则对array 的元素按照字符编码的顺序进]]></description><category></category></item><item><title><![CDATA[HTTP 协议中的GET 和POST  的区别]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6419319</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6419319</guid><author>veverrr</author><pubDate>Sat, 14 May 2011 10:32:00 +0800</pubDate><description><![CDATA[<br /> 1. Http 请求由四部分组成：•1. 请求行•2. 消息报头•3. 一个空行•4. 请求正文 2.请求行： Method Request-Url  Http-Version  回车Method ： GET,POST,Head,Put,Delete<br />Request-Url：请求站点<br />Http-Version： 1.1  or  1.0<br /> <br />3. GET<br />当我们在浏览器中输入网址并敲回车时，浏览器使用GET的方式去访问网址<br />Form ]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（17）  桥接模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6402111</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6402111</guid><author>veverrr</author><pubDate>Sat, 07 May 2011 17:56:00 +0800</pubDate><description><![CDATA[<br /> 桥接模式：<br />          将抽象部分与它的实现部分分离，使他们多可以独立的变化。抽象与实现分离，表示抽象类和他的派生类用来实现自己的对象。<br />       在系统中，可能有多角度分类，每一种分类都有可能变化，这时就把这种多角度分离出来让他们独立变化，减少各个角度的耦合。<br /> <br />为了加深对桥接模式的理解，我们来实现一个桥接模式：<br />想描述某人在某个B2C 网站 购买了某品牌的手机。<br />首先我们来描述某个B2C 网站出售某品牌手机，由于B2]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（16）  单例模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6401722</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6401722</guid><author>veverrr</author><pubDate>Sat, 07 May 2011 13:57:00 +0800</pubDate><description><![CDATA[单例模式：保证一个类仅有一个实例，并提供一个访问其实例的一个全局访问点根据单例模式的定义，写一个单例模式的例子需要注意两点：1.实例有该类自己生成     为了防止客户代码通过 new Singleton()来实例一个对象，需要将 Singleton的默认构造函数定义为private2. 提供一个访问其实例的全局访问点    将访问方法getInstance()定义为 static ，则直接通过Singleton.getInstance() 来获取到实例3.单例只能有一个实例   在Singleton类中，]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（15）  组合模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6401637</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6401637</guid><author>veverrr</author><pubDate>Sat, 07 May 2011 12:48:00 +0800</pubDate><description><![CDATA[<br /> 组合模式：<br />             将对象组合成树形结构以表示‘部分-整体’的层次结构，组合模式使得用户对单个对象和组合对象的使用具有一致性。<br /> <br /> <br />用最经典的树和叶子节点的关系来描述整体-部分 关系最为恰当不过了：<br />在数据结构中，树有孩子节点，这个孩子节点可能是树，也可能是叶子节点。叶子节点不能再有孩子节点，但树可以有。<br />从这里可以看出，树和叶子节点都可以被看成是 孩子节点。<br />组合模式的目的是将整体和部分被一致对待，那]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记 （14） 备忘录模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6400817</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6400817</guid><author>veverrr</author><pubDate>Fri, 06 May 2011 20:39:00 +0800</pubDate><description><![CDATA[<br />备忘录模式：<br />在不破坏封装性的前提下，捕获一个对象的内部状态，并在该对象之外保存这个状态。这样在以后需要的情况下将该对象恢复到原先保存的状态。<br />备忘录模式通常用于可能有撤销操作的情况下，例如比较经典的将游戏还原到上一关等。<br /><br /><br /><br /><br />下面，我们模拟大家都很熟悉的将游戏还原到上一个保存点功能来了解这个设计模式。在游戏中，每打过一个小关卡时，玩家可以保存此时的状态。玩家继续玩游戏并在不幸挂掉的时候，游戏通常会在刚刚已通过的那个小关卡]]></description><category></category></item><item><title><![CDATA[java 设计模式学习笔记（13） - 适配器模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6398353</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6398353</guid><author>veverrr</author><pubDate>Thu, 05 May 2011 21:54:00 +0800</pubDate><description><![CDATA[<br /> 适配器模式：将一个类得接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。<br />在软件开发中，系统的数据和行为都正确，但接口不符合时，我们应该考虑使用适配器，目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望服用一些现存的类，但是接口又与复用环境要求不一致的情况。<br /> <br />简单来说就是：有一段有用的代码我想使用，但这段代码提供的接口A我不喜欢或者我用不了，我只能用通过调用接口B来满足我的需求，也许这]]></description><category></category></item><item><title><![CDATA[java 设计模式学习笔记（12） - 观察者模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6358587</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6358587</guid><author>veverrr</author><pubDate>Sun, 24 Apr 2011 11:35:00 +0800</pubDate><description><![CDATA[<br />观察者模式 ：<br />    定义了一种一对多的依赖关系，让多个观察者对象同时监听某个主题对象，这个主题对象在状态发生变化时会通知所有观察者对象，使他们能够自动更新自己。<br />    根据概念，我们知道这个模式由 多个观察者，一个被观察对象组成。观察者需要将到被观察对象那里去注册自己，或者说被观察对象保存着多个观察者得引用。一旦被观察对象的状态发生了变化，那么它会通知在它这里注册了的所有观察者，而这些观察者一收到消息就会自动进行相应的操作。 <br />    观察者模式核心之处在于观]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记(11)   建造者模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6347347</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6347347</guid><author>veverrr</author><pubDate>Sat, 23 Apr 2011 20:30:00 +0800</pubDate><description><![CDATA[<br />建造者模式：<br />    将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示。<br />建造者模式将一个产品的内部表象与产品的生成过程分割开来，从而可以使一个建造过程生成具有不同的内部表象的产品对象。<br />   使用建造者模式，用户就只需指定需要建造的类型就可以得到它们，而具体建造的过程和细节就不需要知道了。通常建造者模式用于创建一些复杂的对象，这些对象的内部结构和建造顺序通常是固定的，或者说方法的执行顺序固定不变，但方法的内容经常会有复杂的变化。<br />]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（10） 外观模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6347209</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6347209</guid><author>veverrr</author><pubDate>Sat, 23 Apr 2011 18:33:00 +0800</pubDate><description><![CDATA[外观模式：为子系统中的一组接口提供一个一致的界面，此模式定义了一个高层接口，这个接口使得这一子系统更加容易使用。有一个面向客户代码的外观类Facade，该外观类向客户代码提供了一组接口，每一接口可能封装了子系统的一系列操作，但是一系列的操作对客户代码是隐藏的，而对于外观类则是开放的。通俗的说：假设客户代码为了实现某个功能，需要从多个子系统中调用多个方法。如果直接调用，那么将极大增强了代码间的耦合性，同时也为代码的后期维护埋下了很大的隐患，加大了后期维护的成本。这个时候，使用外观类，该外观类保存了需要使用到的]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（9） 模板方法模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6346940</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6346940</guid><author>veverrr</author><pubDate>Sat, 23 Apr 2011 16:31:00 +0800</pubDate><description><![CDATA[<br />模板方法模式：<br />定义一个操作中算法的骨架，将这个骨架中包含的其他方法延迟到子类去实现。模板方法模式使得子类可以在不改变一个算法的结构前提下重新定义该算法中的某些步骤的实现。<br />模板方法模式的用处  ：<br />        当不变的和可变的行为在子类的方法实现中混合成一起的时候，不变的行为就会在多个子类中重复出现。通过模板方法模式可以将这些不变的行为搬移到父类中去。<br />       简单的理解就是：父类定义了一套行为流程，并且实现了这套行为流程中的某些公共的行为，而]]></description><category></category></item><item><title><![CDATA[java 设计模式学习笔记（8） - 原型模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6329109</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6329109</guid><author>veverrr</author><pubDate>Sun, 17 Apr 2011 12:55:00 +0800</pubDate><description><![CDATA[<br />原型模式：  用原型实例指定传经对象的种类，并且通过拷贝这些原型创建新的对象。其实就是从一个对象再创建另外一个可定制的对象，而且不需知道任何创建的细节。<br />    根据上一篇 《浅拷贝和深拷贝》的内容，我们知道，浅拷贝后原对象(A)和复制出来的对象(B)中对其他对象的引用都是相同的。如果复制出来的对象(B)改变了其保存的其他对象(C)的引用内容，那么这个原对象(A)对保存的其他对象(C)也会跟着改变。<br />    使用原型模式的目的，就是希望能够复制出多个对象，并且每个对象都是独立]]></description><category></category></item><item><title><![CDATA[java 设计模式学习笔记（7）   -  浅拷贝和深拷贝]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6328417</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6328417</guid><author>veverrr</author><pubDate>Sat, 16 Apr 2011 21:28:00 +0800</pubDate><description><![CDATA[在JAVA 语言中，拷贝按拷贝结果分为两种：浅拷贝，深拷贝浅拷贝 ：“被克隆对象的所有变量都含有与原来的对象相同的值，而它所有的对其他对象的引用都仍然指向原来的对象。换一种说法就是浅克隆仅仅克隆所考虑的对象，而不克隆它所引用的对象。”  深拷贝： “被克隆对象的所有变量都含有与原来的对象相同的值，但它所有的对其他对象的引用不再是原有的，而这是指向被复制过的新对象。换言之，深复制把要复制的对象的所有引用的对象都复制了一遍，这种叫做间接复制。”   quote  ：http://sakyone.iteye.co]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（6） 代理模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6327674</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6327674</guid><author>veverrr</author><pubDate>Sat, 16 Apr 2011 14:40:00 +0800</pubDate><description><![CDATA[代理模式：为其他对象提供一种代理以提供对这个对象的的访问。代理模式的应用范围比较广泛： 1.远程代理，为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实 2. 虚拟代理， 根据需要创建开销很大的对象，通过虚拟代理来存放实例化需要很长时间的真实对象 3. 安全代理，用来控制真实对象访问时的权限 4. 智能指引，当调用真实的对象时，代理处理另外一些事。现实生活中，就存在很多的代理例子。最普遍的就属日常生活中的商品购买，工厂大批量的生产商品，但一般都不会将单独出售某件或少数几件给]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（5）  装饰模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6327422</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6327422</guid><author>veverrr</author><pubDate>Sat, 16 Apr 2011 12:13:00 +0800</pubDate><description><![CDATA[<br />装饰模式：   动态地给一个对象添加额外的职责。就增加功能来说，装饰模式比增加子类更加灵活。<br /> <br />我承认我看了《大话设计模式》 中的装饰模式，花了一个小时才消化掉，为此，我改写了《大话设计模式》 的例子以便加深印象。<br />在这里，我简单的以给某个人类穿衣服裤子等行为来表示对一个对象的装饰动作。<br />1. 根据面向接口编程的原则，建立一个 Humen 类，这个类是一个抽象类，并有一个抽象方法 dress()   ,是人类都要穿衣服吧。<br /> <br />/**]]></description><category></category></item><item><title><![CDATA[java 设计模式 学习笔记（4） 策略模式]]></title><link>https://blog.youkuaiyun.com/veverrr/article/details/6326625</link><guid>https://blog.youkuaiyun.com/veverrr/article/details/6326625</guid><author>veverrr</author><pubDate>Fri, 15 Apr 2011 21:00:00 +0800</pubDate><description><![CDATA[策略模式是一种定义一系列算法的方法，从概念上来看，所有的这些方法完成的都是相同的工作，只是实现不同。 它可以以相同的方式调用所有算法，减少了各种算法类和使用算法的类之间的耦合。为什么要使用策略模式中的Context 类？对于前面的三种工厂设计模式，如果用工厂来创建实例，并通过实例调用给实例类中的方法来实现功能。而使用了Context类，通过将 具体的算法类  注入到Context 构造函数中，并在Context 自身的函数中来调用 注入到构造函数中的 具体算法类的特定方法。也就是说，用户代码只是选择了一个具]]></description><category></category></item></channel></rss>