MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

jeval http://www.javagg.com/diary/67916522
http://gao-20022002.javaeye.com/blog/269459
http://wangxiaojs.javaeye.com/blog/291700
http://www.javaeye.com/topic/15346?page=1
http://www.javaeye.com/topic/156735

posted @ 2009-05-31 22:42 leekiang 阅读(267) | 评论 (0)编辑 收藏

Oracle回滚段概念用法规划及问题解决
http://bbs.zdnet.com.cn/archiver/tid-127193.html

posted @ 2009-05-29 21:44 leekiang 阅读(215) | 评论 (0)编辑 收藏

http://cwiki.apache.org/WICKET/acegi-and-wicket-auth-roles.html
http://databinder.net/site/show/overview

和sh的整合
http://www.javaworld.com.tw/roller/ingramchen/entry/2006_2_17_sample_wicket_hibernate_spring_application

http://www.nabble.com/integration-Spring-Wicket-Hibernate-problem-with-injection-bean-td19462602.html

Enjoying Web Development with Wicket
http://wicketinaction.com/
pro wicket
http://www.onehippo.org/cms7/delve_into/quickstart.html

http://www.blogjava.net/killme2008/archive/2007/05/22/119149.html
http://www.ibm.com/developerworks/cn/opensource/os-tapestrywicket/
http://www.netbeans.org/kb/60/web/quickstart-webapps-wicket_zh_CN.html

开源项目:hippocms

wicket+jquery  http://www.wickext.org

WiQuery results from the merge of two projects, WickeXt and jQuery4Wicket

http://wicketstuff.org

http://www.javalobby.org/java/forums/t68753.html

为什么是Wicket?

http://stuq.nl/weblog/2008-09-03/user-friendly-form-validation-with-wicket
http://stuq.nl/weblog/2008-06-05/wicket-how-to-write-a-reusable-modal-window-popup

Wicket RAD 0.6 released



其他框架
dorado,click,echo2,tapestry,OpenJWeb ,easyjweb ,rapid-framework,rife,trails
http://www.metadmin.com 权限

posted @ 2009-05-23 22:12 leekiang 阅读(481) | 评论 (0)编辑 收藏

watiR
http://www.51testing.com/html/11/n-11611.html
http://www.51testing.com/html/57/1872.html


使用iTest2重构自动化功能测试脚本

众所周知,自动测试脚本很难维护。随着敏捷方法学在企业软件项目中的广泛应用,其核心实践之一——自动化功能测试已经证明了它的价值,同时却也对项目提出 了挑战。传统的“录制-回播”类型的测试工具也许能帮助测试人员很快地创建一系列的测试脚本,但这些测试代码最后却很难维护。原因就是:应用程序在不断变化。
Test2 IDE是一款新的功能测试工具,专为测试人员设计,让他们能够很轻松地开发和维护自动测试脚本。iTest2完全致力于web测试的自动化,它支持的测试框架是使用RSpec语法的rWebUnit(是广为流行的Watir的一款开源插件)。iTest2背后的哲学是:容易、简单。试用显示:没有编程经验的测试人员在指导下,平均只需要少于10分钟的时间就能编写他们第一个自动化测试脚 本。借助于iTest2,测试人员可以开发、维护和验证功能需求的测试脚本;开发人员可以验证特性可用;业务分析师/客户通过查看测试运行结果(在真实的 浏览器下,比如IE或者Firefox)来验证功能需求。由iTest2创建的测试脚本可以从命令行运行,也能集成在持续构建服务器上。

感觉selenium不如watiJ好用,为什么要单启一个服务器呢
selenium和WebDriver有何关系

posted @ 2009-05-23 19:05 leekiang 阅读(282) | 评论 (0)编辑 收藏

OpenJWeb

nutz http://code.google.com/p/nutz/

liveflow


http://java-source.net

http://www.jspresso.org   Wings


posted @ 2009-05-22 22:09 leekiang 阅读(177) | 评论 (0)编辑 收藏

1,create table tbA as select * from tbB
  这样会丢失索引等信息

2,生成10万条测试记录表可以用如下SQL:
 create table myTestTable as
select rownum as id,
               to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime,
               trunc(dbms_random.value(0, 100)) as random_id,
               dbms_random.string('x', 20) random_string
          from dual
        connect by level <= 100000;
来源:http://blog.csdn.net/yzsind/archive/2009/12/08/4967133.aspx

posted @ 2009-05-12 22:26 leekiang 阅读(264) | 评论 (0)编辑 收藏

1,从excel中取得的数字要么带".0",要么是1.33E8之类,用NumberFormat搞定
       String value = "";
        if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
            double d = cell.getNumericCellValue();
            NumberFormat formatter = NumberFormat.getNumberInstance();
            formatter.setGroupingUsed(false);
            value = formatter.format(d);

        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
            value = cell.getStringCellValue();
        }
      
2,     String s="3,4,5,6,";
        System.out.println(s.split(",").length);
      输出4,我记得以前的输出好像是5?


3, 以正常的方式显示double数字的值,好像比较困难。
public String double2String(double d, int fNumber) {
        if (fNumber < 0)
            fNumber = 0;

        String pattern = null;
        switch (fNumber) {
        case 0:
            pattern = "#0"; //$NON-NLS-1$
            break;
        default:
            pattern = "#0."; //$NON-NLS-1$
            StringBuffer b = new StringBuffer(pattern);
            for (int i = 0; i < fNumber; i++) {
                b.append('#');
            }
            pattern = b.toString();
            break;

        }
        DecimalFormat formatter = new DecimalFormat();
        formatter.applyPattern(pattern);
        String value = formatter.format(d);
        return value;
    }


public String SicenToComm(double value) { 
         String retValue = null; 
         NumberFormat fmt= NumberFormat.getNumberInstance();
         //DecimalFormat fmt= new DecimalFormat();  //效果一样
         fmt.setMinimumFractionDigits(5);  //
         fmt.setMaximumFractionDigits(5);  //什么意思
         retValue = fmt.format(value); 
         System.out.println(retValue); 
         retValue = retValue.replaceAll(",","");  //去掉逗号
         return retValue; 
     }
以上两种方式都不能全部显示543854839493943.4533656这样的数

posted @ 2009-04-27 00:02 leekiang 阅读(397) | 评论 (0)编辑 收藏

JVM是Java程序的运行环境,因此对于JVM的掌握有助于理解Java程序的执行以及编写,尤其是运行时碰到的一些诡异问题,那么怎么样能考察自己对于JVM关键知识点的掌握情况,帮助学习JVM机制呢,在这篇blog中来探讨下。

对于Java程序而言,JVM的关键机制有:字节码的加载、方法的执行、对象内存的分配和回收、线程和锁机制,这几个机制涉及到的jvm的知识点远没有写这几个字这么简单,里面的复杂度还是非常高的。

字节码的加载
JVM通过ClassLoader来完成字节码的动态加载,这里面涉及到的主要是ClassLoader的双亲委派、ClassLoader的编写方法、Class是否被加载的唯一标识以及Class的加载过程。
在考察的时候我觉得可以以这么两道简单的题来考察:
1、写一段将目录中指定的.class文件加载到JVM的程序,并通过Class对象获取到完整类名等信息;
2、一段展示代码,里面包含一个全局静态整型变量,问如果用两个ClassLoader加载此对象,执行这个整型变量++操作后结果会是怎么样的?

方法的执行
JVM有自己的一套指令系统,字节码中即已经是指令了,需要大概掌握了JVM对static、interface、instance、构造器采用的不同的 执行方法,另外就是JVM中反射的实现(可以以Sun JDK来举例)、动态代理的实现,最后相关的就是JVM执行字节码的方式(解释、JIT、Hotspot),以及什么时候触发编译成机器码,如何控制。
在考察的时候我觉得可以以这么三道题来考察:
1、A a=new A();a.execute();和IA a=new A();a.execute();执行有什么不同;
2、反射的性能低的原因是?
3、编写一段程序,动态的创建一个接口的实现,并加载到JVM中执行;(可以允许用BCEL等工具)

对象内存的分配和回收
这块涉及的知识点也是比较的多,例如JVM内存区域的划分、自然类型和引用类型的内存分配的不同、TLAB、GC的算法、Sun JDK对于GC的实现、GC触发的时机、GC的跟踪和分析的方法。
在考察的时候我觉得可以以这么三道题来考察:
1、经典的String比较程序题:
   String a="a";
   String b="b";
   String ab="ab";
   (a+b)==ab;  ??  (引深题,如何才能让(a+b)==ab)
   ("a"+"b")==ab; ?? 
2、写一段程序,让其OutOfMemory,或频繁执行Minor GC,但又不触发Full GC,又或频繁执行Full GC,但不执行minor GC,而且不OutOfMemory,甚至可以是控制几次Minor GC后发生一次Full GC;
3、详细讲解GC的实现,例如minor GC的时候导致是怎么回收对象内存的,Full GC的时候是怎么回收对象内存的。

线程和锁机制
这块涉及的知识点仍然是非常的多,例如线程中变量的操作机制、线程调度机制、线程的状态以及控制方法、线程的跟踪和分析方法、同步关键字、lock/unlock的原理等。
在考察的时候我觉得可以以这么几道题考察下:
1、i++的执行过程;
2、一个线程需要等待另外一个线程将某变量置为true才继续执行,如何编写这段程序,或者如何控制多个线程共同启动等;
3、控制线程状态的转换的方法,或者给几个thread dump,分析下哪个线程有问题,问题出在哪;
4、static属性加锁、全局变量属性加锁、方法加锁的不同点?
转自http://www.blogjava.net/BlueDavy/

posted @ 2009-03-27 21:23 leekiang 阅读(210) | 评论 (0)编辑 收藏

OSI是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范。OSI模型有7层结构,每层都可以有几个子层。
OSI七层模型是一个很好的理论模型,但是在实际应用中都做了裁剪。尤其是TCP/IP的盛行,把7层结构压成了4层,
所以很多人都批评OSI七层模型过于复杂,但是作为一个完整的全面的网络模型,还是被大家非常认可的。OSI的7层从上到下分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
7层的功能描述:
(1) 应用层:与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。例如,一个没有通信功能的字处理程序就不能执行通信的代码,从事字处理工作的程 序员也不关心OSI的第7层。但是,如果添加了一个传输文件的选项,那么字处理器的程序员就需要实现OSI的第7层。示 例:telnet,HTTP,FTP,WWW,NFS,SMTP等。
(2)表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许 你选择以二进制或ASII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASII格式,发送方将把文本从发送方的字符集转换成 标准的ASII后发送数据。在接收方将标准的ASII转换成接收方计算机的字符集。示例:加密,ASII等。
(3)会话层:他定义了如何开始、控制和结束一个会话,包括对多个双向小时的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
(4)传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
(5)网络层:这层对端到端的包传输进行定义,他定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
(6)数据链路层:他定义了在单个链路上如何传输数据。这些协议与被讨论的歌种介质有关。示例:ATM,FDDI等。
(7)物理层:OSI的物理层规范是有关传输介质的特性标准,这些规范通常也参考了其他组织制定的标准。连接头、针、针的使用、电流、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。
来源:http://blog.csdn.net/wanghao72214/archive/2009/03/18/4000806.aspx

posted @ 2009-03-22 18:31 leekiang 阅读(287) | 评论 (0)编辑 收藏

PKI是解决开放式互联网络信息安全需求的成熟体系。PKI体系支持身份认证,信息传输、存储的完整性,消息传输、存储的机密性,以及操作的不可否认性。



一个用jsp开发的web应用,使用了session作为sigle sign on的实现。在用firefox浏览时没有问题,用IE 6浏览时刚开始也可以,点过几次后就会出现session lost的错误。

检 查发现IE6浏览时,web服务器端日志记下的sissionid变了。由于sessionid一般存在于cookie,推测是IE的cookie机制导 致的问题。考虑到这个应用使用了frameset,参考文章:http://support.microsoft.com /default.aspx?scid=KB;EN-US;Q323752

在frameset里面,也就是里面的frame是来自第三方 站点(不同IP或不同域名),那么默认情况下IE会自动禁用这些站点的cookie,也就是 在请求某url时在HTTP header里不发送它们的cookie,包括session的cookie。注意,这些站点在response里面设置的cookie还是会被发送到浏 览器的。

那么,解决的办法,自然是对frame里面的第三方站点的response header里面添加一个确认信息,在MSDN里面有个最简单的解决办法:response.addHeader("P3P","CP=CAO PSA OUR")。response.setHeader("P3P","CP=CAO PSA OUR");

最简单的办法,是用一个filter,对所有路径下的uri,都设置response.setHeader("P3P","CP=CAO PSA OUR")。

上面是microsoft提供的办法,以下是likebao的办法:tomcat关闭cookies,用URL重写传递sessionid。

1.tomcat关闭cookies,强制使用URL Rewriting

增加E:\jakarta-tomcat-5.0.28\conf\Catalina\localhost\XXApp.xml

内容如下:

<Context path="/XXApp" docBase="${catalina.home}/webapps/XXApp"
        debug="0" privileged="true" cookies="false">
</Context>

2.URL重写传递seesionid

    <%

            String sid=session.getid();

             response.redirect("xxxx123.jsp;jsessionid="+sid);

    %>

p3p是微软的隐私策略,通常情况下跨域iframe或者frameset默认采用的隐私策略为“中”,该级别的策略拒绝保留session。CAO PSA OUR则意味着你同意跨域保留session,但是也意味着你的网站不再安全。

posted @ 2009-03-18 02:35 leekiang 阅读(333) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 24 25 26 27 28 29 30 31 32 下一页 Last