自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦断酒醒无归处

颜志军的技术博客

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 WebSocket初探

众所周知,socket是编写网络通信应用的基本技术,网络数据交换大多直接或间接通过socket进行。对于直接使用socket的客户端与服务端,一旦连接被建立则均可主动向对方传送数据,而对于使用更上层的HTTP/HTTPS协议的应用,由于它们是非连接协议,所以通常只能由客户端主动向服务端发送请求才能获得服务端的响应并取得相关的数据。而当前越来越多的应用希望能够及时获取服务端提供的数据,甚至希望能够达到接近实时的数据交换(例如很多网站提供的在线客户系统)。为达到此目的,通常采用的技术主要有轮询、长轮询、流等,而

2013-08-25 14:01:59 75634 7

原创 Java枚举

枚举是限定有限可能值的一种手段,使用枚举可以降低程序出错的几率,并可以提高代码的可读性与可维护性。Java中的枚举并不是简单常量的集合,而是一个对象,其本质依然是类,所以Java中的枚举除了提供一系列相关值以外,还提供了一些额外功能,甚至还可以根据需要自行添加一些功能。本文拟就Java枚举的用法做一相对全面的介绍。

2013-07-24 06:36:15 19025 3

原创 Solr连接数据库配置

Solr是基于Lucene的全文搜索服务器,它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。本文档介绍将Solr4.2.0部署到Tomcat6并连接数据库获取数据的方法。一、

2013-05-04 14:54:51 5605 1

原创 单点登录系统CAS搭建及取得更多用户信息的实现

一、            单点登录简介单点登录(Single sign-on,简称为 SSO),是目前比较流行的企业业务整合的解决方案之一。其简单定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。类似的,用户只需要执行一次退出操作就可以终止对所有相关应用系统的访问。本文主旨在介绍如何使用CAS实现单点登录时取得更多的用户信息,单点登录的原理将不作阐述。二、

2013-03-25 20:03:18 11036 3

原创 通过网站将大量数据导出为XML

由于客户的需要,WEB应用程序中有一项功能是要将数据库中的一张表导出成XML文件下载。最初采用的方案是一次将表中的所有数据读出,然后在内存中通过DOM完整地组织XML文档,完成以后通过转换将其输出到页面的响应流中。在数据量小时,这样的方案没有什么问题,但是当数据库中的数据比较多时,程序运行就产生了异常,查看Tomcat的日志,发现是内存溢出了。如何解决这个问题呢?        要从根本上解决

2012-10-15 19:46:48 2903

原创 Tomcat性能问题调查

在一个应用中,发现Tomcat线程达到饱和,但并发访问量并不是非常大,本文记录了如何进行跟踪与查找的方法,以及由此得到的几点心得。

2011-04-29 09:18:00 2650 2

原创 Java实现Windows系统服务

Windows系统服务(NT服务)相对于普通应用程序最直接的一个优点是系统启动后就可直接运行而无需用户登录系统。事实上,作为服务器来使用的系统,通常也并不需要登录系统,这样不只是方便,也提升了系统的安全性。不过,通常情况下,Windows系统服务使用C或C++实现,而有些时候基于某些因素的考虑,我们期望使用Java来实现系统服务,可以借助开源的JavaService达到此目的。以下演示其实现过

2010-03-04 20:47:00 15327 10

原创 任务栏隐藏的实质

 众所周知,Windows的任务栏可以设定成自动隐藏,这样任务栏将只在需要的时候显示出来,而其它时间则隐藏起来,通常这样做可以为我们提供更大一点的工作空间。那么任务栏的隐藏是如何实现的呢?是否与我们通常情况隐藏窗口时采用不显示窗口的手法一致呢?其实之所以提出以上问题,是由于在尝试识别当前任务栏状态的时候碰到了问题。按照通常的想法,如果想要识别任务栏是否处于显示状态,可以通过FindWi

2009-12-29 21:17:00 3478 12

原创 利用CImage完成图片的显示、拷贝、绘制及转换图片格式

    近日一个利用VC编写的程序需要在界面上显示图片,经过查阅资料利用CImage方得实现。将相关技术点整理如下,以供以后参考。一、             图片的载入如果需要在界面上显示的是已经存在的图片,那么需要将待显示的图片载入至CImage对象之中,CImage提供了四个载入函数: HRESULT Load(LPCTSTR pszFileName) throw( );

2009-11-20 11:04:00 12351 6

原创 C++中实现无符号右移

 在Java及JavaScript中提供了无符号右移操作符“>>>”,无符号右移操作符与普通右移操作符“>>”的区别是>>在右移时将以符号扩展原则进行右移,即在右移过程中它将保持原有数据的正负号不变,简单地说,就是在右移正数时高位补0、右移负数时则高位补1,而无符号右移操作符>>>在右移时不考虑符号问题,即无论右移正数还是负数,其最高位都是补0。无符号右移本质上是将被右移的数所有存储位都视

2009-11-10 22:57:00 11284 14

原创 samba服务架设

       家里有好几台电脑,一些常用的文件及像片为了方便使用,放置在了一台机器的共享文件夹之中,近期基于一些因素的考虑,准备将这个共享文件夹转移到LINUX系统之下,期间碰到了一些问题,遂将解决过程整理成文,以备查阅。一、             软件环境1.       LINUX:2.6.9-5EL2.       WINDOWS:XP SP2二、           

2009-09-29 20:42:00 1052

原创 多线程中生成随机数序列重复问题的解决方法

 使用过随机数的程序员都知道在程序中并不能够实现的真正的完全的随机数函数。随机数函数产生的是通过公式计算出来的一系列伪随机数,这个公式会采用一个种子数计算出一个数,而该数将成为产生下一个数的种子数。基于产生随机数的原理,两次调用随机数后产生的随机数序列将是一样的,显然,这不是我们的期望的结果。为了解决上述问题,使得随机数函数产生的数尽量随机,编程语言通常提供了设定种子数的功能,而一般情况下

2009-09-25 11:59:00 9170 8

转载 c++智能指针的创建

zero 坐在餐桌前,机械的重复“夹菜 -> 咀嚼 -> 吞咽”的动作序列,脸上用无形的大字写着:我心不在焉。在他的对面坐着 Solmyr ,慢条斯理的吃着他那份午餐,维持着他一贯很有修养的形象 ——— 或者按照 zero 这些熟悉他本质的人的说法:假象。“怎么了 zero ?胃口不好么?”,基本填饱肚子之后,Solmyr 觉得似乎应该关心一下他的学徒了。“呃,没什么,只是 …… Solm

2009-09-08 20:45:00 3165 4

转载 如何提高自己的耐挫能力?

 人们常说:最好的竞争策略就是避免竞争。同样的道理,应对挫折的最好办法就是用积极的心态,加上灵活的头脑,避免挫折感的产生。  看目标,别看脚下  我在杭州桐庐山水旅游节上,看过“高空表演王子”阿迪力的表演。表演在富春江江面上进行,钢丝绳横贯在1000多米的江面上,风很大,钢丝绳一直在摇晃。但,阿迪力还是起步走了,很慢。  意外的事发生了:江面上的一只游艇突然撞了一根固定钢丝绳的拉线,钢

2009-07-27 08:48:00 1412

原创 JSP自定义标签之四:处理标签体

通过前面的例子,可以发现编写一个不需要对标签体做处理的标签处理程序是很容易的。对于一些较为复杂的标签,可能会包含有标签体,而标签处理程序则应对标签体中的内容予以适当的处理。提示:所谓标签体是指标签开始标记和标签结束标记之间的内容,当标签开始标记和标签结束标记之间不存在任何内容时,通常可以将标签开始标记和标签结束标记合二为一,即在标签开始标记结束处的“>”之前添加一个“/”。标签处理程序如果

2009-07-23 16:30:00 4264 4

原创 JSP自定义标签之三:为标签添加属性

前面定义的版权标签,所有版权信息全部固化在标签处理程序之中,这样它仅适用于姓名为“颜志军”的开发者,也就是这个版权标签成为了颜志军的专用标签。显然,如果这个标签能方便设定版权的所有者,那么它将可以被每一个开发者所使用而不再只是颜志军的专用版权标签。正如您所想到的一样,自定义标签提供了传入特定信息的功能,更确切地说,自定义标签通过提供对属性的支持实现了这样的功能。自定义标签在标记中可以通过属性值

2009-07-15 20:57:00 7284 1

原创 JSP自定义标签之二:基本步聚

在《简单实例》中我们演示了创建自定义标签的完整的过程,本文将对这个过程进行一些解释说明,以便读者能够了解创建自己定义标签的基本过程。自定义标签其实与JavaBeans极为相似,如果已经熟练掌握了JavaBeans的用法那么学习自己定义标签将是极为简单的事情。当然,从实现上说,自定义标签与JavaBeans还是有一些区别的。首先,作为自定义标签它必须拥有一个标签处理程序类,这个类就相当于一个

2009-07-13 22:25:00 1463

原创 JSP自定义标签之一:简单实例

当前软件开发越来越重视分工与协作,对于JSP技术而言,视图层与模型层分别由不同的团队完成也成为理所当然的选择,基于技术专长不同及其它因素考虑,众多规范中都明确要求JSP页面代码中不允许出现Java代码。在JSP中使用自定义标签可以达到这样的目的,事实上,我们所熟知的各类框架基本上都是通过自定义标签的形式来实现的。通过使用自定义标签,我们可以将实现复杂的逻辑在页面用简单的标签来加以展示。下面我们

2009-07-12 11:16:00 2541

转载 企业文化趣谈

趣谈一:回应    该企业内部互相提意见、缺点指正、批评时一般不会让你很难堪很尴尬,更不会让你火冒三丈。因为他们用了一个很文雅很有人情味的两个字:回应!      不管是员工还是领导,在某些方面作得不好时,都可以说:“某某,我给你一个回应”。被回应者一般都会笑着说:“好啊,你说”。于是一二三五六七之后,对的点头接受并真诚致谢,感觉还有点不那么回事的或需解释的,好了,这就又是我下面要谈的趣谈二,我们

2009-06-28 16:23:00 1475

转载 笑话一则:麦肯锡风格 (仅做娱乐)

一天,一个农民赶着一群羊在草原上走。迎面碰到一个人对他说:“我可以告诉你,你的羊群有几只羊。” 他用卫星定位技术和新的网络技术将信息发到总部的数据库……片刻后,他告诉农民共有1460只羊。农民点头称对。随后,他要求农民给他一只羊作为报酬,农民答应了。       不过农民说:“如果我能说出你是哪家公司的,您能否把羊还给我?”那人点头。农民说:“你是麦肯锡公司的。”那人很惊讶地问农民是怎么知道的。农

2009-06-28 16:13:00 1689

转载 职场,可不敢乱忽悠

作者:毛小民    身在职场之中尤其营销人员,虽说人太老实会吃亏,但是如果对自己不切合实际的乱忽悠,同样会吃亏,甚至会吃大亏的。   案例一、有一次我负责为一家服务的企业招聘销售人员,在招聘前该企业领导授意我注意在这些新人当中看是否有适合做销售主管的人才,以便企业在适当时候提拔使用。   面试完毕后,我对其中一个参加招聘的销售人员小李比较满意,无论从他的资历还是思路,成为一名销售主管或者培

2009-06-21 16:30:00 644

转载 管理者要慎行“没事找事”

 作者:张立伟   在企业的日常管理中,很多管理者经常“没事找事”——即看到下属没什么事情做就感觉不舒服,随机的给下属安排工作,以填补所谓的工作量并追求所谓的“保持工作状态”,这种“没事找事”大多与过程控制无关,往往是随机性的,而其结果也常常是工作量增大了、员工一片抱怨之声,工作成果却没有什么显著的提高。笔者以为,管理者应对这种没事找事的管理行为进行反思,并慎行之。   一、“没事找事

2009-06-21 16:24:00 866

原创 关于HTML代码中DIV标签的嵌套

前两天一个网友要自己做一个博客,其中页面布局是采用DIV来做的,不过,他需要用到DIV标签的嵌套,而这之中遇到了了点问题,嵌套的DIV总是不能以自己的意志显示在指定的位置。对于这种遵循规范使用DIV做布局的做法当然要鼓励,所以当时答应他有空时做个DIV嵌套的例子给他看。以下便是刚才随手写的一个DIV标签嵌套的例子,希望对他及其它网友有帮助。                        

2009-06-11 02:45:00 11884 3

原创 在EXCEL中实现对数据的过滤统计

      在EXCEL中对数据进行汇总统计是工作中经常会使用的,不过通常的汇总统计是针对一行或一列中的所有数据进行的,此时通过统计函数可以方便简单地完成对数据的汇总统计工作。但是,有时候也会需要先对数据进行过滤,然后再对过滤后的数据进行统计。     例如有如下数据: 如果我们需要计算所有人的成绩的平均值,使用AVERAGE(C2:C5)就很容易计算出结果,但是,如果我们需要

2009-06-02 18:42:00 12095

原创 在C++结构体中使用静态成员(二)

 C++中的类可以利用构造函数作一些初始化的操作,也可以利用析构函数作一些清理的操作。而事实上C++中的结构体与类是极为相似的,它也支持构造函数和析构函数,所以可以考虑为结构体添加构造函数与析构函数,在构造函数中将节点计数加1而在析构函数中节点计数减1。这样就不需要在产生节点时将计数器加1在删除节点时将计数器减1,在使用这种结构体产生节点时只需要考虑申请结点空间和删除节点就可以了,而不必再顾及

2009-05-08 22:26:00 5935 1

原创 在C++结构体中使用静态数据成员(一)

 在编程时用到了一个结构体,而该结构体类型的实例还需要连成一个单向链表,并且需要知道在该链表中包含有多少个节点。很容易想到可以使用STL中的队列之类的集合做到这一点,不过由于不是什么正经项目中要用的代码,所以就考虑能否在结构体中声明一个静态变量实现对节点的计数功能,因此有了如下代码。 #include  using namespace std; /* 结构体定义 */

2009-05-07 21:38:00 4639 1

原创 查找指定类型的驱动器

      最近正在写一个程序,其中有一个需求是程序运行时,必须要将特定的光盘放在光驱之中,因此需要枚举当前系统中所有的光驱并逐一识别是否是符合要求的光盘。      通过系统函数GetLogicalDriveStrings与GetDriveType要以完成上述需求,简述如下。      1.函数GetLogicalDriveStrings       其原型如下:        

2009-02-19 20:36:00 1441

转载 关闭自动播放

每次把移动硬盘查到USB口就会自动播放,尤其是移动硬盘分了N个区的时候,要手动一个一个的关掉,真是十分的麻烦!怎么样能解决这个问题呢?下面西部e网这里了几种关闭移动硬盘或者U盘自动播放的方法供大家参考: 1、SHIFT按键法 这个方法早在Windows98就用过了吧?好像是哦,反正我最早在关闭自动播放CD的时候就使用的这种方法。插入移动硬盘的时候按住SHIFT键,移动硬盘就不会自动播放啦。 2、策

2008-01-26 08:54:00 1122

原创 在LINUX下挂载U盘的方法

 在红帽下挂载U盘的方法如下:1.首先要知道U盘在LINUX下的设备名称    以root身份执行命令/sbin/fdisk -l,它将列出当前的设备,然后插入U盘,再次执行/sbin/fdisk -l,比较两次结果,找到U盘在系统中所对应的设备名2.建立U盘mount目录    执行命令:        mkdir /mnt/usb3.加载U盘    执行以下命令:

2008-01-15 17:01:00 1628

原创 关于XSL中xsl:for-each的order-by属性的使用

 在XML的教学中无意中发现有时候xsl:for-each的order-by属性不可用,经过测试发现是命名空间的问题。当这样声明时,order-by属性可用http://www.w3.org/TR/WD-xsl">而当使用如下声明时,order-by属性不可用http://www.w3.org/1999/XSL/Transform">原来order-by是XML草案中的内容,在

2007-11-20 17:42:00 3050 2

原创 USB设备插入与拔出的响应

有时候,我们需要检测到USB设备的插入与拔出事件,比如,一个有加密锁的程序,当加密锁拔出时,程序应当给出相应提示,并可能采取退出程序的举措。要达到这个目的,我们可以通过响应WM_DEVICECHANGE消息来达到这个目的,而WPARAM则可以告诉我们USB设备是插入还是拔出的。如果WPARAM为DBT_DEVICEARRIVAL则是插入事件,如果为DBT_DEVICEREMOVECOMPLETE则

2006-11-02 12:39:00 5151 3

翻译 Libxml 指南

Ishallwin译 2005.03.03   John Fleck    Copyright © 2002, 2003 John Fleck   版式本历史   Revision 1 June 4, 2002   初始草案   Revision 2 June 12, 2002   增加

2005-03-03 16:05:00 3048 1

JDK的下载、安装与配置

详细介绍了JDK的下载、安装与配置的过程,对于初学Java搭建学习环境很有帮助。

2009-04-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除