国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JsJava發(fā)布2.0版本 - Java - 51CTO技術(shù)論壇

發(fā)表于:2007-9-13 21:42   標(biāo)題:JsJava發(fā)布2.0版本
<上一帖 |
2007年9月11日,JsJava團(tuán)隊(duì)發(fā)布了JsJava2.0版本,該版本不僅增加了許多新的類庫,而且參照J(rèn)2SE1.4,大量使用了類的繼承和實(shí)現(xiàn)機(jī)制,更加符合面向?qū)ο蟮脑瓌t,也更加方便用戶使用和擴(kuò)充,而且對(duì)原來版本中存在一些bug進(jìn)行了修改,下面主要介紹一下2.0版的主要功能。
  1,實(shí)現(xiàn)了完整的聚集(collections)框架,主要包括列表(List)、哈西表(Hashtable)、集合(Set)、位集合(BitSet)、屬性表(Properties)、迭代器(Iterator)、堆棧(Stack)、枚舉器(Enumeration)、比較器(Comparator)等等,這大大方便了與聚集相關(guān)的操作,例如:
    var list=new ArrayList();
    list.add("a");
    list.add("b");
    list.add(new Date());
    Iterator it=list.iterator();
    while(it.hasNext()){
      var elem=it.next();
   }

   var hash=new Hashtable();
   hash.put("key1","value1");
   hash.put(new Date(),"value2");

   var set=new TreeSet();
   set.add("a");
2,實(shí)現(xiàn)了xml的處理,主要是對(duì)主流瀏覽器的內(nèi)置xml解析做了封裝,2.0版本中對(duì)非IE的Xpath做了很好的封裝,因此可以直接使用JsJava2.0的xpath來處理xml文本,下面舉一個(gè)使用JsJava xml處理的例子:


    var xp=new XmlBrowserParser();
    var xml="user1user2user3";
    xp.loadXml(xml);
    var xmlDoc=xp.toDocument();
    var usersElem=xmlDoc.getElementsByTagName("user");
    document.write("The number of user tag:"+usersElem.length);
    //You can alse use xpath
   var usersElem= xmlDoc.documentElement.selectNodes("user");
   document.write("The number of user tag:"+usersElem.length);

3,實(shí)現(xiàn)了對(duì)部分高等數(shù)學(xué)算的支持,包括矩陣、概率分布、統(tǒng)計(jì)、復(fù)數(shù)等等,具體可以參考http://jsjava.sourceforge.net/solutions/mathsolution.html ,下面舉一個(gè)簡(jiǎn)單例子:

    var c=new Complex(3,5);
    document.write(c.abs()+"
");
    document.write(c.add(new Complex(5,7))+"
");
    document.write(c.conjugate()+"
");
    document.write(c.isInfinite()+"
");
    document.write(c.isNaN()+"
");
    document.write(c.multiply(new Complex(6,6)).getReal()+"
");
    document.write(c.negate()+"
");
    document.write(c.subtract(new Complex(2,4)));

4 ,實(shí)現(xiàn)了對(duì)日期和數(shù)字的格式化處理,這個(gè)在實(shí)際編程中是非常方便的,例如:
    var df=new SimpleDateFormat();
    df.applayPattern("MM-dd-yyyy hh:mm:ss");
    var str=df.format(new Date());
    alert(str);//結(jié)果形式形如:11-25-2006 13:23:35
    var df=new DecimalFormat();
    df.applayPattern("00.000%");
    var str=df.format(0.0678567);
    alert(str);// the result is 6.786%
5,實(shí)現(xiàn)了數(shù)據(jù)驗(yàn)證,并默認(rèn)支持了多種驗(yàn)證器,包括URL、Email、范圍、IP等驗(yàn)證器。例如:
    var urlValidator=new URLValidator();
    var flag=urlValidator.validate("http://www.jsjava.com");
    alert(flag);//the result is true
    而且提供了一個(gè)通用的驗(yàn)證工具類ValidatorUtils,里面提供許多實(shí)用類方法,另外針對(duì)中國(guó)地區(qū)用戶我們實(shí)現(xiàn)了許多常用的一些驗(yàn)證器,例如漢字驗(yàn)證、居民身份證驗(yàn)證、Oicq號(hào)碼驗(yàn)證等等。
6,實(shí)現(xiàn)了頁面動(dòng)畫的支持,動(dòng)畫的播放原理,借鑒了Flash的思想,即一個(gè)動(dòng)畫是有一系列場(chǎng)景組成,每個(gè)場(chǎng)景是由一系列關(guān)鍵幀組成,而每一個(gè)幀則代表了一個(gè)實(shí)際控制點(diǎn),那么當(dāng)時(shí)間線流過的時(shí)候,多個(gè)場(chǎng)景的幀依次播放,就形成了任意線程合成動(dòng)畫效果,具體可以參考http://jsjava.sourceforge.net/solutions/webpageanimation.html。
7,實(shí)現(xiàn)了對(duì)Ajax的支持,JsJava2.0中對(duì)Ajax做了一層面向?qū)ο蟮姆庋b,留出了許多接口,可以讓編程人員更多的控制Ajax的細(xì)節(jié),舉例如下:
    var req=new AjaxRequest();
    req.setRequestMethod("post");
    req.setRequestURL("ajaxresponse.jsp");
    req.setAsync(true);
    req.setMethodOnSuccess(parseXml);
    req.setRequestHeader("Content-Type","text/html;charset=gb2312");
    req.send();

    function parseXml(){
      alert(req.getResponseText());
   }
8,實(shí)現(xiàn)了對(duì)地理信息的封裝,JsJava2.0主要實(shí)現(xiàn)了對(duì)中國(guó)省級(jí)、市級(jí)行政區(qū)的信息封裝,可以方便獲取相關(guān)信息,例如:

    function w(str){
        document.write(str+"
");
    }
    var country=ChinaInformationLoader.load();
    w(country);
    w("---------------");
    var province=country.getProvinceById("Guangxi");
    w(province);
    w("---------------");
    var cities=province.getCities();
    for(var i=0;i

顯示如下:



9,實(shí)現(xiàn)了對(duì)日歷和農(nóng)歷的支持,日歷對(duì)象Calendar是參照java.util.Calendar實(shí)現(xiàn)的,農(nóng)歷僅實(shí)現(xiàn)對(duì)中國(guó)農(nóng)歷的支持,舉例如下:
var c = new GregorianCalendar();
c.setTime(new Date(2007,2,8));
document.write("Calendar.WEEK_OF_YEAR:"+c.get(Calendar.WEEK_OF_YEAR);
  通過JsJava的日歷對(duì)象,你可以方便的獲得與日期相關(guān)的許多方面,例如可以知道某個(gè)日期是所在月的第幾周,知道是這一年中的第幾天等等,如果你對(duì)Java的Calendar很熟悉,你就明白它的強(qiáng)大了。
  輸出為:Calendar.WEEK_OF_YEAR:10
  另外,為了方便中國(guó)區(qū)用戶對(duì)農(nóng)歷的計(jì)算,我們特別定義了一個(gè)ChinaLunarCalendar對(duì)象,該對(duì)象可以方便將公歷轉(zhuǎn)換為農(nóng)歷,例如下面的例子:

    var c=new ChinaLunarCalendar();
    c.setTime(new Date(2005,5,6));
    out(c.getTianGan()+":"+c.getDescOfTianGan());
    out(c.getDiZhi()+":"+c.getDescOfDiZhi());
    out(c.getShengXiao()+":"+c.getDescOfShengXiao());
    out(c.getYear()+":"+c.getDescOfYear());
    out(c.getMonth()+":"+c.getDescOfMonth());
    out(c.getDate()+":"+c.getDescOfDate());
    out(c.getDay()+":"+c.getDescOfDay());
    out(c.getHours()+":"+c.getDescOfHours());
    function out(str){
        document.write(str+"
");
    }

輸出結(jié)果為:

1:乙
9:酉
9:雞
2005:乙酉年
4:四月
30:卅
1:星期一
1:子時(shí)
10,實(shí)現(xiàn)了對(duì)I/O的支持,I/O是重量級(jí)編程語言中都支持的輸入/輸出的各種操作,例如讀取系統(tǒng)中的文件,或者將內(nèi)容輸入到本地文件系統(tǒng)中,當(dāng)然I/O的概念的外延很廣,例如可以從某個(gè)URL來獲取URL所代表的資源的內(nèi)容,那么這就代表了一個(gè)輸入。
  那么I/O體現(xiàn)到Web界面之中,又該如何解釋呢?我們知道在HTML之中,有文本輸入空間text input和textarea,這個(gè)可以理解為輸入設(shè)備,而等則可以看做是輸出設(shè)備,當(dāng)然了對(duì)于text input和textarea而言,它們也可以被看做是輸出設(shè)備,我們看一個(gè)JsJava中的一個(gè)實(shí)現(xiàn):

    window.onload=function(){
        var outputDevice=new HTMLTextDevice("info");
        var append=true;
        var outputStream=new HTMLTextOutputStream(new OutputStream(outputDevice),append);
        outputStream.println("This is a text output stream!");
        outputStream.println("Is append:"+append);
    }

  另外我們?yōu)镴S添加了一個(gè)類似系統(tǒng)命令行窗口的JS控制臺(tái),使用方式如下:

    Console.open();
    System.out.println("This is very good!");
    System.out.println("Now ok!");
    function getNowTime(){
        System.out.println("start method");
        for(var i=0;i
  顯示結(jié)果為:



11,實(shí)現(xiàn)了對(duì)blog中rss內(nèi)容的解析,并將解析后的結(jié)果生成為一系列的JsJava對(duì)象,操作起來很方便,如下例子所示:
  

    var xmlStr='eye_of_back的專欄 - IT技術(shù)經(jīng)驗(yàn)交流中心http://blog.csdn.net/eye_of_back/category/245118.aspxaf.Text Version 1.0.1.1http://counter.csdn.net/pv.aspx?id=72回眸IT技術(shù)經(jīng)驗(yàn)交流中心簡(jiǎn)介...(rss xml內(nèi)容較多省略)';
    var reader=new BlogRssReader();
    var blogRss=reader.readRss(xmlStr);
    var channel=blogRss.getRssChannel();
    document.write(channel.getImage()+"
");
    var items=channel.getItems();//獲取該頻道所有的文章
    for(var i=0;i
顯示結(jié)果為:
  {title=undefined,link=undefined,url=http://counter.csdn.net/pv.aspx?id=72}
{id=http://blog.csdn.net/eye_of_back/archive/2007/02/28/1517453.aspx,creator=回眸,title=IT技術(shù)經(jīng)驗(yàn)交流中心簡(jiǎn)介,link=http://blog.csdn.net/eye_of_back/archive/2007/02/28/1517453.aspx,pubDate=Wed, 28 Feb 2007 20:00:00 GMT,comments={id=http://blog.csdn.net/eye_of_back/comments/1517453.aspx,itemId=undefined,commentRss=undefined}}
{id=http://blog.csdn.net/eye_of_back/archive/2007/02/25/1514302.aspx,creator=回眸,title=面對(duì)未來我們更需要思考,link=http://blog.csdn.net/eye_of_back/archive/2007/02/25/1514302.aspx,pubDate=Sun, 25 Feb 2007 21:39:00 GMT,comments={id=http://blog.csdn.net/eye_of_back/comments/1514302.aspx,itemId=undefined,commentRss=undefined}}
{id=http://blog.csdn.net/eye_of_back/archive/2007/02/09/1506668.aspx,creator=回眸,title=介紹目前中心關(guān)注的群,link=http://blog.csdn.net/eye_of_back/archive/2007/02/09/1506668.aspx,pubDate=Fri, 09 Feb 2007 22:24:00 GMT,comments={id=http://blog.csdn.net/eye_of_back/comments/1506668.aspx,itemId=undefined,commentRss=undefined}}
{id=http://blog.csdn.net/eye_of_back/archive/2007/02/09/1506666.aspx,creator=回眸,title=中心知識(shí)庫建成!,link=http://blog.csdn.net/eye_of_back/archive/2007/02/09/1506666.aspx,pubDate=Fri, 09 Feb 2007 22:21:00 GMT,comments={id=http://blog.csdn.net/eye_of_back/comments/1506666.aspx,itemId=undefined,commentRss=undefined}}
{id=http://blog.csdn.net/eye_of_back/archive/2006/10/10/1328096.aspx,creator=回眸,title=面向大學(xué)生IT技術(shù)培訓(xùn),link=http://blog.csdn.net/eye_of_back/archive/2006/10/10/1328096.aspx,pubDate=Tue, 10 Oct 2006 07:44:00 GMT,comments={id=http://blog.csdn.net/eye_of_back/comments/1328096.aspx,itemId=undefined,commentRss=undefined}}
{id=http://blog.csdn.net/eye_of_back/archive/2006/10/09/1327718.aspx,creator=回眸,title=歡迎大家訪問IT技術(shù)經(jīng)驗(yàn)交流中心,link=http://blog.csdn.net/eye_of_back/archive/2006/10/09/1327718.aspx,pubDate=Mon, 09 Oct 2006 21:11:00 GMT,comments={id=http://blog.csdn.net/eye_of_back/comments/1327718.aspx,itemId=undefined,commentRss=undefined}}
12,實(shí)現(xiàn)了對(duì)頁面打印的支持,當(dāng)然了調(diào)用的window.print就可以實(shí)現(xiàn)頁面整體打印,但是在實(shí)際應(yīng)用中,我們用的更多的則是對(duì)頁面中某個(gè)部分進(jìn)行打印,例如只想打印文章正文內(nèi)容,對(duì)于上面的邊框和下面的一些按鈕就不需要,那如何實(shí)現(xiàn)局部的打印呢?
  當(dāng)然通常的做法有兩種,一種是打印前將不需要的頁面部分隱藏,打印完成后在放開,這個(gè)只要定義document的onbeforeprint和onafterprint事件即可,另外一種方式,就是將需要打印的內(nèi)容拷貝到事先準(zhǔn)備好的一個(gè)隱藏的iframe之中,然后調(diào)用iframe的打印即可。
  那么JsJava之中如果方便的對(duì)打印提供支持呢?如下面的代碼:
    var print=new HtmlPrint();
    var printArea=new HtmlPrintArea("info");//打印區(qū)域的頁面id,例如可能是某個(gè)div的標(biāo)識(shí)
    print.setArea(printArea);
    print.print();
  具體使用和方案,可以訪問http://www.jsjava.com網(wǎng)站,參看其中的solutions。
13,實(shí)現(xiàn)了對(duì)光標(biāo)的操作,尤其是web程序員們都非??鄲赖墓鈽?biāo)定位等問題,JsJava2.0都做了很好的實(shí)現(xiàn),通過JsJava的API,你可以方便的獲得光標(biāo)在文本輸入域中的具體位置,可以方便的將光標(biāo)移動(dòng)到文本框的指定位置,也可以任意選擇指定范圍的文本,例如下面的例子:
  
    function getCursorPosition(textObj){
        alert(CursorUtils.getCursorPosition(textObj));
    }
    function setCursorPos(){
        CursorUtils.moveCursorTo(document.getElementById("t"),8);
    }
    function setSelectText(){
        CursorUtils.textSelect(document.getElementById("t"),8,12);
    }
   
   

14,實(shí)現(xiàn)了對(duì)系統(tǒng)剪貼板的操作,可以方便的將內(nèi)容放到到剪貼板以及從剪貼板中獲取內(nèi)容,例如下面的例子:
  
    function getData(){
        var data=ClipboardUtils.getTextFromClipboard();
        t.value=data;
    }
    function setData(){
        ClipboardUtils.copyTextToClipboard("This is a copy test!");
    }
   
   

   
   
15,實(shí)現(xiàn)了對(duì)顏色的相關(guān)操作,例如實(shí)現(xiàn)了RGB顏色以及灰度的控制,可以方便的在RGB和十六進(jìn)制顏色之間進(jìn)行轉(zhuǎn)換,也提供了相關(guān)方法,可以方便的得到一個(gè)隨機(jī)的顏色矩陣,這為顏色面板的制作提供了很好的數(shù)據(jù),例如:
  
    var hexColors=ColorUtils.toPaletteDatum(9,9);
    var str="";
    for(var i=0;i";
        for(var j=0;j  ";
        }
        str+="";
    }
    str+="";
    document.write(str);
   
  顯示結(jié)果為:

[attach]58362[/attach]


16,除上面之外,JsJava2.0還實(shí)現(xiàn)了許多其他的功能,具體可以參考http://jsjava.sourceforge.net/howtouse/
  JsJava發(fā)展到2.0版本,已經(jīng)完全可以作為一個(gè)JS基礎(chǔ)框架和應(yīng)用框架,支持界面端JS產(chǎn)品的開發(fā),也適合于web項(xiàng)目和產(chǎn)品的日常開發(fā)與應(yīng)用,JsJava的關(guān)注點(diǎn),是數(shù)據(jù)結(jié)構(gòu)的完整和類庫體系的完整,這與目前流程的portotype.js等是不太一樣,因此JsJava是更適合為應(yīng)用服務(wù)的...

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
.Net三層架構(gòu)
[收藏]跟我一起寫Makefile(共14篇)
PB PBD 反編譯
網(wǎng)絡(luò)mysql innodb性能優(yōu)化鏈接參考
Java Runtime.exec()注意事項(xiàng)
常用國(guó)內(nèi)博客的API Endpoint URL
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服