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

1,动态执行js
  (1)document.write("<script>alert('ok');</script"+">");注意</script>要分开写
  或
  (2)var oDiv=document.createElement("script");
           oDiv.appendChild("alert('0k')");
        document.body.appendChild(oDiv);
  (3)eval("alert(ok);");
     但不知何故,在模态窗口中用eval执行window.dialogArguments.location.reload()会报错
 详见http://hi.baidu.com/ziyou038/blog/item/38b25b540a777e57564e009d.html
  (4)不要再回调中执行document.write
 原因:document close后,再document.write,就会覆盖整个页面

2//在写JavaScript代码时,可加入一个文本区域来进行调试
    function debugInfo(info) {
      var debugWindow = document.getElementById("debug_window");
      debugWindow.value = debugWindow.value + "\r\n" + info;
   }

3,
有时候,我们在调用 .js文件的时候,会发现。.js文件里的中文变成乱码了,
其实只要在调用的时候加一个charset就行了
<script language="javascript" src="../jscript/Cjs.js" type="text/javascript" charset="gb2312"></script>

4,
function b()
{
    i 
= 3;
}

function a()
{
    i 
= 1;
    b();
    alert(
"i="+i);
}
a();
a()和b()里面的变量i都没有使用var声明,最终alert结果会是3!!!
和 shell 一样的,局部中声明了变量其实是全局的, 加了 var 才是私有的
来源:http://www.blogjava.net/vls/archive/2008/05/11/199808.html

5,table在后面添加加行或列,通用写法insertRow(-1),insertCell(-1),这样才能跨浏览器

6,native2ascii
    先用alert(escape("确定")) 的方式得到"%u786E%u5B9A",然后在
js中alert(unescape('%u786E%u5B9A'))即可。
    如果是从java中得到的"\u786E\u5B9A"
<script>
var str="\u786E\u5B9A";
str
=str.replace(/\\/,"%");
var a=unescape(str)
document.write(a);
</script>

7,在JavaScript中不要使用跟HTML的id一样的变量名。否则IE会报I对象未定义的错误
8,var fileName = "This is a title".replace(/ /g,"_");  
9,parseInt("09")有问题,应该为parseInt("09", 10)
http://www.javaeye.com/topic/200401
10,执行focus()的时候,元素尚未可用。因此要延迟执行:
var newInput = document.createElement("input");  
newInput.id 
= "TheNewInput";  
document.body.appendChild(newInput);  
//在0.01秒之后调用匿名函数获取焦点  
setTimeout(function(){      document.getElementById('TheNewInput').focus();  
document.getElementById('TheNewInput').select();}, 
10);  

11,
arguments.callee.length
<script>
function test(x,y,z)
{
alert('argu.length:'+arguments.length);//实参的长度4
alert('argu.callee.length:'+arguments.callee.length);//形参的长度3
return x+y+z;
}
test(1,2,3,4);
</script>

12,js的substr和substring不一样
"aaaaa".substr(N1,N2)    从指定的位置(N1)截取指定长度(N2)的字符串;
"aaaaa".substring(N1,N2) 从指定的位置(N1)到指定的位置(N2)的字符串;
举个例子:
alert("123456789".substr(2,5)) 它显示的是 "34567"
alert("123456789".substring(2,5)) 则显示的为 "345"

13,js的switch也可用字符串匹配,只要能用==的都可以
function   test(cs){  
   switch(cs){  
  case   "a":alert("input   a");break;  
  case   "b":alert("input   b");break;  
  case   "c":alert("input   c");break;  
  default:alert("input   other   words");break;  
  }  
  }  
  test("a");
14,在js中动态生成代码
eval("var obj = document." + formName + "." + filedname + ";");

15,使用Javascript的eval生成json对象有个地方要注意:
var  myJSONtext="{a1:'黄夏柳',a2:'贾政经'}";
var myObject = eval('(' + myJSONtext + ')');//即要括起来,同时用两副单引号
用下面的写法不行var myObject=eval("(' + myJSONtext + ')");不知何故。

16,登录后用window.open实现浏览器全屏
//window.open(document.location, '窗体名称', 'fullscreen');//这句打开并去掉所有栏,连任务栏都盖住
//window.open(document.location,'窗体名称','fullscreen,scrollbars');//带滚动条
window.open('url','maxwindow','toolbar=no,location=no,directories=no,menubar=no,scrollbars=yes,resizable=no,status=no');
opener=null;//没有这句,关闭时有提示,ie5.5以上有效。
//如果是跳转到一个iframe,就改为parent.opener=null
window.close();//关闭当前窗口

17,IE,FF下取Iframe window对象的方法

IE:document.frames("Iframe_ID");

FF: document.frames("Iframe_ID") : document.getElementById("ifr_1").contentWindow;

IE和FF都兼容的方法:var ifr = document.frames ? document.frames("ifr_1") : document.getElementById("ifr_1").contentWindow;

18,关于右下角弹出窗口:

   参看凤凰网、天涯或CSDN的例子

19,链接的点击,两种方式:

<A href="#" onclick="log();">

<a href="javascript:log()">  千万不要写target="_parent",这样调的是父页面的函数


posted @ 2008-03-12 21:10 leekiang 阅读(408) | 评论 (0)编辑 收藏

1,有时连续调多个Dao方法时会报连接关闭,原因往往是关闭session不当。
  不要用session.close(),这样会使同一个线程的下一个Dao方法里执行
  HibernateSessionFactory.getSession()时取到的是已经被关闭的session,当然会报错了。

2,Connection conn =session.connection();
  这个conn一定要执行conn.close()吗?

3,
http://hi.baidu.com/sodarfish/blog/item/b996a3df9224d217622798ec.html
在通常的情况下使用DriverManager.getConnection()得到的是一个Connection的实例,当你调用它的close()方 法时会关闭StateMent和ResultSet。但是我们在使用连接池的过程中,通过连接池得到Connection,当我们调用 Connection的close()时,Connection并不是被关闭了,而是回到了连接池中,它以后还会被其他的代码取出来使用,如果我们没有关 闭stmt和rs的话,只会使系统中的stmt和rs越来越多。所以在使用连接池后,调用conn.close()前应先将rs和stmt关闭。

至于为什么调用close()之后不是直接关闭此连接,而是返回给连接池,这是因为dbcp使用委派模型来实现Connection接口了。

http://nymph.blogdriver.com/nymph/180989.html#comment
http://www.javaeye.com/topic/9317?page=1
http://www.javaeye.com/topic/48048?page=1
Hibernate中的session 事务处理机制
 

posted @ 2008-03-11 22:43 leekiang 阅读(540) | 评论 (0)编辑 收藏

不建议索隐、考据,但基本的常识还是需要知道的
1,json全称JavaScript Object Notation(记法,表示法)
2,json格式非常适合那些具有一些属性和值对的简单对象.
3,json的数据格式:以"{"开始,以"}"结束,中间的属性与值对以","分隔,属性与值之间以":"分隔。属性可以是:
  简单的字符串,例如 "hello"
  数组,例如 [1,2,3,4]
  数字
  true, false, 或 null
  其他对象,或者对象中还有对象。
  例如'{name:"tom",dept:"R&D",man:{name:"zhangsan",dept:"HR"}}';
4,ajax和json是绝配。ajax减少请求,json简化服务器端的输出。
5,可以在客户端事先放好html模板,然后以不增一字不减一字、含金量极高的json去填充
6,json与xml相比,json获得js的原生支持,json对象本身就是js对象,js操作json极其方便。
7,建议在server -> client单向使用,不用json-lib,在输出时写个几十行的程序就可以把Java object输出成json string,
毕竟js是json的舞台
8,文本转json对象,有两种方式:
   var resp ='{msgCt:"1",msgs:{from:"zhangsan",content:"hello"}}';
   var jsonObj1 = eval('('+resp+')');//方式一
   var func = new Function("return "+resp);
   var jsonObj2 =func();//方式二
   alert(jsonObj1.msgs.content);
9,怀疑js里的函数和java的类一样,只有使用了才加载到内存中,没有使用时跟不存在一个样

posted @ 2008-03-09 01:56 leekiang 阅读(830) | 评论 (0)编辑 收藏

1
      //这是properties在同一目录下。
      InputStream in = Test.class.getResourceAsStream("jdbc.properties");
      //这是properties在classpath的根目录下
      InputStream in = Test.class.getResourceAsStream("/jdbc.properties");
   详见http://blog.csdn.net/explorers/archive/2007/08/02/1722740.aspx

2,用没有重载Object的equals()函数的StringBuffer作为HashMap的key,结果map永远都在增大,造成内存泄漏。
   来源:http://www.blogjava.net/calvin/archive/2008/07/04/212500.html

3 &&,||优先级
   &&的优先级比||高,先计算

4, 对List排序
java.util.Collections.sort(List list, Comparator c)

public class UserComparator implements Comparator{ public int compare(Object arg0, Object arg1) {
  User user0=(User)arg0;
  User user1=(User)arg1;
  //首先比较年龄,如果年龄相同,则比较名字
  int flag=user0.getAge().compareTo(user1.getAge());
  if(flag==0){
   return user0.getName().compareTo(user1.getName());
  }else{
   return flag;
  }  
 }
 
}


posted @ 2008-03-07 09:44 leekiang 阅读(345) | 评论 (0)编辑 收藏

在我所知道的主流JavaScript库中,jQuery拥有最棒的Ajax API。最简单的Ajax调用如:
				jQuery('div#intro').load('/some/fragment.html');

代码以GET请求方式,从/some/fragment.html文件中获取HTML片段,并把片段装载到id="intro"的div中。

当 我第一次看到这行代码时,几乎对它没什么印象。这看起来非常简洁,但如果你想用jQuery做些更复杂的事情,比如显示Ajax装载进度,该如何做呢? jQuery为你准备了一些可自定义的事件(ajaxStart,ajaxComplete,ajaxError等等),来实现你想要的代码。同时 jQuery也提供了广泛的底层API,来实现更复杂的Ajax交互:

				jQuery.get('/some/script.php', {'name': 'Simon'}, function(data) {
alert('The server said: ' + data);
}); // 以GET方式通过/some/script.php?name=Simon获取数据

jQuery.post('/some/script.php', {'name': 'Simon'}, function(data) {
alert('The server said: ' + data);
}); // 以POST方式向/some/script.php发送请求

jQuery.getJSON('/some.json', function(json) {
alert('JSON rocks: ' + json.foo + ' ' + json.bar);
}); // 从/some.json接收并解析数据,把数据转换成JSON格式

jQuery.getScript('/script.js'); // 以GET方式获取/script.js脚本并用eval()执行

http://www.nixsky.com/program/java/2008-02/393.html

选取元素:
jQuery('div.panel')
选取了所有class="panel"的div
jQuery('p#intro')
选取了所有id="intro"的段落
jQuery('div#content a:visible')
选取了id="content"的div中所有可见的链接
jQuery('input[@name=email]')
选取了所有name="email"的输入域
jQuery('table.orders tr:odd')
选取了类名为“orders”的表中所有的奇数行
jQuery('a[@href^="http://"]')
选取了所有(以http://开头的)外部链接
jQuery('p[a]')
选取了所有包含一个或多个链接的段落

上述例子中,:visible和:odd是jQuery实现的扩展,很具特色。而属性的选取使用@作为标记,

其方式和XPath一样,要优于CSS2。

jQuery的这套选取语法包罗万象,有些类似正则表达式,想完全消化是需要花上一段时间的。

$(window.frames["innerIframe"].document).find("a[rel='external']").addClass("external")
.click(function(){window.open(this.href);return false;});});

在父窗口中操作 选中IFRAME中的所有单选钮
$(window.frames["iframe1"].document).find("input[@type='radio']").attr("checked","true");

在IFRAME中操作 选中父窗口中的所有单选钮
$(window.parent.document).find("input[@type='radio']").attr("checked","true");

取消全选
  $("input[@type=checkbox][@checked]").each(function(){
            $(this).attr("checked", '');
        });

如果选中的只有一个,取得选中的值
$("input[@type=checkbox][@checked]").eq(0).val()

posted @ 2008-03-07 02:31 leekiang 阅读(1426) | 评论 (0)编辑 收藏

面向构件,新一代的软件开发模式和方法。那么它的规范和标准又是什么呢?现在这个答案越来越清晰:SCA。可能现在绝大部分的人都会说SOA,其实 ‘SOA’这个回答是错误的!SOA不是软件开发的方法,不是软件开发的标准。他只是一个更大的软件架构概念,有着不够明确的内涵和超强的外延,就像‘中 间件’这个词一样。而SCA则不同,它有着清晰的内涵和规范标准,当然SCA也是在SOA的巨大范围之内,不过更有现实的意义。
详见http://dev.yesky.com/topic/308/7667308.shtml
http://incubator.apache.org/tuscany/home.html
http://webservices.ctocio.com.cn/scatechnology/

posted @ 2008-03-04 02:47 leekiang 阅读(309) | 评论 (0)编辑 收藏

1,
Portlet 参数选项
2,谈谈各大框架/产品的流程应用有讲到page flow

posted @ 2008-03-01 19:39 leekiang 阅读(207) | 评论 (0)编辑 收藏

1,"weblogic.kernel.Default"是从客户端提交请求后产生的线程所在的队列名。这个队列的线程数默认是15个。如果超过15个线程堵塞,则部署的应用将不能访问。同时后台报:
<2008-2-27 下午09时37分48秒 CST> <Error> <WebLogicServer> <BEA-000337> <ExecuteThread: '14' for queue: 'weblogic.kernel.Default' has been busy for "1,720" seconds working on the request "Http Request: /myapp/test/index.jsp", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.>
2,线程数(Tread Count):指派到weblogic.kernel.Default队列的线程数。如果你不需要使用超过15个线程(默认),就不必更改这个属性值。
也可以在mydomain下的config.xml中配置
<ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="50"/>



9,
Bea Weblogic 8.1 SP5 性能优化
weblogic中影响性能的参数总结
发布在weblogic里的程序随时间越长就越慢
weblogic中影响性能的参数总结
优化WebLogic服务器性能参数
性能调优及UNIX操作
队列长度一直很高,吞吐量不大,访问很慢是怎么回事?
Thread Dump 和Java应用诊断
WLS8.15常报socket或连接错误,什么原因?
Weblogic服务器性能调优
一个client和server之间的问题
java,weblogic和jdk性能文档
http://hi.baidu.com/luyi%5F11/blog/item/d32ea497b0776d6e55fb96d5.html
http://hi.baidu.com/amyihohn/blog/item/79fc8d167c96fe51f2de3230.html
http://hi.baidu.com/luyi_11/blog/item/5300f1f0279c0aaca40f52d1.html
http://www.javaeye.com/topic/140849




posted @ 2008-02-27 21:39 leekiang 阅读(2929) | 评论 (0)编辑 收藏

    新老版本并存,而老版本的jar包路径还在classpath中,并且在新版本的前面,程序调用新方法,编译没问题,但运行时会先去找旧的classes,而旧的classes中不含此方法,故报NoSuchMethodError错误,而且这个还不是异常,捕获不了,不好找原因。
    还有一种情况,你的代码调用a.jar ,a.jar又依赖b.jar,这时如果b.jar版本不对,也可能报这个错误。
    另外新旧版本并存,老版本在前,运行时调用的方法名相同,但内容变了,这时就不是报Error了,而是可能报各种稀奇古怪的异常。
    使用poi-3.0.2时,如果旧的poi还在classpath,则以上两种情况都可能发生。

posted @ 2008-02-26 04:53 leekiang 阅读(571) | 评论 (2)编辑 收藏

有关《java抽取word,pdf的四种武器》的实验和总结
Java抽取Word,PDF的四种武器
使用poi来抽取excel文本
用pdfbox解析pdf文件
poi
spring集成的Hibernate一窥
使用sqlquery
全文检索Lucene的实现方法

Ganttproject可以用来生成甘特图
文本比较http://www.incava.org/projects/java/java-diff/

posted @ 2008-02-26 04:44 leekiang 阅读(232) | 评论 (0)编辑 收藏

仅列出标题
共54页: First 上一页 39 40 41 42 43 44 45 46 47 下一页 Last