零全零美(www.zzgwt.com)
生活中的很多事情,并不像If...Else那么简单!
posts - 96,comments - 52,trackbacks - 0
     摘要: 出现的问题:一个装有CentOs的VPS不知道为什么重启之后,出现网站无法连接数据库的现象:
Can't connect to MySQL server on 'www.zzgwt.com' (13) 此处域名也可以使IP,我习惯用域名直接连接数据库,因为重新解析域名后,不用再修改数据库配置了但是本地通过数据库管理工具如:Navicat for MySql却是能够正常连接!
网上查了很多文章,发现又是SELinux(Linux上的强制访问控制安全模块)惹得祸,很想关闭它,但是据说他是系统被攻破后的最后一道防线,那就暂时记录此类问题的解决方案,以后有时间的话,好好研究一下这个SELinux!
  阅读全文
posted @ 2012-09-09 16:02 零全零美 阅读(3474) | 评论 (1)编辑 收藏

    由于开发www.website371.comwww.modaotea.com 两个网站时使用的框架是自己写的,其中有一个工具是模拟hibernate的思路,动态生成对象关系映射!中间利用freemarker生成.java类!但是始终存在一个很大的问题,就是生成的.java文件,没有办法直接编译,当然最好的结果当然是自动编译后能达成JAR包,直接放在工程里!
    研究好了半天,终于找到一种解决方案,既然是用JAVA生成.java文件自动编译并打成JAR包,
那第一步自然就是用JAVA执行CMD命令了(注意多个命令之间要用“&&”隔开哦,在这个问题上浪费了我很多时间!)
第二步:利用javac编译.java文件(因.java依赖包过多,如果手写要累死了!!这里正好使用:System.getProperty("java.class.path"))
第三步:利用jar命令打包
全部代码如下:

public final static String FILE_PATH = "d:\\db2java\\";
    
public final static String PACKAGE_PATH = "com/zzsb/beans/";
    
public final static String CLASS_FILE_PATH = FILE_PATH+"classes";
        String cmd 
= "cmd /c cd /d " + FILE_PATH + 
        
" && " +
        
"javac -classpath "+ System.getProperty("java.class.path"+" "+ FILE_PATH+PACKAGE_PATH + "*.java " + 
        
" && " +
        
"jar cf bean-"+TABLE_SCHEMA+"-"+ DateUtil.getCurrentDate14() +".jar " + PACKAGE_PATH+"*.class" +
        
" && " +
        
"jar cf bean-source-"+TABLE_SCHEMA+"-"+ DateUtil.getCurrentDate14() +".jar " + PACKAGE_PATH+"*.java" +
        
" && " +
        
"jar cf bean-all-"+TABLE_SCHEMA+"-"+ DateUtil.getCurrentDate14() +".jar " + PACKAGE_PATH+"*.*" 
        ;
        System.out.println(cmd);
        Process p 
= Runtime.getRuntime().exec(cmd);


可以看一下控制台输出的代码,您就明白了:

cmd /c cd /d d:\db2java\ && javac -classpath E:\job\workspace\DianLiang\WebRoot\WEB-INF\classes;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\acegi-security-1.0.7.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\activation.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\axis.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\axis-ant.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\bonecp-0.7.1.RELEASE.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-attributes-api.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-attributes-compiler.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-beanutils-1.8.3.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-cli-1.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-codec-1.3.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-collections-3.2.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-configuration-1.4.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-discovery-0.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-fileupload-1.2.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-io-2.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-lang-2.5.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-logging.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\commons-pool-1.4.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\ezmorph-1.0.6.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\freemarker.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\guava-r09.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\javassist.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jaxrpc.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jdbcspy.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jodconverter-2.2.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jodconverter-cli-2.2.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\json_simple-1.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\json-lib-2.2.3-jdk15.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\juh-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jurt-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\jxl.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\kaptcha-2.3.2.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\log4j-1.2.15.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\mail.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\mysql-connector-java-5.1.13-bin.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\ognl-2.7.3.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\quartz-2.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\ridl-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\saaj.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\slf4j-api-1.6.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\slf4j-jdk14-1.6.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\unoil-3.0.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\urlrewrite-3.2.0.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\wsdl4j-1.5.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\xstream-1.3.1.jar;E:\job\workspace\DianLiang\WebRoot\WEB-INF\lib\bean-dianliang-20120723181047.jar d:\db2java\com/zzsb/beans/*.java  && jar cf bean-dianliang-20120724232924.jar com/zzsb/beans/*.class && jar cf bean-source-dianliang-20120724232924.jar com/zzsb/beans/*.java && jar cf bean-all-dianliang-20120724232924.jar com/zzsb/beans/*.*

看看System.getProperty()都为我们提供了什么有用信息吧!

java.version

Java 运行时环境版本

java.vendor

Java 运行时环境供应商

java.vendor.url

Java 供应商的 URL

java.home

Java 安装目录

java.vm.specification.version

Java 虚拟机规范版本

java.vm.specification.vendor

Java 虚拟机规范供应商

java.vm.specification.name

Java 虚拟机规范名称

java.vm.version

Java 虚拟机实现版本

java.vm.vendor

Java 虚拟机实现供应商

java.vm.name

Java 虚拟机实现名称

java.specification.version

Java 运行时环境规范版本

java.specification.vendor

Java 运行时环境规范供应商

java.specification.name

Java 运行时环境规范名称

java.class.version

Java 类格式版本号

java.class.path

Java 类路径

java.library.path

加载库时搜索的路径列表

java.io.tmpdir

默认的临时文件路径

java.compiler

要使用的 JIT 编译器的名称

java.ext.dirs

一个或多个扩展目录的路径

os.name

操作系统的名称

os.arch

操作系统的架构

os.version

操作系统的版本

file.separator

文件分隔符(在 UNIX 系统中是“/”)

path.separator

路径分隔符(在 UNIX 系统中是“:”)

line.separator

行分隔符(在 UNIX 系统中是“/n”)

user.name

用户的账户名称

user.home

用户的主目录

user.dir

用户的当前工作目录

本文所提供的方法解决了使用JAVA动态编译现有工程中的源文件的简便方法,顺便说一下有空可以去www.modaotea.com 喝茶,老板人不错,对茶这块很专业,不像我这种苦逼的程序员,无聊透顶啊!
文章原创,转载请以超链接形式标明文章原始出处和作者

posted @ 2012-07-24 23:44 零全零美 阅读(1509) | 评论 (1)编辑 收藏
现在国家对信息安全要求的越来越严,网站备案的流程和手续是越来越复杂啊!记录一下河南景安网站备案需要准备的材料,和备案地址,一是备查而是也方便一下其他人吧!

1.       公司营业执照副本复印件

2.       公司公章

3.       公司法人身份证复印件

4.       网站负责人身份证复印件

5.       公司固定电话

6.       网站负责人手机号码

7.       网站负责人电子邮箱

8.       网站名称

9.       域名

备案地址:花园路省广播电视中心对面工信厅7301

如果是个人备案,网站中不能含有任何商业元素!
信息来源:郑州做网站 http://www.website371.com
posted @ 2012-07-07 16:44 零全零美 阅读(715) | 评论 (0)编辑 收藏
       Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。web服务器软件两大阵营Apache和IIS的市场占有率分别为:62.53% 和 20.36%,Apache的在web服务器软件领域的地位可见一斑啊!Tomcat是一个轻量级JAVA应用服务器,在中小型系统中被普遍使用,是开发和调试JSP程序的首选。俗话说尺有所短寸有所长,Apache在静态文件处理方面性能表现卓著,tomcat是JAVA中小型系统的首选运行环境,两项组合可以发挥他们最大的优势,绝对是中小型JAVA B/S系统的首选环境!
      话不多说,开始干活!以下环境基于windows系统进行。
1、工具准备:
    Apache httpd 最新版2.2.22下载地址:http://labs.renren.com/apache-mirror/httpd/binaries/win32/httpd-2.2.22-win32-x86-no_ssl.msi
    Jk最新版1.2.37下载地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip  (下载JK时要注意选择与Apache相对应的版本):

   tomcat最新版7.0.28下载地址:http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.28/bin/apache-tomcat-7.0.28-windows-x86.zip ;
   JAVA程序员对tomcat的安装和调试一定非常熟悉了,下边就重点讲解一下Apache Httpd的安装和调试! 其实Apache的在windows下的安装也非常简单,一路next下去,会有一个要求输入的地方,要求填入Domain和Server Name,这两项其实无所谓的,随便输入个域名就行了,反正后边也可以修改的啊,笔者就已自己公司的域名www.website371.com为例:

  
    下一步选标准安装,不用选什么自定义,其实也没有什么好自定义的,反正安装完成后所有的配置都可改动! 安装完成后输入http://localhost/ ,看到经典的It works,Apache就算安装完成了!接下来就是繁琐的配置了,其实我非常赞同一句话:JAVA界习惯繁琐,好像不经过繁琐的配置就显示不出来自己有多么高深一样!这方面该学学微软啊!
Tomcat就自己玩吧,别告诉我您连tomcat也不知道怎么运行,那接下来的文章您也不用看了! 
    文章原创,未完待续,转载请注明出处!郑州做网站 郑州网站建设 http://www.website371.com

    
posted @ 2012-07-07 16:06 零全零美 阅读(2095) | 评论 (1)编辑 收藏
    现在做SEO大家普遍认为站外优化在排名提升中起到的作用要远大于站内优化的作用,虽然很久以来都流传着“内容为王外链为皇”这句话,但是又有多少SEOER能够真正的静下心来每天挖尽心思的为自己的网站做一些真正的原创内容呢!郑州网站建设做SEO也有几个年头了,始终想总结一下外部优化也就是外链建设的几个形式,今天总算有时间能够好好研究一下这个事情了!

    1、纯文本URL外链,如:http://www.website371.com ,即只是一个普通的文本格式,无法通过鼠标点击进入URL所标识的网站。
    个人认为此种外链并不能算是优质的外链,因为蜘蛛无法通过该外链获得任何有价值的信息。到底此类外链会不会指引蜘蛛进入目标网站实在不得而知。但毫无疑问的是就算不是什么优质外链,但此类外链如果大量存在的话,也会增加相关域名的数量,对排名或者收录还是有帮助的!

    2、超链接URL外链:如:http://www.website371.com ,是一个超链接格式,访客可以直接点击该链接进入网站。
    带超链接的URL跟第一种纯文本链接最大的区别就是,这种链接可以点击进入网站,很多朋友写文章写的很吸引人,在文章最后面留了个,想看更精彩的内容,请点击网站。还有一种最常见的就是在论坛留言中会看到很多评论,我的网站也很不错哦。相比第一种外链的形式,这种带超链接的url肯定效果更佳,它不仅可以提升一个网站的权重,如果发的文章吸引人的话,还可以引来很多流量。这种链接在seo发布中也是很常见的,他对于网站权重提升取到了很大的作用,从而让自己的网站关键词有好的排名。

    3、锚文本URL外链:如:郑州做网站 ,是一个具有锚文本的超链接格式,访客除了可以点击链接进入网站外,还可以看到针对这个网站的一个基本描述。
     锚文本中出现关键词是做好的外部链接。这中外链不仅可以提升网站的权重,而且还是让关键词快速有排名的一种方法!现在淘宝上出现很多自诩为SEO高手的店铺,他们优化一个关键词的费用是200-500元,相比正规网站优化公司动辄5000多块的费用对最终客户是具有很大优势的!笔者也曾跟他们打过几次交道,他们使用的方法就是以低价获得大量网站然后以带有关键词的锚文本URL外链的形式构成单向链接,从而快速提升排名!但是这种以站养站,单纯为了SEO而SEO的做法是不会获得稳定性排名的。最终的结果是网站排名在百度首页昙花一现,客户付过余款后没几天排名便一掉千里了! 
    一个优质外链除了应该是锚文本外链之外最好是单向链接,对方站长主动给予,不需要回链,两个网站互相链接如友情链接权重要比单向链接低很多。
    
    未尽之处,改天有时间再好好研究吧!

    文章原创,转载请注明出处!
posted @ 2012-06-30 10:57 零全零美 阅读(1540) | 评论 (0)编辑 收藏

      一个网站要想在搜索引擎排行靠前,重要度依次为:反链、外链、原创内容、更新。对于郑州网站建设而言,觉得反链和外链尤为重要,因为反链的多少直接反映着网站的权重,而外链也会影响排名。那么这2者之间到底有什么区别,只有弄清楚这点之后我们才能从根本下手有的放矢的开始对网站进行优化。
      郑州网站建设觉得反链和外链要每天都增加,日积月累、多多益善。但是反链和外链绝对是不相同的,这一点做SEO的人都知道,反链从属于外链,而外链我们完全可以直接理解为本站以外的所有本站的链接,也可以说外链就是引导蜘蛛爬行来到你的网站,很多朋友都知道反向链接不多,然后蜘蛛却疯狂的来到本站,这就完全是外链的作用,如果经常大批量的制造外链的话,那么去搜索引擎里会发现存在快照的根本不多或许就没有,所以说外链的作用完全是引导蜘蛛爬行到本站来,简单的说就是路标,指引蜘蛛爬行到本站来的路标。
      而反链就是存在快照并且长期存在外链,有时候我们会发现一个链接刚刚发出去被蜘蛛抓取并且放出了快照,但是只存在很短的时间内,蜘蛛下次抓取的时候没有它(这种情况多数都是劣质外链),这种就只能叫做外链。不能够长期存在快照的链接就只能是外链,尽管勾引蜘蛛但不是长期勾引蜘蛛来本站,那么就可以说不能为本站多投一票了。其实反链我们很多站长都理解成为网站是否受大众喜爱的指标,这是正确的,反链就是别的站点对我站点的投票,反链越多那么我价值就越高,权重就越高。反链越多,搜索引擎得到分值就越高,分值越高我排名就越好。不过郑州网站建设觉得没有必要刻意的做反链,每天认真的原创一篇文章久OK了,如果实在不会写的也要讲究伪原创,这样让蜘蛛抓取到并且放出快照,好的就一直存在就是反链。另外就是做做外链,把蜘蛛勾引过来。
     突然想起友情链接的一点注意,新站或者被降权站交换友情链宁可少些甚至没有,哪怕自己建一些博客去单向链接,或者多发一些软文与外链,都要比与权重低的站点交换链接要好,一旦自己的网站被搜索引擎认同,给予了一定的权重内容收录与快照更新就是做友情链接的时机了。我认为一般在论坛与QQ群里经常发找友情链接信息的往往是一些新站与降权、低权重网站,所以找友情链接最好还是按照刚才谈的第一点来做,自己的站有了一定的权重后主动在搜索引擎上找和自己关键字相关的高权重站点更好一些,其次如果对方给您的友情链接页面放在IFRame框架里。不要跟他交换友情链接。因为搜索根本抓不到IFRame里的内容。 做友情接时一定要用文字链。不要用图片链接。因为图片链接搜索引擎抓对方网站时根本抓不到图片链接。对你一点用处都没有。
     个人认为外链可以适当的多做,但是反链就不能刻意的疯狂增加,不然被认为作弊了会引起被K的,所有的事情都不会来的那么快,看着人家网站的反链几万几万的是很羡慕的,你想想人家做了多久,做的有多辛苦的,所以我们要坚持努力,既然选择了做站,就要准备每天不停写作、更新、宣传,希望这些对大家有用

posted @ 2012-06-29 12:37 零全零美 阅读(282) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-28 19:21 零全零美 阅读(2234) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-28 13:01 零全零美 阅读(343) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:47 零全零美 阅读(1375) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:46 零全零美 阅读(502) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:46 零全零美 阅读(283) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:45 零全零美 阅读(440) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:44 零全零美 阅读(1331) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:43 零全零美 阅读(4741) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:42 零全零美 阅读(1573) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:42 零全零美 阅读(1202) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:41 零全零美 阅读(366) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:41 零全零美 阅读(2702) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:40 零全零美 阅读(518) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:40 零全零美 阅读(563) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:39 零全零美 阅读(263) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:39 零全零美 阅读(462) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:37 零全零美 阅读(1272) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:36 零全零美 阅读(1090) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:35 零全零美 阅读(2938) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:35 零全零美 阅读(576) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:34 零全零美 阅读(575) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:33 零全零美 阅读(644) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:33 零全零美 阅读(902) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:32 零全零美 阅读(384) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:30 零全零美 阅读(180) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:29 零全零美 阅读(254) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-27 17:28 零全零美 阅读(267) | 评论 (0)编辑 收藏
     摘要: 分享一下播布课的视频教程,在Apache中使用SSL  阅读全文
posted @ 2009-11-26 18:22 零全零美 阅读(1616) | 评论 (2)编辑 收藏
     摘要:   阅读全文
posted @ 2009-11-26 17:10 零全零美 阅读(339) | 评论 (0)编辑 收藏
     摘要: 我的电脑安装了双系统,Windows和Linux,不过由于Linux在最近一段时间内不会使用,所以我打算删除Linux。
删除Linux最需要注意的地方,就是MBR(Master Boot Record)。在删除Linux分区前,我们需要将启动Windows的引导信息写入MBR,否则,MBR中的Linux引导信息,当然就不能启动Windows系统了。  阅读全文
posted @ 2009-11-26 13:14 零全零美 阅读(2797) | 评论 (0)编辑 收藏
     摘要: 在系统开发中,与用户交互的地方,例如表单输入,浏览器URL传参都是系统安全的敏感地带。传统的客户端JavaScript验证只能挡君子而不能拦小人,因为用户一旦将JS禁用,我们就无能为力。于是人们说最安全的方式还是在服务器端验证。但是这种最安全的方式却是很麻烦的做法!因为我们无法只单单的在服务器端验证,我们还需要做客户端传统验证,这样一来同一套验证,客户端一次,服务器端一次,暂且不考虑执行的效率,单单是开发的效率就很让人抓狂了!尤其是对URL传参的验证,难道我们对每一个URL传递参数的地方都必须写一堆的验证代码吗?
如果有这样一种方法能够通过一个过滤器能够一次性的拦截获取所有的用户输入,那么我们就可以只通过这个过滤器来做基础的安全性验证,例如我们可以过滤SQL语句,过滤非安全字符等等,而把业务规则验证留给程序员去实现,就将大大的加快开发效率,同时也可以构建一个通用的用户输入验证框架,减少与程序的紧耦合!
例如我们将所有用户输入中的"<"改为"<",将所有的">"改为">"
本文试图寻找一种方法来解决这个问题!
  阅读全文
posted @ 2009-11-24 12:15 零全零美 阅读(1210) | 评论 (2)编辑 收藏
     摘要: 装饰模式是Erich Gamma等人所著的《设计模式:可利用面向对象软件的基础》一书中众多模式之一。一般来说,此模式在设计Swing的程序员中比较流行,他们用它来改进软件。今天,即使有许多程序是基于Web应用的,装饰模式仍有用武之地,在J2EE的环境下也有使用的价值。
本文说明了如何将装饰模式应用到servlet request对象上。首先,提出了一个与servlet filter有关的问题,并解释了随之而引入的装饰模式。然后,讨论了如何在servlet环境下使用此模式,并列出了使用此模式的几个比较有名的基于servlet的项目。最后,文章通过实现一个删除空白符的filter例子,演示了装饰模式在servlet中的使用。  阅读全文
posted @ 2009-11-24 11:21 零全零美 阅读(618) | 评论 (0)编辑 收藏
     摘要: 内存越来越大,装的程序也越来越多,平时工作时Myeclipse、PowerDesigner、Dreamweaver、Tomcat、Plsqldev开了一大堆!很多经常用,但又不是每次都用到的程序,如Oracle、Mysql、VMware,设置自启动太浪费内存,设置为手动有必须每次一个一个的找到分别启动,很是麻烦!
这个批处理(以VMware为例)可以让你动动鼠标即可以自动开启和关闭服务!
  阅读全文
posted @ 2009-11-23 11:30 零全零美 阅读(784) | 评论 (0)编辑 收藏
     摘要: 编译安装Apache,让其开机自启动,配置其在webmin里可用  阅读全文
posted @ 2009-11-04 15:14 零全零美 阅读(2155) | 评论 (1)编辑 收藏
     摘要: 安装JDK、mysql、ftp,使用webmin管理ftp,并让ftp用户不具有登录系统的权限和限制一些系统级的用户禁止使用ftp登录,以增加安全性!  阅读全文
posted @ 2009-11-04 11:12 零全零美 阅读(1458) | 评论 (0)编辑 收藏
     摘要: 基本环境的配置:安装openssh、配置静态IP、配置源列表、更新系统、安装webmin  阅读全文
posted @ 2009-11-03 18:42 零全零美 阅读(1413) | 评论 (1)编辑 收藏
     摘要: vsftpd.conf - vsftpd 的配置文件
描述
vsftpd.conf 可以用于控制 vsftpd, 以实现各种各样的功能. vsftpd 缺省到 /etc/vsftpd.conf 处查找此文件. 当然, 您也可以通过命令行参数进行指定. 这个命令行参数就是指 vsftpd 的配置文件. 对于想使用高级 inetd 管理的用户, 例如, xinetd, 则这个功能非常有用. 可以使用不同的配置文件来启动基于虚拟主机的每个服务.
  阅读全文
posted @ 2009-10-28 13:24 零全零美 阅读(211) | 评论 (0)编辑 收藏
     摘要: /etc/network/interfaces
打开后里面可设置DHCP或手动设置静态ip。前面auto eth0,让网卡开机自动挂载.  阅读全文
posted @ 2009-10-28 11:19 零全零美 阅读(284) | 评论 (0)编辑 收藏
     摘要: 一、ORACLE实例

  1、ORACLE 实例——包括内存结构与后台进程

  System Global Area(SGA) 和 Background Process 称为数据库的实例。

  2、ORACLE 数据库——物理操作系统文件的集合

  一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)   阅读全文
posted @ 2009-10-25 22:10 零全零美 阅读(195) | 评论 (0)编辑 收藏
     摘要: 在实际的开发应用中,关于Oracle数据库,经常听见有人说建立一个数据库,建立一个Instance,启动一个
Instance之类的话。 其实问他们什么是数据库,什么是Instance,很可能他们给的答案就是数据库就是
Instance,Instance就是数据库啊,没有什么区别。在这里,只能说虽然他们Oracle用了可能有了一定的经
验,不过基础的概念还是不太清楚。
  阅读全文
posted @ 2009-10-25 21:57 零全零美 阅读(377) | 评论 (0)编辑 收藏
     摘要: 问题提出:将格式为:"25/10/2009"的时间转换为"2009-10-25"的格式
问题分析:
1、年份2009、月份10、日25应该做为一个独立的单位,这样我们可以直接知道什么地方匹配的是年、月还是日
2、可以用\d\d\d\d来匹配年份,用\d\d来匹配月份,用\d\d来匹配日
3、应该可以有一个地方存储匹配过的结果,以便于转换
解决问题所必须知道的:
1、分组就是将若干单位(可以是字符,正则表达式等等)组织在一起,成为一个独立的单元,
该单位可以跟独立的字符一样,受量词的控制,分组使用()表示
2、分组分为捕获性分组和非捕获性分组,简单的说捕获性分组就是捕获分组所匹配的内容暂且存储在某个地方,以便下次使用,捕获性分组以(...)表示,有些地方将取得捕获性分组所匹配结果的过程称之为"反向引用",非捕获性分组不捕获分组所匹配的内容,当然也就得不到匹配的结果,非捕获性分组以(?:...)表示,在一些只需要分组匹配但是并不需要得到各个分组匹配的结果时,使用非捕获性分组可以提供匹配速度。
3、在JavaScr  阅读全文
posted @ 2009-10-25 13:01 零全零美 阅读(3965) | 评论 (2)编辑 收藏
     摘要: ubuntu@ubuntu:/home$ sudo adduser username

出现如下的信息:

Adding user username' ...
Adding new group username' (1001) ...
Adding new user username' (1001) with group `dengyanhui' ...
Creating home directory `/home/username' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for username
Enter the new value, or press ENTER for the default 阅读全文
posted @ 2009-10-22 10:21 零全零美 阅读(3404) | 评论 (0)编辑 收藏
     摘要: 通用格式:find pathname -options [-print -exec -ok]
例子:
find / -name filename 再根目录里面搜索文件名为filename的文件
find /etc -name *s*在目录里面搜索带有s的文件
find /etc -name *S 在目录里面搜索以s结尾的文件
find /etc -name s*在目录里面搜索以s开头的文件
find / -amin -10在系统中搜索最后10分钟访问的文件
find / -atime -2查找在系统中最后48小时访问的文件
find / -empty 查找在系统中为空的文件或者是文件夹
find / -group groupname 查找在系统中属于groupname的文件
find / -mmin -5查找在系统中最后5分钟修改过的文件
find / -mtime -1查找在系统中最后24小时修改过的文件
find /-nouser查找在系统中属于费用户的文件
find / -us  阅读全文
posted @ 2009-10-19 14:19 零全零美 阅读(8777) | 评论 (0)编辑 收藏
     摘要: sudo chown -R username filename
-R :递归文件夹内部的所有文件及文件夹


username:目标所有者名称

filename:文件或文件夹名称  阅读全文
posted @ 2009-10-19 09:49 零全零美 阅读(1221) | 评论 (0)编辑 收藏
     摘要: tar -zxvf mysql-5.0.45.tar.gz

tar的参数z是调用gzip解压,x是解包,v是校验,f是显示结果。更多 参考 tar --help
  阅读全文
posted @ 2009-10-12 20:15 零全零美 阅读(198) | 评论 (0)编辑 收藏
     摘要: 1、sudo apt-get remove apache2
2、sudo apt-get remove apache2.2-common
3、sudo apt-get autoremove (此命令会自动卸载PHP)
卸载完成  阅读全文
posted @ 2009-10-12 20:14 零全零美 阅读(2083) | 评论 (0)编辑 收藏
     摘要: 用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同MSDOS下的ren和move的组合 。
语法:mv [选项] 源文件或目录 目标文件或目录
注意:
1、如果第一个参数和第二个参数都是文件名且第二个参数已经存在,那么前者会覆盖后者,这个时候可以使用-i选项来强制系统在第二个参数表示的文件已经存在是询问,而不是直接覆盖。  阅读全文
posted @ 2009-10-12 19:14 零全零美 阅读(3776) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-10-10 16:00 零全零美 阅读(725) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-10-10 11:01 零全零美 阅读(325) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-10-10 10:48 零全零美 阅读(256) | 评论 (0)编辑 收藏
     摘要: 前段时间因为项目原因,要在修改数据库连接池到DBCP上,折腾了半天,有一点收获,不敢藏私,特在这里与朋友们共享。
  在配置时,主要难以理解的主要有:removeAbandoned 、logAbandoned、removeAbandonedTimeout、maxWait这四个参数,设置了rmoveAbandoned=true那么在getNumActive()快要到getMaxActive()的时候,系统会进行无效的Connection的回收,回收的Connection为removeAbandonedTimeout(默认300秒)中设置的秒数后没有使用的Connection,激活回收机制好像是getNumActive()=getMaxActive()-2。 :) 有点忘了。
  logAbandoned=true的话,将会在回收事件后,在log中打印出回收Connection的错误信息,包括在哪个地方用了Connection却忘记关闭了,在调试的时候很有用。  阅读全文
posted @ 2009-10-10 10:45 零全零美 阅读(471) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-10-09 15:38 零全零美 阅读(1949) | 评论 (0)编辑 收藏
     摘要:   阅读全文
posted @ 2009-10-09 15:25 零全零美 阅读(3333) | 评论 (0)编辑 收藏
     摘要: 1、进入根路径:键入cd,按回车键。
2、进入一个子目录:键入cd,空格,然后是子路径名(例如:cd Documents),再按回车键。
3、进入当前目录的上一级目录:键入cd,空格,两个点,然后按回车键。
4、进入一个特定的目录:键入cd,空格,路径名(例如 cd /usr/local/lib),再按回车键。
5、键入pwd,按回车键,你将看到你所在的当前目录名称  阅读全文
posted @ 2009-10-09 14:43 零全零美 阅读(624) | 评论 (0)编辑 收藏
   不知怎么了,干什么事情都提不起来劲,估计是该换个环境好好休息休息一下了!
posted @ 2009-09-27 16:26 零全零美 阅读(115) | 评论 (0)编辑 收藏
     摘要:  Oralce数据库中,提供了“专用服务器模式”与“共享服务器模式”两种连接模式。虽然说,数据库管理员可以随意选择连接模式,一般情况下,不会有什么使用上的问题。两者的差异,主要在于不同的使用情况下,其数据库访问的性能会有所差别。所以,对于性能要求比较高的企业,则就需要根据自己的情况,选择合适的连接模式。
  阅读全文
posted @ 2009-02-26 17:56 零全零美 阅读(214) | 评论 (0)编辑 收藏
     摘要: 贪婪量词:
先看整个字符串是不是一个匹配。如果没有发现匹配,它去掉最后字符串中的最后一个字符,并再次尝试。如果还是没有发现匹配,那么 再次去掉最后一个字符串,这个过程会一直重复直到发现一个匹配或者字符串不剩任何字符。简单量词都是贪婪量词。

惰性量词:
先看字符串中的第一个字母是不是一个匹配,如果单独着一个字符还不够,就读入下一个字符,组成两个字符的字符串。如果还没有发现匹配,惰性量词继续从字符串中添加字符直到发现一个匹配或者整个字符串都检查过也没有匹配。惰性量词和贪婪量词的工作方式恰好相反。

支配量词:
只尝试匹配整个字符串。如果整个字符串不能产生匹配,不做进一步尝试。  阅读全文
posted @ 2009-01-07 14:54 零全零美 阅读(3461) | 评论 (3)编辑 收藏
     摘要: 量词用于指定特定模式出现的次数,这个次数可以是硬性的,如某个字符应该出现4次,如果没有出现四次就是错的,也可以是软性的,如某个字符应该出现0至4次,意思是该字符可以出现,也可以不出现,可以出现一次,两次,也可以出现三次,四次。  阅读全文
posted @ 2008-11-29 14:13 零全零美 阅读(1723) | 评论 (3)编辑 收藏
     摘要: cloneNode是进行DOM操作经常使用的方法,有了它我们可以很容易的克隆一个跟原来一模一样的DOM对象,如:在动态增加table的行的时候,我们只需克隆一个table中现有的行,然后调用talbe.appendChild()方法就可以实现,而无需调用table繁琐的DOM操作方法。但是在开发中,我发现cloneNode在对select进行克隆时却无法克隆出当前选中的option,克隆出来的对象的options中拥有selected属性的永远都是第一个。
  阅读全文
posted @ 2008-11-24 13:08 零全零美 阅读(1927) | 评论 (1)编辑 收藏
     摘要: "|":意思是"或",他可以把多个子表达式组合成一个总的表达式,而这个总表达式拥有子表达式的全部能力  阅读全文
posted @ 2008-11-21 13:44 零全零美 阅读(3637) | 评论 (2)编辑 收藏
     摘要: 行的开始和结束 开始符号:^ 结束符号:$ 如:^cat 应该理解为以c作为一行的第一个字符,紧接着是a,然后是t
例如:String str = "catabdcatdetfcat"
^cat : 验证该行以c开头紧接着是a,然后是t
cat$ : 验证该行以t结尾倒数第二个字符为a倒数第三个字符为c
^cat$: 以c开头接着是a->t然后是行结束:只有cat三个字母的数据行
^$ : 开头之后马上结束:空白行,不包括任何字符
^ : 行的开头,可以匹配任何行,因为每个行都有行开头
  阅读全文
posted @ 2008-11-19 19:36 零全零美 阅读(17735) | 评论 (7)编辑 收藏
     摘要: 前面我有一篇《JBPM源码解读之:Fork》,大致分析了JBPM对于Fork的实现方式,其实Fork和Join是不可分割的一对,Fork实现分拆,Join实现汇集。先让我们看一下《JBPM 3.2.3 User Guide》中关于Join的描述:
The default join assumes that all tokens that arrive in the join are children of the same parent. This situation is created when using the fork as mentioned above and when all tokens created by a fork arrive in the same join. A join will end every token that enters the join. Then the join will examine the parent-child relation of the token that enters the join. When  阅读全文
posted @ 2008-11-14 23:55 零全零美 阅读(1901) | 评论 (2)编辑 收藏
     摘要: 关于JBPM中并发子流程的实现方式,网上有很多的说法,但是好像每种办法都有这样那样的缺点,要么实现太复杂,要么就是会使Token无法继续流转。这里我介绍一种我的并发子流程的实现方式:使用TaskNode使任务并行的方式,模拟实现JBPM子流程的并发执行。
我先简单的介绍一下实现思路:
1、数据库中应该有至少三个已经发布过的流程定义(ProcessDefinition),发布的顺序无所谓,一个主流程两个子流程
2、我们在主流程中要实现并发子流程的环节放置TaskNode,设置create-tasks="false"、signal="last-wait"
3、我们想要实现几个子流程的并发就在第二步放置的TaskNode中放置几个Task,每个Task的名字都是要并发的子流程的名称
4、在TaskNode的Node-Enter action中,我们手动为每一个Task创建一个任务实例,同时我们取得Task的名字也就是要并发的子流程的名字,创建流程实例
  阅读全文
posted @ 2008-11-12 15:00 零全零美 阅读(3302) | 评论 (6)编辑 收藏
     摘要: 在阅读本文之前,建议先阅读一下《JBPM源码解读之:Fork》以了解Fork中Script的配置方法及处理方式:
按照Fork对Script的规范Script必须包含一个具有write权限的变量,而且该变量必须实现java.util.Collection接口。  阅读全文
posted @ 2008-11-05 17:05 零全零美 阅读(1902) | 评论 (4)编辑 收藏
     摘要: Fork节点在整个JBPM流程运转过程中配合Join使用提供使多于一个的节点如:TaskNode、State等并行运行的作用,很可惜我们不能利用Fork提供的现有机制实现需求中经常遇到的并发子流程的效果,当然虽然JBPM并不支持并发子流程的机制,并不代表我们不能变通的实现,我将在另一篇文章中详细说明我的并发子流程的实现方式。
Fork类的注释中说:if this fork behaviour is not sufficient for your needs, consider writing your own custom TokenHandler.看来连JBPM开发小组也意识到Fork可能不能满足某些特殊的需求。注释中还说Fork节点有三种配置方式,我很奇怪为什么代码中只能找到两种:  阅读全文
posted @ 2008-11-05 16:41 零全零美 阅读(2092) | 评论 (0)编辑 收藏
     摘要: 在默认的情况下,双击事件时是要触发单击事件的,但是这种情况有时候却是我们不想要的,那么如何才能在双击的时候屏蔽单击事件的触发呢?网上流传一种延迟执行的方法,大致思路如下:
1、声明一个全局的计时器变量如:clickTimer
2、在代理单击事件里设置计时器,默认220毫秒之后触发真正的单击事件处理函数
3、在双击事件里判断计时器变量,如果该变量不为NULL,则说明在触发该双击事件前触发了单击事件,取消计时器,因为真正的单击事件处理函数在220毫秒之后才会触发,所以在这个时候结束定时器,则真正单击事件处理函数不会被执行。  阅读全文
posted @ 2008-11-04 20:14 零全零美 阅读(1243) | 评论 (0)编辑 收藏
     摘要: 在做流程的流转历史时,通常情况下还是以列表的形式表现,但是这样总是感觉不太直观,JBPM号称是面向图的编程,那么为什么我们不能在流程图上显示我们的流转历史呢,至少我们可以在流程图上高亮显示当前流程执行到了哪个节点,如果能这样的话用户可以很轻松而且一目了然的看到流程的流转情况。
我发现在JBPM自带的例子中有类似的效果,后来无意中又在网上发现了一篇文章《 JBPM图形化流程监控》,作者简单的阐述了图形化流程监控的实现思路,让我欣喜万分,最终决定一试,呵呵,首先让我秀一下战果吧:  阅读全文
posted @ 2008-09-25 13:30 零全零美 阅读(6468) | 评论 (5)编辑 收藏