- 浏览: 291838 次
- 性别:
- 来自: 广州
最新评论
-
小科学家:
功能真强大
js封装表格渲染器(带分页功能) -
zhangyi_ming:
你好,请问你用的extjs什么版本,2.2能使用吗
关于extjs multiselect的布局问题 -
hzxlb910:
还是例子看着清晰,谢谢
Ext.grid.GridPanel 表格 -
macrotea:
好厉害啊
关于dom4j构建XML文件时中文乱码的探讨
文章列表
在Linux中安装jenkins
- 博客分类:
- 持续集成/jenkins
下载jenkins
mkdir -p jenkins/jenkins_home
mkdir -p jenkins/jenkins_node
cd jenkins
wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
4)启动jenkins
start_jenkins.sh
#!/bin/bash
JENKINS_ROOT=/home/AAA/jenkins
export JENKINS_HOME=$JENKINS_ROOT/jenkins_home
java -jar $JENKINS_ROOT ...
DFA简介
在实现文字过滤的算法中,DFA是唯一比较好的实现算法。DFA即Deterministic Finite Automaton,也就是确定有穷自动机,它是是通过event和当前的state得到下一个state,即event+state=nextstate。下图展示了其状态的转换
在这幅图中大写字母(S、U、V、Q)都是状态,小写字母a、b为动作。通过上图我们可以看到如下关系
a b b S -----> U S -----> V U -----> V
在实现敏感词过滤的算法中,我们必 ...
P2P中的NAT穿越方案简介
- 博客分类:
- 网络
1 P2P简介
P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式有着明显的区别,传统的服务器客户端模型如图2所示。P2P这一术语在不同的上下文环境里可能有不同的内涵,它可以指一种通信模式、一种逻辑网络模型、一种技术、甚至一种理念。在P2P网络中如图1所示,所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息、处理器运算能力、存储空间等资源的共享。P2P网络具有分散性、可扩展性、健壮性等特点,这使得P2P
Socket/TCP粘包、多包和少包, 断包
- 博客分类:
- 网络
为什么TCP 会粘包
前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整。为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? 带者问题,我们先分析一下问题。 提到通信, 我们面临都通信协议,数据协议的选择。 通信协议我们可选择TCP/UDP:
TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据, ...
socket的半包,粘包与分包的问题
- 博客分类:
- 网络
首先看两个概念: 短连接: 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接:
TCP/IP协议中分包与重组原理介绍
- 博客分类:
- 网络
引言
分片是分组交换的思想体现,也是IP协议解决的两个主要问题之一。在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题。但是分组在传输过程中不断地分片和重组会带来很大的工作量还会 ...
TCP、UDP数据包大小的确定
- 博客分类:
- 网络
TCP、UDP数据包大小的确定
UDP和TCP协议利用端口号实现多项应用同时发送和接收数据。数据通过源端口发送出去,通过目标端口接收。有的网络应用只能使用预留或注册的静态端口;而另外一些网络应用则可以使用未被注册的动态端口。因为UDP和TCP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。动态端口的范围是从1024到65535。
MTU最大传输单元,这个最大传输单元实际上和链路层协议有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的限制,每个以太网帧都有最小的大小64bytes最大不能 ...
作为消息发送
按照JMS规范,为了保证可靠性,所有的消息都应该是发送到broker,然后交由broker来投递的。也即是说其实JMS是不建议或不支持传输文件的。
对于比较小的文件,简单的处理方式是先读取所有的文件成byte[],然后使用ByteMessage,把文件数据发送到broker,像正常的message一样处理。对于大文件,例如1GB以上的文件,这么搞直接把client或是broker给oom掉了。
这种方式仅仅适用于小文件的传输。特别是如果broker端使用数据库作为存储,message序列化以后存放于blob字段,文件传输频繁或是稍微有点大,写入效率极低。
直接传输文件
...
ActiveMQ的多种部署方式
单点的ActiveMQ作为企业应用无法满足高可用和集群的需求,所以ActiveMQ提供了master-slave、broker cluster等多种部署方式,但通过分析多种部署方式之后我认为需要将两种部署方式相结合才能满足我们公司分布式和高可用的需求,所以后面就重点将解如何将两种部署方式相结合。
1、Master-Slave部署方式
package file;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import javax.image ...
button伪装成超链接形式
- 博客分类:
- html/css
<button type="submit" class="link"><span>按钮</span></button>
/* button伪装成超链接形式 */
button.link {
font-size: 1em;
text-align: left;
color: blue;
background: none;
margin: 0;
padding: 0;
border: none;
cursor: point ...
1. 在 String.prototype.replace 方法中使用 /g 和 /i标志位 令很多 JavaScript 初学者意外的是,字符串的 replace 方法并不会 替换所有匹配的子串——而仅仅替换第一次匹配。当然 JavaScript 老手们都知道这里可以使用正则表达式,并且需要加上一个全局标志位(/g):
Javascript代码
// Mistake
// 踩到坑了
var str = "David is an Arsenal fan, which means David is great";
str.replace( ...
在apache commons-lang(2.3以上版本)中为我们提供了一个方便做转义的工具类,主要是为了防止sql注入,xss注入攻击的功能。总共提供了以下几个方法:
1.escapeSql 提供sql转移功能,防止sql注入攻击,例如典型的万能密码攻击' ' or 1=1 ' '
1
StringBuffer sql = new StringBuffer("select key_sn,remark,create_date from tb_selogon_key where 1=1 ");
2
if(!Comm ...
jQuery的deferred对象详解
- 博客分类:
- jQuery
一、什么是deferred对象?
开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。
通常的做法是,为它们指定回调函数(callback)。即事先规定,一旦它们运行结束,应该调用哪些函数。
但是,在回调函数方面,jQuery的功能非常弱。为了改变这一点,jQuery开发团队就设计了deferred对象。
简单说,deferred对象就是jQuery的回调函数解决方案。在英语中,defer的意思是"延迟",所以deferred对 ...
Memcached 工作原理
- 博客分类:
- Memcached
Memcached处理的原子是每一个(key,value)对(以下简称kv对),key会通过一个hash算法转化成hash-key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。
Memcached有两个核心组件组成:服务端(ms)和客户端(mc),在一个memcached的查询中,mc先通过计算key的hash值来 确定kv对所处在的ms位置。当ms确定后,客户端就会发送一个查询请求给对应的ms,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以 memcached交互带给网络的影响是最小化的。
举例说明:考虑以下这个 ...