/**
* 校验是否全由数字组成
*/
function isDigit(s)
{
var patrn=/^[0-9]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
*/
function isRegisterUserName(s)
{
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 校验用户姓名:只能输入1-30个以字母开头的字串
*/
function isTrueName(s)
{
var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 校验密码:只能输入6-20个字母、数字、下划线
*/
function isPasswd(s)
{
var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
*/
function isTel(s)
{
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 校验手机号码:必须以数字开头,除数字外,可含有“-”
*/
function isMobil(s)
{
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 校验邮政编码
*/
function isPostalCode(s)
{
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 校验搜索关键字
*/
function isSearch(s)
{
var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\]
[\]\{\}:;'\,.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
}
/**
* 检查是否是有效的IP地址
*/
function isIpAddr(addr)
{
var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
posted @
2007-11-21 22:31 josson 阅读(282) |
评论 (0) |
编辑 收藏
Linux系统默认最大打开文件数为1024个。
1、相关命令:
ulimit –a //查看当前设置
ulimit –n 2048 //即设成2048,按实际需要设置
2、用户环境参数文件配置:
在/etc/profile中加入如下内容:
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384 ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
posted @
2007-11-21 17:02 josson 阅读(1355) |
评论 (0) |
编辑 收藏
1、编码方式(注意:jndi命名时,unix\linux系统不允许jdbc/john形式,应改为:jdbc_john):
{// for DBConnection
System.setProperty(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory");
//
InitialContext ic = new InitialContext();
{
// Construct BasicDataSource reference
Reference ref = new Reference("javax.sql.DataSource",
"org.apache.commons.dbcp.BasicDataSourceFactory",
null);
ref.add(new StringRefAddr("driverClassName",
"oracle.jdbc.driver.OracleDriver"));
ref.add(new StringRefAddr("url", dbURL));
ref.add(new StringRefAddr("username", username));
ref.add(new StringRefAddr("password", password));
ic.rebind("jdbc/john", ref);
}
}
2、Jndi with tomcat
a). 配置应用程序WEB-INF目录下的web.xml:
<resource-ref>
<description>connection</description>
<res-ref-name>jdbc/john</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
b).tomcat配置文件TOMCAT_HOME/conf/server.xml中context定义如下:
<Context path="/john" reloadable="false" docBase="/opt/scommnet/john" workDir="/opt/scommnet/john/work" >
<Resource name="jdbc/john"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
password="dbpwd"
maxIdle="2"
maxWait="5000"
username="dbuser"
url="jdbc:oracle:thin:@192.168.0.100:1521:cbxx"
maxActive="10"/>
</Context>
c).调用代码
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/john");
try{
Connection conn = ds.getConnection();
logger.info("Connection info:"+conn.getMetaData().getDriverName());
//数据查询操作
}
catch(Exception ex){
ex.printStackTrace();
logger.error(ex.getMessage(),ex);
}
posted @
2007-11-21 16:46 josson 阅读(411) |
评论 (0) |
编辑 收藏
MyEclipse是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。很好使,就是越来越大了。
1、MyEclipse Enterprise Workbench Version 6.0.1 GA Manual Install
File size: 303.98 MB
MD5 : b916230017c8b9093e97ecae20653a8e
http://www.myeclipseide.com/Downloads-index-req-getit-lid-99.html
2、注册机:点击
此处下载MyEclipse 6.0 KeyGen
注册码:
Subscriber:QBomber
Subscription Code: DLR8ZC-855155-6553775850087975
posted @
2007-11-20 21:04 josson 阅读(2353) |
评论 (1) |
编辑 收藏
Alt + 上、下键:将当前行或当前选中行上移或下移。
Ctrl + Alt + 上、下键:复制当前行或当前选中行。
Ctrl + Shift + T:打开类型:显示"打开类型"对话框来在编辑器中打开类型。"打开类型"选择对话框显示工作空间中存在的所有类型如类、接口等。
Ctrl + Shift + R:打开资源:打开"打开资源"对话框以打开工作空间中的任何资源。在Package Explorer中不必浏览文件便可快速打开任意一个文件。使用这个快捷键可以打开一个对话框,在里面输入你想查找的文件或者通配符既可。
Ctrl + O: 快速大纲:打开当前所选类型的轻量级大纲图。在一个文件中直接打开一个成员变量(如字段、方法),尤其是有许多类似的方法名的时候这个快捷键将变得非常有用。
Ctrl + L, 输入行数: 转至行:打开一个对话框,允许您输入编辑器应该跳至的行号。仅适用于编辑器。输入行号,可以快速跳转到源文件中的第N行,
Ctrl + Q:上一个编辑位置:显示上一个编辑操作的发生位置,返回到最近的修改位置。即使你查看不同的文件时,你也可以使用该快捷键来找到你最近对文件的修改位置。尤其是在文件比较大时,显得更为有用。
Ctrl + T: 快速类型层次结构:打开当前选择的类型的轻量级层次结构查看器,可以实现快速转到一个supertype或者subtype.
Ctrl + E:快速跳转到另外一个编辑器。注意Ctrl + F6也可以实现这个功能,在使用的时候可以注意一下他们的异同。
Ctrl + ./Ctrl +,:在一个文件中快速定位到一个问题(如错误、警告等)
Alt +← and Alt + →:来回跳转至你所查阅的文件
F3: 快速转到一个类型声明。同时也可以按住ctrl健并点击该超链接变量或者类或者你想查看的任何声明都可以。
Ctrl + d:删除当前行或当前选中行代码。
Ctrl + /:用"//"注释当前行或当前选中行代码。
2008-7-28 快捷键补充:
文本编辑器 |
粘贴 |
Ctrl+V |
★★★ |
剪切 |
Ctrl+X |
★★★ |
保存 |
Ctrl+S |
★★★ |
后退 |
Ctrl+Z |
★★★ |
删除行 |
Ctrl+D |
★★★ |
上滚行 |
Ctrl+↑ |
|
下滚行 |
Ctrl+↓ |
|
Java编辑器 |
格式化 |
Ctrl+Shift+F |
|
取消注释 |
Ctrl+\ |
★★★ |
注释(可以批量) |
Ctrl+/ |
★★★ |
/* */方式注释 |
Ctrl+shift+/ |
★★★ |
组织导入/导出 |
Ctrl+shift+o |
★★★ |
上一个视图 |
Ctrl+Shift+F7 |
|
上一个透视图 |
Ctrl+Shift+F8 |
|
下一个编辑器 |
Ctrl+F6 |
|
下一个视图 |
Ctrl+F7 |
|
下一个透视图 |
Ctrl+F8 |
|
显示视图菜单 |
Ctrl+F10 |
|
快速导入getter/setter方法 |
Alt+Shift+S |
★★★ |
选中目标自动添加try/catch块 |
Alt+Shift+Z |
|
搜索/查询 |
查找实现类 |
Ctrl+T |
★★★ |
查找类 |
Ctrl+Shift+T |
★★★ |
查找文件 |
Ctrl+Shift+R |
★★★ |
快速显示提示信息 |
Ctrl+1 |
★★★ |
快速查找 |
Ctrl+Shift+K |
★★★ |
运行/Debug |
单步返回 |
F7 |
|
单步跳过 |
F6 |
★★★ |
单步跳入 |
F5 |
|
单步跳入选择 |
Ctrl+F5 |
|
调试上次启动 |
F11 |
|
继续 |
F8 |
★★★ |
使用过滤器单步执行 |
Shift+F5 |
|
添加/去除断点 |
Ctrl+Shift+B |
|
运行至行 |
Ctrl+R |
|
执行 |
Ctrl+U |
|
posted @
2007-11-20 20:40 josson 阅读(976) |
评论 (0) |
编辑 收藏
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename :打开多个文件,依次编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令 :
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。
1.交换两个字符位置
xp
2.上下两行调换
ddp
3.把文件内容反转
:g/^/m0/ (未通过)
4.上下两行合并
J
5.删除所有行
dG
6.从当前位置删除到行尾
d$
7.从当前位置复制到行尾
y$ 如果要粘贴到其他地方 p 就可以了
由于vi 是建立在 EX 上的 所以 当键入 : 时就来到了 EX 命令状态
8.
:ab string strings
例如 ":ab usa United States of America" ,
当你在文见里插入 usa 时
United States of America 就蹦出来了
9.
:map keys new_seq
定义你当前 键盘命令
10.
:set [all]
vi or ex 的编辑状态
如 显示每行 :set nu
11.
在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,可刚复制的内容粘贴在光标处的
下面。
12.
单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S
13.
:%s/old_word/new_word/g
这个指令是于在整个文件中替换特定字符串
14.光标控制
k:上移 nk 上移n行
j:下移 nj 下移n行
将光标移到第n行,按下 mk
将光标移到第m行,按下 "ay'k
即将第n到m的行存到a寄存器,以此类推,b,c........寄存器等
这样就可以将你常用的需要复用的内容粘贴到不同的寄存器中以备用
想粘贴到某处,直接将光标移到某地,按下 ‘ap 即可,以此类推,b,c........寄存器等
在当前屏幕中
H 跳到第一行
M 跳到中间一行
L 跳到最后一行
15.
表8-2 删除命令
删除命令操作
d l 删除当前字符(与x命令功能相同)
d 0 删除到某一行的开始位置
d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)
d w 删除到某个单词的结尾位置
d 3 w 删除到第三个单词的结尾位置
d b 删除到某个单词的开始位置
d W 删除到某个以空格作为分隔符的单词的结尾位置
d B 删除到某个以空格作为分隔符的单词的开始位置
d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d 4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d } 删除到某个段落的结尾位置
d { 删除到某个段落的开始位置
d 7 { 删除到当前段落起始位置之前的第7个段落位置
d d 删除当前行
d /t e x t 删除从文本中出现“ t e x t”中所指定字样的位置,一直向前直到下一个该字样所出现的
位置(但不包括该字样)之间的内容
d fc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
d tc 删除当前行直到下一个字符“ c”所出现位置之间的内容
D 删除到某一行的结尾
d $ 删除到某一行的结尾
5 d d 删除从当前行所开始的5行内容
d L 删除直到屏幕上最后一行的内容
d H 删除直到屏幕上第一行的内容
d G 删除直到工作缓存区结尾的内容
d 1 G 删除直到工作缓存区开始的内容
修改命令操作
c l 更改当前字符
c w 修改到某个单词的结尾位置
c 3 w 修改到第三个单词的结尾位置
c b 修改到某个单词的开始位置
c W 修改到某个以空格作为分隔符的单词的结尾位置
c B 修改到某个以空格作为分隔符的单词的开始位置
c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置
c 0 修改到某行的结尾位置
c) 修改到某个语句的结尾位置
c 4) 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c } 修改到某个段落的结尾位置
c { 修改到某个段落的开始位置
c 7 { 修改到当前段落起始位置之前的第7个段落位置
c tc 修改当前行直到下一个字符c所出现位置之间的内容
C 修改到某一行的结尾
c c 修改当前行
5 c c 修改从当前行所开始的5行内容
.重复上一次修改!
表8-4 替换命令
替换命令操作
s 将当前字符替换为一个或多个字符
S 将当前行替换为一个或多个字符
5 s 将从当前字符开始的5个字符替换为一个或多个字符
vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串
16.
fx
往右移动到 x 字符上
Fx
往左移动到 x 字符上
tx
往右移动到 x 字符前
Tx
往左移动到 x 字符后
(注意:以上四个命令中,其中x是键入的字符)
;
分号,配合 f 和 t 使用,重复一次
,
逗号,配合 f 和 t 使用,反方向重复一次
17. vi 环境选项 Solaris ksh
noautoindent nomodelines noshowmode
autoprint nonumber noslowopen
noautowrite nonovice tabstop=8
nobeautify nooptimize taglength=0
directory=/var/tmp paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags
noedcompatible prompt tagstack
noerrorbells noreadonly term=vt100
noexrc redraw noterse
flash remap timeout
hardtabs=8 report=5 ttytype=vt100
noignorecase scroll=11 warn
nolisp sections=NHSHH HUuhsh+c window=23
nolist shell=/bin/ksh wrapscan
magic shiftwidth=8 wrapmargin=0
mesg noshowmatch nowriteany
For C-Shell:
setenv EXINIT "set nu"
For Bourne or Korn Shell:
EXINIT="set nu"; export EXINIT
For Korn Shell Only (alternate method):
typeset -x EXINIT="set nu"
在 .profile 里设置 vi 的环境选项 , 以上均测试过
18.标记文本
mchar 用字母char标记当前光标的位置
`char 移至char所标记处
'char 移至char标记所在行的开头处
" 移至当前行上一次所在位置(在光标移动之后)――一个双引号
'' 移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号
19.
同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。
但是我发现一个BUG:在用CTRL-SHIFT-6切换到上一个文件后,用:args查看多文件vi状态时,
屏幕底部仍然显示目前vi的是刚才的文件。
(在HP-UX,Solaris,AIX上通过)
也可以使用:
:e#
进行切换
20.
sco 下VI 要在文本前同样的字符加用
%s/^/要加的内容/g 要在文本后同样的字符加
%s/$/要加的内容/g
21.
如何去掉文本中的 ^M 硬回车?不必用binary传回去再ascii传回来的方式,用shell或者unix语句实现。
cat filename |tr -d '\015' >newfile
不同的unix系统还存在一些其他不同的命令,如:doscp
sed 也可以实现这个功能.
dos2unix filename filename2
反之
unix2dos filename filename2
在vi 中用:$s/^M//g
^是crtl-V crtl-M
22.如何在“unix命令行”下将一个文件的某字符串用另一个串换掉
sed 's/string1/string2/gp' file1 > file2
23.将/etc/hosts下所有的地址都ping 2次
1 #/usr/bin/sh
2 #grad /etc/hosts and ping each address
3 cat /etc/hosts|grep -v '^#' | while read LINE
4 do
5 ADDR=`awk '{print $1}'`
6 for MACHINE in $ADDR
7 do
8 ping $MACHINE -n 2
9 done
10 done
posted @
2007-07-05 10:52 josson 阅读(348) |
评论 (0) |
编辑 收藏
1、安装命令:apt-get install openssh-server
2、启动/停止服务:/etc/init.d/ssh start|stop|restart
posted @
2007-07-05 10:51 josson 阅读(2337) |
评论 (0) |
编辑 收藏
原文:
http://wiki.igniterealtime.org/display/WILDFIRE/Build+Openfire+with+Eclipse
Setup Wildfire
Install jdk-1_5_0_06-windows-i586-p.exe (or just copy the files to
%programfiles%\Java so you're registry is not modified)
Extract eclipse-SDK-3.1.2-win32.zip to C:\Tools\
Start C:\Tools\eclipse\eclipse.exe and set
Workspace to C:\ws\eclipse\workspace\
If start fails because no javaw.exe is found add
%programfiles%\Java\jdk1.5.0_06\bin to the PATH
variable manually and start it
Close the Welcome screen
Menu Window, Preferences; Java, Compiler:
"Compiler Compliance Level:" 5.0
Exit Eclipse
Extract wildfire_src_2_4_4.jar to C:\ws\eclipse\workspace\
Start Eclipse
Select File, New, Project;
Java Project Next;
Project Name "wildfire_src" (JDK Compliance and
Projct layout will get disabled) Next;
Finish
Menu Window, Show Wiew, Ant;
Right click in "Ant", "Add Buildfiles"
Select wildfire_src\build\build.xml
Double click "all" ... and wait to complete the build
Debug Wildfire 3.1.1
Menu Run, Debug ...: New
Main
Project: wildfire_src
Main class: org.jivesoftware.wildfire.starter.ServerStarter
Arguments
Program Arguments:
VM Arguments:
-DwildfireHome="${workspace_loc:wildfire_src}/target/wildfire"
Working Directory
[x] Use default working directory
Workspace: ${workspace_loc:wildfire_src}
Classpath
Advanced ... Add Folders OK
wildfire_src/resources/i18n OK
Advanced ... Add Folders OK
wildfire_src/src/resources/jar OK
Apply
Debug
posted @
2007-06-26 17:03 josson 阅读(311) |
评论 (0) |
编辑 收藏
JDBC开发中经常会遇到"ORA-01000: 超出打开游标的最大数"的问题。
主要原因为,
每次打开一个statement对象,jdbc都会在数据库中打开一个游标来执行操作。但开发人员经常会忘记关闭statement,所以执行一段时间后就会出现这类问题。所以,完成业务处理后,必须将connection、statement及ResultSet等对象及时关闭。
posted @
2007-06-20 18:38 josson 阅读(996) |
评论 (0) |
编辑 收藏
IP地址配置文件: /etc/network/interface
// 动态DHCP获得
# 启动系统激活设备
# Loop回环地址
auto lo
iface lo inet loopback
# 启动系统激活设备
# 网卡eth0设置为DHCP类型
auto eth0
iface eth0 inet dhcp
// 静态Static获得
# 启动系统激活设备
# Loop回环地址
auto lo
iface lo inet loopback
# 启动系统激活设备
# 网卡eth0设置为Static类型
auto eth0
iface eth0 inet static
# 指定IP地址、子网掩码、广播、网关
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
# 指定DNS服务器地址
dns-nameservers 202.103.0.117
dns-search somedomain.org
========================
DNS服务器配置文件: /etc/resolv.conf
// 必须设置.否则无法访问任何URL
nameserver 202.103.0.117
nameserver 211.95.193.97
posted @
2007-06-20 16:05 josson 阅读(14049) |
评论 (1) |
编辑 收藏