<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bulebirds的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bulebirds</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bulebirds]]></copyright><item><title><![CDATA[java中如何获取绝对路径和相对路径]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/49508323</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/49508323</guid><author>bulebirds</author><pubDate>Fri, 30 Oct 2015 11:12:15 +0800</pubDate><description><![CDATA[3. JSP/Servlet中获得当前应用的相对路径和绝对路径
3.1 JSP中获得当前应用的相对路径和绝对路径
 根目录所对应的绝对路径:request.getRequestURI()
 文件的绝对路径    　:application.getRealPath(request.getRequestURI());
 当前web应用的绝对路径 :application.getRealPath]]></description><category></category></item><item><title><![CDATA[WeakHashMap和HashMap的区别]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/49466577</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/49466577</guid><author>bulebirds</author><pubDate>Wed, 28 Oct 2015 11:33:29 +0800</pubDate><description><![CDATA[WeakHashMap，此种Map的特点是，当除了自身有对key的引用外，此key没有其他引用那么此map会自动丢弃此值，
见实例：此例子中声明了两个Map对象，一个是HashMap，一个是WeakHashMap，同时向两个map中放入a、b两个对象，当HashMap  remove掉a 并且将a、b都指向null时，WeakHashMap中的a将自动被回收掉。出现这个状况的原因是，对于a对象而]]></description><category></category></item><item><title><![CDATA[chrome扩展实现获取网页数据的功能]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/48894289</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/48894289</guid><author>bulebirds</author><pubDate>Sun, 04 Oct 2015 09:35:51 +0800</pubDate><description><![CDATA[场景:某网站后台管理员页面,有几万会员数据,但列表页面每次只能显示20个,通过F12可以得知列表是通过RPC调用,然后解析Json串在前端进行展示渲染的,现要获取所有会员信息,因后台没有导出功能,如果一页一页翻看并拷贝粘贴,那肯定是一件极其繁琐无聊的事情;


解决过程:最先想到的是编写一个web程序,然后通过httpclient调用RPC,带上cookiee及参数,但是调用时发现无法通过用]]></description><category></category></item><item><title><![CDATA[附件上传图片缩小保存]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/48845163</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/48845163</guid><author>bulebirds</author><pubDate>Thu, 01 Oct 2015 10:51:32 +0800</pubDate><description><![CDATA[1.定义保存路径
fileAllPath = fileDirectory.TrimEnd('\\') + "/Uploadfiles/" + newname + suffix



2.附件控件submit提交表单后获取HttpPostedFile对象,假设是单个文件上传
HttpPostedFile fup_Upload1 = context.Request.Files[0];]]></description><category></category></item><item><title><![CDATA[C#开发微信公众平台-就这么简单]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/47986829</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/47986829</guid><author>bulebirds</author><pubDate>Tue, 25 Aug 2015 23:02:57 +0800</pubDate><description><![CDATA[最近公司在做微信开发，其实就是接口开发，网上找了很多资料，当然园友也写了很多教程，但都是理论说了一大堆，实用指导或代码很少。如果你自己仔细研究下，其实就那么点东西，C#实现起来也很简单，原本不想写这篇文章的，但是本人当时摸索走了很多弯路，这边总结下，希望初次接触微信公众平台的朋友别像当时的我一样。

自己动手，丰衣足食。

服务号和订阅号

服务号是公司申请的微信公共账号，订阅号是个人]]></description><category></category></item><item><title><![CDATA[C# Socket的TCP通讯]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/46971305</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/46971305</guid><author>bulebirds</author><pubDate>Mon, 20 Jul 2015 17:25:05 +0800</pubDate><description><![CDATA[Socket的TCP通讯

一、 socket的通讯原理

服务器端的步骤如下。

（1）建立服务器端的Socket，开始侦听整个网络中的连接请求。

（2）当检测到来自客户端的连接请求时，向客户端发送收到连接请求的信息，并建立与客户端之间的连接。

（3）当完成通信后，服务器关闭与客户端的Socket连接。

客户端的步骤如下。

（1）建立客户端的Socket，确定]]></description><category></category></item><item><title><![CDATA[Java NIO原理图文分析及代码实现]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/46922661</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/46922661</guid><author>bulebirds</author><pubDate>Fri, 17 Jul 2015 09:19:31 +0800</pubDate><description><![CDATA[最近在分析hadoop的RPC(Remote Procedure Call Protocol ，远程过程调用协议，它是一种通过网络从远程计算机程序上请求服务，而不需要了解底层网络技术的协议。可以参考：http://baike.baidu.com/view/32726.htm ）机制时，发现hadoop的RPC机制的实现主要用到了两个技术：动态代理（动态代理可以参考博客：http://weixiao]]></description><category></category></item><item><title><![CDATA[Java NIO：NIO概述]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/46897767</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/46897767</guid><author>bulebirds</author><pubDate>Wed, 15 Jul 2015 20:01:31 +0800</pubDate><description><![CDATA[在上一篇博文中讲述了几种IO模型，现在我们开始进入Java NIO编程主题。NIO是Java 4里面提供的新的API，目的是用来解决传统IO的问题。本文下面分别从Java NIO的几个基础概念介绍起。

　　以下是本文的目录大纲：

　　一.NIO中的几个基础概念

　　二.Channel

　　三.Buffer

　　四.Selector

　　若有不正之处，请多多谅解并]]></description><category></category></item><item><title><![CDATA[Java并发编程：线程池的使用]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/46897457</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/46897457</guid><author>bulebirds</author><pubDate>Wed, 15 Jul 2015 19:24:52 +0800</pubDate><description><![CDATA[在前面的文章中，我们使用线程的时候就去创建一个线程，这样实现起来非常简便，但是就会有一个问题：

　　如果并发的线程数量很多，并且每个线程都是执行一个时间很短的任务就结束了，这样频繁创建线程就会大大降低系统的效率，因为频繁创建线程和销毁线程需要时间。

　　那么有没有一种办法使得线程可以复用，就是执行完一个任务，并不被销毁，而是可以继续执行其他的任务？

　　在Java中可以通过线程池]]></description><category></category></item><item><title><![CDATA[Java中Runnable和Thread的区别]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/46895737</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/46895737</guid><author>bulebirds</author><pubDate>Wed, 15 Jul 2015 17:02:14 +0800</pubDate><description><![CDATA[在java中可有两种方式实现多线程，一种是继承Thread类，一种是实现Runnable接口；Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了，但是一个类只能继承一个父类，这是此方法的局限。

下面看例子：
package org.thread.demo;  class MyThread extends Th]]></description><category></category></item><item><title><![CDATA[Spring MVC入门]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/46864705</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/46864705</guid><author>bulebirds</author><pubDate>Mon, 13 Jul 2015 17:00:24 +0800</pubDate><description><![CDATA[2．1、Spring Web MVC是什么

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架，即使用了MVC架构模式的思想，将web层进行职责解耦，基于请求驱动指的就是使用请求-响应模型，框架的目的就是帮助我们简化开发，Spring Web MVC也是要简化我们日常Web开发的。

 

另外还有一种基于组件的、事件驱动的W]]></description><category></category></item><item><title><![CDATA[利用ActionFilterAttribute来判断用户是否登陆等等]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/46859451</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/46859451</guid><author>bulebirds</author><pubDate>Mon, 13 Jul 2015 10:36:24 +0800</pubDate><description><![CDATA[ActionFilterAttribute是Action过滤类,该属于会在执行一个action之前先执行.而ActionFilterAttribute是
VC的一个专门处理action过滤的类.基于这个原理,
假设某个action:AdminIndex,我们给该Action的最起码访问要求是用户必须是登陆状态.那么,我们要做的工作就是在
[CheckLogin()]//在该Action上面加]]></description><category></category></item><item><title><![CDATA[80端口被占用问题解决]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/45151031</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/45151031</guid><author>bulebirds</author><pubDate>Mon, 20 Apr 2015 15:36:07 +0800</pubDate><description><![CDATA[regedit 打开注册表


HKEY_LOCAL_MACHINE   ->  SYSTEM -> CurrentControlSet -> services -> HTTP 


修改Start 的值 原先为3改为4 重启电脑即可


需要注意的是 改成4以后会影响一些打印之类的服务]]></description><category></category></item><item><title><![CDATA[关于 redis、memcache、mongoDB 的对比]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/44870839</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/44870839</guid><author>bulebirds</author><pubDate>Sat, 04 Apr 2015 09:10:08 +0800</pubDate><description><![CDATA[从以下几个维度，对 redis、memcache、mongoDB 做了对比。
1、性能
都比较高，性能对我们来说应该都不是瓶颈。
总体来讲，TPS 方面 redis 和 memcache 差不多，要大于 mongodb。
2、操作的便利性
memcache 数据结构单一。（key-value）
redis 丰富一些，数据操作方面，redis 更好一些，较少的网络 IO 次数，同时还提供]]></description><category></category></item><item><title><![CDATA[ajax跨域调用问题处理]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/44856329</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/44856329</guid><author>bulebirds</author><pubDate>Fri, 03 Apr 2015 15:56:52 +0800</pubDate><description><![CDATA[Ajax的跨域问题，归根结底其实是javascript的同源策略（这里不作探讨，不清楚可以百度下）导致的，以前不用Ajax，用XMLHttprequest对象跨域请求也是有问题的。
 
解决跨域调用问题有以下几种方法：
1.使用中间层绕过跨域问题（代理模式）
举个例子大家就清楚了:a站点要通过http请求获得b站点的数据，那么在a站点提供一个Proxy接口GetRequestByUrl，然]]></description><category></category></item><item><title><![CDATA[mysql执行update用到replace需要注意]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/44855533</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/44855533</guid><author>bulebirds</author><pubDate>Fri, 03 Apr 2015 15:05:10 +0800</pubDate><description><![CDATA[在mysql中执行update，如果用到replace需要注意下



今天在mysql中执行如下语句
update table1 set column1=replace(column1,'a','b'),column2=replace(column2,'a','b') and CTime>'2015-03-17'

如果在sqlserver中是会报语法错误的，但在mysql中会执行]]></description><category></category></item><item><title><![CDATA[mysql索引问题]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/44648791</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/44648791</guid><author>bulebirds</author><pubDate>Thu, 26 Mar 2015 13:35:36 +0800</pubDate><description><![CDATA[对于任何DBMS，索引都是进行优化的最主要的因素。对于少量的数据，没有合适的索引影响不是很大，但是，当随着数据量的增加，性能会急剧下降。
如果对多列进行索引(组合索引)，列的顺序非常重要，MySQL仅能对索引最左边的前缀进行有效的查找。例如：
假设存在组合索引it1c1c2(c1,c2)，查询语句select * from t1 where c1=1 and c2=2能够使用该索引。查询语句s]]></description><category></category></item><item><title><![CDATA[Servlet学习]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/44617121</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/44617121</guid><author>bulebirds</author><pubDate>Wed, 25 Mar 2015 09:17:43 +0800</pubDate><description><![CDATA[servlet 是在服务器上运行的小程序。这个词是在
 Java applet的环境中创造的，Java
 applet 是一种当作单独文件跟网页一起发送的小程序，它通常用于在客户端运行，结果得到为用户进行运算或者根据用户互作用定位图形等服务。


生命周期编辑


客户端请求该 servlet；

加载 servlet 类到内存；

实例化、初始化该 servlet；
]]></description><category></category></item><item><title><![CDATA[linux下绑定host]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/44307931</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/44307931</guid><author>bulebirds</author><pubDate>Mon, 16 Mar 2015 16:18:47 +0800</pubDate><description><![CDATA[1./sbin/ifconfig 查看本机ip信息
2.sudo vi /etc/hosts 打开编辑页面，移到要修改的位置处，a表示在后面加（append）,i表示在前面插入(insert)
3.shift+insert 可以复制粘贴板的东西
4.:x保存退出(获取:qw)，如果不保存，可以:q!（退出不保存）
5.cat /etc/hosts 查看问件]]></description><category></category></item><item><title><![CDATA[使用IntelliJ IDEA架设Java程序]]></title><link>https://blog.youkuaiyun.com/bulebirds/article/details/44201977</link><guid>https://blog.youkuaiyun.com/bulebirds/article/details/44201977</guid><author>bulebirds</author><pubDate>Wed, 11 Mar 2015 17:45:19 +0800</pubDate><description><![CDATA[1.      安装JDK
2.      下载安装IntelliJ IDEA
3.      下载安装tomcat（如果需要使用hsf请下载hsf版的tomcat）
4.      打开IDEA，Import Project，如果是maven项目，选择pom.xml即可
5.      配置tomcat server，如下图（如果报Memory usage is low, parachu]]></description><category></category></item></channel></rss>