1、修改linux系统默认的1024个文件上限。
在/root/.bash_profile文件中加入:ulimit -n 4096
2、查看某个进程打开的文件数:
先用ps -aux找到pid,然后运行lsof -p %pid% | wc -l
3、查看80端口的连接数
netstat -nat|grep -i “80″|wc -l
4、查看系统内核版本
uname -a
5、查看Linux版本
登录到服务器执行 lsb_release -a ,即可列出所有版本信息
6、查看目录空间
du -h --max-depth=2 | sort -n
posted @
2008-07-21 11:33 josson 阅读(205) |
评论 (0) |
编辑 收藏
作为一个项目构建工具,Maven除具备Ant的功能外,最最要的就是jar包的管理。
相关文章:
http://www.blogjava.net/calvin/archive/2006/03/19/36098.html
http://www.ibm.com/developerworks/cn/opensource/os-maven2/
posted @
2008-06-20 21:25 josson 阅读(293) |
评论 (0) |
编辑 收藏
如果不小心安装了正版验证补丁,可以建一个批处理文件,在安全模式下运行即可删除。批处理文件内容如下:
@echo off
title 删除 Windows Genuine Advantage 脚本
cls
:ClearTemp
echo.
echo.
set choice=
set /p choice= 是否要尝试删除 Windows Genuine Advantage (Y/N)?:
if "%choice%"=="N" goto End
if "%choice%"=="n" goto End
echo.
echo 正在尝试删除 Windows Genuine Advantage ……
echo.
taskkill /f /im wgatray.exe /t
taskkill /f /im wgatray.dll /t
del /f /q %systemroot%\system32\wga*.*
taskkill /f /im wgatray.exe /t
taskkill /f /im wgatray.dll /t
del /f /q %systemroot%\system32\wga*.*
taskkill /f /im wgatray.exe /t
taskkill /f /im wgatray.dll /t
del /f /q %systemroot%\system32\wga*.*
taskkill /f /im wgatray.exe /t
taskkill /f /im wgatray.dll /t
del /f /q %systemroot%\system32\wga*.*

del /f /q %systemroot%\system32\legitcheckcontrol.dll
del /f /q %systemroot%\system32\dllcache\wga*.*

reg delete HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\WGALogon /f
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\uninstall\wganotify /f

:End
echo.
echo -----------------------处理完毕。请关闭。-----------------------
echo.
echo.
pause>nul

posted @
2008-06-06 12:50 josson 阅读(625) |
评论 (0) |
编辑 收藏
创建.bat文件,输入如下内容:
netsh interface ip set address "本地连接" static 192.9.101.106 255.255.255.0 192.9.101.1 1
netsh interface ip add dns name = "本地连接" addr = 202.101.172.35
netsh interface ip add dns name = "本地连接" addr = 202.101.172.36
posted @
2008-05-28 14:40 josson 阅读(1051) |
评论 (0) |
编辑 收藏
AXIS快速生成客户端调用文件的命令:
java -Djava.ext.dirs=./lib org.apache.axis.wsdl.WSDL2Java -o . -d Session -s -S true -p com.company.webservice.user http://192.9.101.106:8080/cms/services/UserService?wsdl
说明:
1、com.company.webservice.user表示新生成类文件的包名。
2、http://192.9.101.106:8080/cms/services/UserService?wsdl 表示Webservice服务地址。
3、注:相关的依赖包须存放在lib目录下,依赖包包括:
axis.jar
axis-ant.jar
axis-schema.jar
commons-discovery-0.2.jar
commons-logging-1.0.4.jar
jaxrpc.jar
log4j-1.2.8.jar
saaj.jar
wsdl4j-1.5.1.jar
创建bat文件,并将输入上述命令,执行后,即将在当前目录生成相关的类文件。
posted @
2008-05-28 14:30 josson 阅读(982) |
评论 (0) |
编辑 收藏
1、服务器向指定客户端推送数据
完成聊天室之类的项目时,利用DWR推模式向所有客户端推送数据,的确是很方便,只要客户端的访问页面确定就可以了。但是,若需要对访问同一页面的两个客户端(特别是根据用户身份作不同处理),加以区分,推送不同数据时,就没这么简单了。
有两种方式可以解决这个问题:
a)、服务端不处理,只管往客户端推送数据,由客户端对收到的数据进行过滤,然后再显示出来。但这种方式的缺点很明显,数据包多且不安全。
b)、对每个客户端进行单儿标识。DWR中以ScriptSession来代表一个客户端连接,我们可以通过设置ScriptSession的属性,来达到标识客户端的作用。如将sessionid或用户登录名保存在相应的ScriptSession属性中,向客户端推送数据时,根据这个属性加以过滤。相应的代码片段如下:
/**
* 返回有效的ScriptSession.
* @param user
* @return
*/
@SuppressWarnings("unchecked")
private ScriptSession getCurrentSession(String user){
ScriptSession xSession = null;
Collection<ScriptSession> sessions = new HashSet<ScriptSession>();
sessions.addAll(sctx.getScriptSessionsByPage(PAGE_MAIN));
for (ScriptSession session : sessions) {
//查询与消息接收者相符的客户端页面,并输出消息内容
String xuser = (String)session.getAttribute(SESSION_ATTRNAME_USER);
if(xuser != null && xuser .equals(user)){
xSession = session;
}
}
return xSession;
}
/**
* 清除已有连接, 标识当前连接用户(登录或刷新页面时,进行必要的清理).
* @param user
* @param session
*/
private void cleanDwrConnection(user,ScriptSession session){
String jid = StringUtils.parseBareAddress(user);
ScriptSession oldSession = getCurrentSession(jid);
if(oldSession != null && oldSession != session){
oldSession.invalidate();
oldSession = null;
}
session = WebContextFactory.get().getScriptSession();
session.setAttribute(SESSION_ATTRNAME_USER, jid);
}
2、使用DWR推模式的实现中,刷新页面引起长连接丢失问题
最近在做web版即时消息客户端时,遇到这样一个问题:为了减少无用的服务连接,只在登录后才激活长连接(dwr.engine.setActiveReverseAjax(true),注销后取消长连接)。登录客户端后,用了一段时间后,无法收消息了(消息无法推送到客户端)。后来调试后,发现ScriptSession实例没有绑定物理连接信息(conduits:m:root为空)。测试后发现,当刷新页面后,会产生一个新的ScriptSession实例,而这个ScriptSession的conduits:m:root为空,所以怎么都无法将数据推送到客户端去了。
客户端激活长连接后(dwr.engine.setActiveReverseAjax(true);),对应的ScriptSession实例会绑定物理连接信息,而刷新页面刷新而不重新激活长连接,新产生的ScriptSession是没有绑定物理连接信息的,一旦绑定物理连接信息的ScriptSession被销毁后,就产生了这个问题。
posted @
2008-03-31 16:41 josson 阅读(4120) |
评论 (0) |
编辑 收藏
删除表主键:
ALTER TABLE TABLENAME DROP CONSTRAINT PK_TABLENAME;
新增表主键:
alter table TABLENAME add CONSTRAINT PK_TABLENAME primary key (ID);
posted @
2008-03-19 11:00 josson 阅读(399) |
评论 (0) |
编辑 收藏
window.event
IE:有window.event对象
FF:没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)
鼠标当前坐标
IE:event.x和event.y。
FF:event.pageX和event.pageY。
通用:两者都有event.clientX和event.clientY属性。
鼠标当前坐标(加上滚动条滚过的距离)
IE:event.offsetX和event.offsetY。
FF:event.layerX和event.layerY。
通用:event.clientY+document.documentElement.scrollTop(加垂直滚动条)。
通用:event.clientX+document.documentElement.scrollLeft(加水平滚动条)。
示例:
<script>
function xyzb(xy){
xl = xy.clientX+document.documentElement.scrollLeft;
yr = xy.clientY+document.documentElement.scrollTop;
document.getElementById("xys").innerHTML=xl+","+yr;
}
</script>
<div id="xys" style="width:500px;height:500px;border:1px solid;" onmousemove="xyzb(event);"></div>
标签的x和y的坐标位置:style.posLeft 和 style.posTop
IE:有。
FF:没有。
通用:object.offsetLeft 和 object.offsetTop。
窗体的高度和宽度
IE:document.body.offsetWidth和document.body.offsetHeight。注意:此时页面一定要有body标签。
FF:window.innerWidth和window.innerHegiht,以及document.documentElement.clientWidth和document.documentElement.clientHeight。
通用:document.body.clientWidth和document.body.clientHeight。
添加事件
IE:element.attachEvent("onclick", func);。
FF:element.addEventListener("click", func, true)。
通用:element.onclick=func。虽然都可以使用onclick事件,但是onclick和上面两种方法的效果是不一样的,onclick只有执行一个过程,而attachEvent和addEventListener执行的是一个过程列表,也就是多个过程。例如:element.attachEvent("onclick",
func1);element.attachEvent("onclick", func2)这样func1和func2都会被执行。
标签的自定义属性
IE:如果给标签div1定义了一个属性value,可以div1.value和div1["value"]取得该值。
FF:不能用div1.value和div1["value"]取。
通用:div1.getAttribute("value")。
父节点、子节点和删除节点
IE:parentElement、parement.children,element.romoveNode(true)。
FF:parentNode、parentNode.childNodes,node.parentNode.removeChild(node)。
画图
IE:VML。
FF:SVG。
CSS:透明
IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6。
CSS:圆角
IE:不支持圆角。
FF:-moz-border-radius:4px,或者-moz-border-radius-topleft:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-bottomright:4px;。
CSS:双线凹凸边框
IE:border:2px outset;。
FF:-moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8
white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040
#808080;。
posted @
2008-01-31 12:52 josson 阅读(437) |
评论 (0) |
编辑 收藏
http://dhtmlx.com 包含目录树、菜单、工具条等很多js控件,功能十分强大。
现将dhtmlxTree 使用样例记录如下(包括目录树、上下文菜单):
1、所需js文件
dhtmlxcommon.js
dhtmlxtree.js
dhtmlxtree_json.js
//菜单控件所需的js
dhtmlxprotobar.js
dhtmlxmenubar.js
dhtmlxmenubar.js
2、sample.html代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="./dhtmlxcommon.js"></script>
<script src="./dhtmlxtree.js"></script>
<script language="JavaScript" src="./extend/dhtmlxtree_json.js"></script>
<script language="JavaScript" src="./dhtmlxprotobar.js"></script>
<script language="JavaScript" src="./dhtmlxmenubar.js"></script>
<script language="JavaScript" src="./dhtmlxmenubar_cp.js"></script>
<link rel="STYLESHEET" type="text/css" href="./dhtmlxtree.css">
<link rel="STYLESHEET" type="text/css" href="./context.css">
<link rel="STYLESHEET" type="text/css" href="./dhtmlxmenu.css">
</head>
<body>
<div id="treeBox" style="width:200;height:200"></div>
<script>
//init menu
aMenu=new dhtmlXContextMenuObject('120',0,"images/");
aMenu.menu.loadXML("./_context.xml");
aMenu.setContextMenuHandler(onMenuClick);
tree=new dhtmlXTreeObject('treeBox',"100%","100%",0);
tree.setImagePath("images/");
tree.enableCheckBoxes(true);
tree.enableDragAndDrop(true);
tree.enableContextMenu(aMenu); //link context menu to tree
tree.loadCSV("./data.txt");//for loading from file
function onMenuClick(id,s){ alert("Menu item "+id+" was clicked"+s); }
</script>
</body>
</html>
3、数据文件data.txt
1,0,node 1
2,1,node 1.1
3,2,node 1.1.1
4,0,node 2
bd2f46a212ffae3b011305afd5eb0108,4,node 2.1
6,1,node 1.2
4、菜单文件_context.xml
<?xml version='1.0' ?>
<menu absolutePosition="auto" mode="popup" maxItems="8" globalCss="contextMenu" globalSecondCss="contextMenu" globalTextCss="contextMenuItem">
<MenuItem name="Red" src="./images/red.gif" id="edit_Red"/>
<MenuItem name="Green" src="./images/green.gif" id="edit_Green"/>
<MenuItem name="Blue" src="./images/blue.gif" id="edit_Blue"/>
<MenuItem name="Other
" src="" id="outher" width="120px" panelWidth="120">
<MenuItem name="Yellow" src="./images/yellow.gif" id="edit_Yellow"/>
<MenuItem name="White" src="./images/white.gif" id="edit_White"/>
</MenuItem>
</menu>
注:dhtmlxTree 标准版不支持菜单功能,所以需要对
dhtmlxtree.js做些修改,在脚本的最后面加上如下方法:
dhtmlXTreeObject.prototype.enableContextMenu=function(menu)
{
if(menu) this.cMenu=menu
};
posted @
2008-01-30 15:53 josson 阅读(8344) |
评论 (1) |
编辑 收藏
摘要: 1、命令控制
启动:/usr/local/mysql/bin/mysqld-safe --user=mysql &
停止:/usr/local/mysql/bin/mysqladmin -u root -p pwd shutdown
2、自启动sh脚本(mysqld 存放于/etc/init.d目录下,注意下面mysql数据所在路径)
Code highl...
阅读全文
posted @
2008-01-23 10:53 josson 阅读(4785) |
评论 (0) |
编辑 收藏