posts - 48, comments - 13, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2009年4月28日

          spket - http://www.spket.com/update

          subclipse - http://subclipse.tigris.org/update

          posted @ 2010-12-02 09:39 董銳 閱讀(299) | 評(píng)論 (0)編輯 收藏

          Tomcat啟動(dòng)時(shí)classloader加載順序
            Tomcat的class加載的優(yōu)先順序一覽  
            1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。  
            2.環(huán)境變量CLASSPATH中的jar和class文件。  
            3.$CATALINA_HOME/common/classes下的class文件。  
            4.$CATALINA_HOME/commons/endorsed下的jar文件。  
            5.$CATALINA_HOME/commons/i18n下的jar文件。  
            6.$CATALINA_HOME/common/lib   下的jar文件。  
            (JDBC驅(qū)動(dòng)之類的jar文件可以放在這里,這樣就可以避免在server.xml配置好數(shù)據(jù)源卻出現(xiàn)找不到JDBC   Driver的情況。)  
            7.$CATALINA_HOME/server/classes下的class文件。  
            8.$CATALINA_HOME/server/lib/下的jar文件。  
            9.$CATALINA_BASE/shared/classes   下的class文件。  
            10.$CATALINA_BASE/shared/lib下的jar文件。  
            11.各自具體的webapp   /WEB-INF/classes下的class文件。  
            12.各自具體的webapp   /WEB-INF/lib下的jar文件。

          posted @ 2010-11-03 11:31 董銳 閱讀(1017) | 評(píng)論 (0)編輯 收藏

          What this means is that leadership involves setting direction, communicating that vision passionately to those they work with, and helping the people they lead understand and commit to that vision. Managers, on the other hand, are responsible for ensuring that the vision is implemented efficiently and successfully.

          posted @ 2010-08-23 16:29 董銳 閱讀(453) | 評(píng)論 (0)編輯 收藏

          I know how to send by jquery post method $.post("test.php", { name: "John", time: "2pm" } );

          but what if my form field name is array

          <input type=text name="n1[]" id="n1[]" value='12345">   <input type=text name="n1[]" id="n1[]" value="14454">  

          how to send these 2 field value send to url by jquery post method?

           

          You can pass in an array as a value in the object:

          {name: 'John', 'nl[]': ['12345', '14454']}  

          (This is documented at ajax but also works for post.)

           

          var fields = $(":input").serializeArray();      $.post("test.php",fields);

          from:http://stackoverflow.com/questions/1656267/how-to-send-multi-field-value-by-jquery-post

          posted @ 2010-07-14 11:46 董銳 閱讀(743) | 評(píng)論 (0)編輯 收藏

          string.replace(new RegExp(oldString,"gm"),newString))

          posted @ 2010-07-14 11:20 董銳 閱讀(212) | 評(píng)論 (0)編輯 收藏

          在網(wǎng)上看到解決方案是把注冊(cè)表里(因?yàn)槭莣indows操作系統(tǒng))\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 下的NLS_lang 的NA值修改為SIMPLIFIED CHINESE_CHINA.ZHS16GBK;
           但是我在操作的時(shí)候,只把Oracle目錄下所有能找到的NLS_Lang值修改了,偏偏沒(méi)有修改Oracle目錄所對(duì)應(yīng)的NLS_Lang值,導(dǎo)致一直測(cè)試不通過(guò),始終報(bào)錯(cuò),最后終于發(fā)現(xiàn)原來(lái)Oracle目錄本身對(duì)應(yīng)的NLS_lang值沒(méi)有修改,修改過(guò)后,測(cè)試通過(guò),成功!

          posted @ 2010-01-14 14:45 董銳 閱讀(13503) | 評(píng)論 (2)編輯 收藏

          If you got this message: "Warning: Cannot modify header information - headers already sent by ...."
          如果在執(zhí)行php程序時(shí)看到這條警告:"Warning: Cannot modify header information - headers already sent by ...."

          Few notes based on the following user posts:
          有以下幾種解決方法:

          1. Blank lines (空白行):
          Make sure no blank line after <?php ... ?> of the calling php script.
          檢查有<?php ... ?> 后面沒(méi)有空白行,特別是include或者require的文件。不少問(wèn)題是這些空白行導(dǎo)致的。

           

           

          2. Use exit statement (用exit來(lái)解決):
          Use exit after header statement seems to help some people
          在header后加上exit();
          header ("Location: xxx");
          exit();

           

          3. PHP has this annoying problem, if your HTML goes before any PHP code or any header modification before redirecting to certain page, it'll said "Warning: Cannot modify header information - headers already sent by ...." Basically anytime you output to browser, the header is set and cannot be modified.   So two ways to get around the problem:

          3a. Use Javascript (用Javascript來(lái)解決):
          <? echo "<script> self.location(\"file.php\");</script>"; ?>
          Since it's a script, it won't modify the header until execution of Javascript.
          可以用Javascript來(lái)代替header。但是上面的這段代碼我沒(méi)有執(zhí)行成功... 另外需要注意,采用這種方法需要瀏覽器支持Javascript.

          3b. Use output buffering (用輸出緩存來(lái)解決):
          <?php ob_start(); ?>
          ... HTML codes ...
          <?php
          ... PHP codes ...
          header ("Location: ....");
          ob_end_flush();
          ?>
          This will save the output buffer on server and not output to browser yet, which means you can modify the header all you want until the ob_end_flush() statement.   This method is cleaner than the Javascript since Javascript method assumes the browser has Javascript turn on.   However, there are overhead to store output buffer on server before output, but with modern hardware I would imagine it won't be that big of deal.   Javascript solution would be better if you know for sure your user has Javascript turn on on their browser.

          就像上面的代碼那樣,這種方法在生成頁(yè)面的時(shí)候緩存,這樣就允許在輸出head之后再輸出header了。


          ————————————————————————————————————————————
          結(jié)果最后還是這個(gè)問(wèn)題:
          原來(lái)是php.ini里面的配置出了問(wèn)題,output_buffering參數(shù)默認(rèn)為off的,現(xiàn)在將它設(shè)為”on”就OK了。

          posted @ 2009-12-02 10:02 董銳 閱讀(7403) | 評(píng)論 (1)編輯 收藏

          1、要安裝java jdk,安裝tomcat
          2、安裝好apache,php
          3、下載php-java-bridge_5.5.4_documentation.zip
          4、解壓縮php-java-bridge_5.5.4_documentation.zip
          5、將解壓縮后根目錄下JavaBridge.war拷貝到tomcat服務(wù)器的webapp目錄下
          6、啟動(dòng)tomcat服務(wù)器
          7、在php中使用java只需增加下面一行語(yǔ)句:
          <php? require_once(http://127.0.0.1:8080/JavaBridge/java/Java.inc); ?>

          可以了:
          <php?
              $date=new Java('java.util.Date');
          echo $date->getDate();
          ?>
          運(yùn)行通過(guò),OK!

          posted @ 2009-10-20 15:03 董銳 閱讀(590) | 評(píng)論 (2)編輯 收藏

          80端口被占用的解決方法:

          cmd命令窗口
          輸入netstat -abn ->c:/port80.txt
          然后到c盤(pán)port80.txt文件中找到占用80端口的程序pid,記下pid。打開(kāi)任務(wù)管理器,點(diǎn)擊“查看”/選擇列,勾選“PID(進(jìn)程標(biāo)識(shí)符)”,然后單擊“進(jìn)程”標(biāo)簽,找到80端口對(duì)應(yīng)的pid,就可以看到是那個(gè)程序占用的了,更改這個(gè)程序的port,再重啟這個(gè)程序,使更改生效。

          不管是Apache還是IIS都無(wú)法使用已被占用的端口。即每個(gè)端口只允許使用一次(一般指被一個(gè)服務(wù)程序所使用)。
          如果系統(tǒng)內(nèi)已安裝IIS并使用了80端口(Http默認(rèn)端口),再安裝Apache,只要另選一個(gè)端口并不與其他應(yīng)用沖突即可運(yùn)行。例如可以將Apache監(jiān)聽(tīng)的端口改為81或其他任何一個(gè)未被使用的端口。
          Apache修改監(jiān)聽(tīng)端口的方法為:
          打開(kāi) httpd.conf
          修改 Listen 80 為 Listen 81
          Apache可以同時(shí)監(jiān)聽(tīng)一個(gè)以上的端口實(shí)現(xiàn)多個(gè)Http服務(wù)
          只要添一行 如 Listen 82 即可

          posted @ 2009-09-24 14:18 董銳 閱讀(1223) | 評(píng)論 (0)編輯 收藏

          "^\d+$"  //非負(fù)整數(shù)(正整數(shù) + 0)
          "^[0-9]*[1-9][0-9]*$"  //正整數(shù)
          "^((-\d+)|(0+))$"  //非正整數(shù)(負(fù)整數(shù) + 0)
          "^-[0-9]*[1-9][0-9]*$"  //負(fù)整數(shù)
          "^-?\d+$"    //整數(shù)
          "^\d+(\.\d+)?$"  //非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
          "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點(diǎn)數(shù)
          "^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
          "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負(fù)浮點(diǎn)數(shù)
          "^(-?\d+)(\.\d+)?$"  //浮點(diǎn)數(shù)
          "^[A-Za-z]+$"  //由26個(gè)英文字母組成的字符串
          "^[A-Z]+$"  //由26個(gè)英文字母的大寫(xiě)組成的字符串
          "^[a-z]+$"  //由26個(gè)英文字母的小寫(xiě)組成的字符串
          "^[A-Za-z0-9]+$"  //由數(shù)字和26個(gè)英文字母組成的字符串
          "^\w+$"  //由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串 //開(kāi)源代碼OSPhP.COm.CN
          "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址
          "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url
          /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日
          /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年
          "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"   //Emil
          /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/     //電話號(hào)碼
          "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$"   //IP地址
          //開(kāi)源OSPhP.COM.CN

          posted @ 2009-09-23 17:58 董銳 閱讀(220) | 評(píng)論 (0)編輯 收藏

          &:&amp;
          ": &quot;
          <url address="http://data.ent.sina.com.cn/star/starlist.php?&amp;initial=A&amp;tpl=0&amp;dpc=1"></url>
          <img tagText="p class=&quot;bigphoto&quot;" toExcelName="照片"></img>

          posted @ 2009-09-18 13:40 董銳 閱讀(149) | 評(píng)論 (0)編輯 收藏

          javascript從assiic轉(zhuǎn)字符:
          for(var i=65;i<91;i++)
             document.write("<a href='starlist.php?"+newsearch+"&initial="+String.fromCharCode(i)+"&tpl=0&dpc=1' target='_self'>"+String.fromCharCode(i)+"</a> ");

          posted @ 2009-09-15 10:05 董銳 閱讀(233) | 評(píng)論 (0)編輯 收藏

          DOM 是用與平臺(tái)和語(yǔ)言無(wú)關(guān)的方式表示 XML 文檔的官方 W3C 標(biāo)準(zhǔn)。DOM 是以層次結(jié)構(gòu)組織的節(jié)點(diǎn)或信息片斷的集合。這個(gè)層次結(jié)構(gòu)允許開(kāi)發(fā)人員在樹(shù)中尋找特定信息。分析該結(jié)構(gòu)通常需要加載整個(gè)文檔和構(gòu)造層次結(jié)構(gòu),然后才能做任何工作。由于它是基于信息層次的,因而 DOM 被認(rèn)為是基于樹(shù)或基于對(duì)象的。DOM 以及廣義的基于樹(shù)的處理具有幾個(gè)優(yōu)點(diǎn)。首先,由于樹(shù)在內(nèi)存中是持久的,因此可以修改它以便應(yīng)用程序能對(duì)數(shù)據(jù)和結(jié)構(gòu)作出更改。它還可以在任何時(shí)候在樹(shù)中上下導(dǎo)航,而不是像 SAX 那樣是一次性的處理。DOM 使用起來(lái)也要簡(jiǎn)單得多。

            另一方面,對(duì)于特別大的文檔,解析和加載整個(gè)文檔可能很慢且很耗資源,因此使用其他手段來(lái)處理這樣的數(shù)據(jù)會(huì)更好。這些基于事件的模型,比如 SAX。
           
          這種處理的優(yōu)點(diǎn)非常類似于流媒體的優(yōu)點(diǎn)。分析能夠立即開(kāi)始,而不是等待所有的數(shù)據(jù)被處理。而且,由于應(yīng)用程序只是在讀取數(shù)據(jù)時(shí)檢查數(shù)據(jù),因此不需要將數(shù)據(jù)存儲(chǔ)在內(nèi)存中。這對(duì)于大型文檔來(lái)說(shuō)是個(gè)巨大的優(yōu)點(diǎn)。事實(shí)上,應(yīng)用程序甚至不必解析整個(gè)文檔;它可以在某個(gè)條件得到滿足時(shí)停止解析。一般來(lái)說(shuō),SAX 還比它的替代者 DOM 快許多。


          JDOM 的目的是成為 Java 特定文檔模型,它簡(jiǎn)化與 XML 的交互并且比使用 DOM 實(shí)現(xiàn)更快。由于是第一個(gè) Java 特定模型,JDOM 一直得到大力推廣和促進(jìn)。正在考慮通過(guò)“Java 規(guī)范請(qǐng)求 JSR-102”將它最終用作“Java 標(biāo)準(zhǔn)擴(kuò)展”。從 2000 年初就已經(jīng)開(kāi)始了 JDOM 開(kāi)發(fā)。

            JDOM 與 DOM 主要有兩方面不同。首先,JDOM 僅使用具體類而不使用接口。這在某些方面簡(jiǎn)化了 API,但是也限制了靈活性。第二,API 大量使用了 Collections 類,簡(jiǎn)化了那些已經(jīng)熟悉這些類的 Java 開(kāi)發(fā)者的使用。

            JDOM 文檔聲明其目的是“使用 20%(或更少)的精力解決 80%(或更多)Java/XML 問(wèn)題”(根據(jù)學(xué)習(xí)曲線假定為 20%)。JDOM 對(duì)于大多數(shù) Java/XML 應(yīng)用程序來(lái)說(shuō)當(dāng)然是有用的,并且大多數(shù)開(kāi)發(fā)者發(fā)現(xiàn) API 比 DOM 容易理解得多。JDOM 還包括對(duì)程序行為的相當(dāng)廣泛檢查以防止用戶做任何在 XML 中無(wú)意義的事。然而,它仍需要您充分理解 XML 以便做一些超出基本的工作(或者甚至理解某些情況下的錯(cuò)誤)。這也許是比學(xué)習(xí) DOM 或 JDOM 接口都更有意義的工作。

            JDOM 自身不包含解析器。它通常使用 SAX2 解析器來(lái)解析和驗(yàn)證輸入 XML 文檔(盡管它還可以將以前構(gòu)造的 DOM 表示作為輸入)。它包含一些轉(zhuǎn)換器以將 JDOM 表示輸出成 SAX2 事件流、DOM 模型或 XML 文本文檔。JDOM 是在 Apache 許可證變體下發(fā)布的開(kāi)放源碼。 
                 http://www.jdom.org/


          最后是 DOM4J http://dom4j.sourceforge.net/

            雖然 DOM4J 代表了完全獨(dú)立的開(kāi)發(fā)結(jié)果,但最初,它是 JDOM 的一種智能分支。它合并了許多超出基本 XML 文檔表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文檔或流化文檔的基于事件的處理。它還提供了構(gòu)建文檔表示的選項(xiàng),它通過(guò) DOM4J API 和標(biāo)準(zhǔn) DOM 接口具有并行訪問(wèn)功能。從 2000 下半年開(kāi)始,它就一直處于開(kāi)發(fā)之中。

            為支持所有這些功能,DOM4J 使用接口和抽象基本類方法。DOM4J 大量使用了 API 中的 Collections 類,但是在許多情況下,它還提供一些替代方法以允許更好的性能或更直接的編碼方法。直接好處是,雖然 DOM4J 付出了更復(fù)雜的 API 的代價(jià),但是它提供了比 JDOM 大得多的靈活性。

            在添加靈活性、XPath 集成和對(duì)大文檔處理的目標(biāo)時(shí),DOM4J 的目標(biāo)與 JDOM 是一樣的:針對(duì) Java 開(kāi)發(fā)者的易用性和直觀操作。它還致力于成為比 JDOM 更完整的解決方案,實(shí)現(xiàn)在本質(zhì)上處理所有 Java/XML 問(wèn)題的目標(biāo)。在完成該目標(biāo)時(shí),它比 JDOM 更少?gòu)?qiáng)調(diào)防止不正確的應(yīng)用程序行為。

            DOM4J 是一個(gè)非常非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用使用的特點(diǎn),同時(shí)它也是一個(gè)開(kāi)放源代碼的軟件。如今你可以看到越來(lái)越多的 Java 軟件都在使用 DOM4J 來(lái)讀寫(xiě) XML,特別值得一提的是連 Sun 的 JAXM 也在用 DOM4J。

          package com.test;

            import java.io.*;
            import java.util.*;
            import org.dom4j.*;
            import org.dom4j.io.*;

            public class MyXMLReader {

            public static void main(String arge[]) {
            long lasting = System.currentTimeMillis();
            try {
             File f = new File("data_10k.xml");
             SAXReader reader = new SAXReader();
             Document doc = reader.read(f);
             Element root = doc.getRootElement();
             Element foo;
             for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
              foo = (Element) i.next();
              System.out.print("車牌號(hào)碼:" + foo.elementText("NO"));
              System.out.println(" 車主地址:" + foo.elementText("ADDR"));
             }
            } catch (Exception e) {
             e.printStackTrace();
            }
            System.out.println("運(yùn)行時(shí)間:" + (System.currentTimeMillis() - lasting) + " 毫秒");
            }
            }

          posted @ 2009-09-08 13:38 董銳 閱讀(305) | 評(píng)論 (0)編輯 收藏

          配置tomcat的CATALINA_PATH,記得路徑后面不要帶上'\'或‘;’

          posted @ 2009-08-08 22:13 董銳 閱讀(162) | 評(píng)論 (0)編輯 收藏

              

          剛開(kāi)始我將log4j.properties文件放在WEB-INF/目錄下,怎么都不能產(chǎn)生日志到文件中,后來(lái)才發(fā)現(xiàn),原來(lái)要放到WEB-INF/classes目錄下才行。奇怪tapestry5為什么一定要這樣安排,不知有沒(méi)有什么地方是可以配置這個(gè)文件路徑的。

          posted @ 2009-04-28 06:26 董銳 閱讀(220) | 評(píng)論 (0)編輯 收藏

              
           <target name="build" description="Compile main source tree java files into class files, generate jar files">
             <javac destdir="${build.dir}"  listfiles="true"
              debug="true" deprecation="false" optimize="false" failonerror="true">
              <src path="${src.dir}"/>
              <classpath refid="master-classpath"/>
             </javac>
           </target>

          最近一個(gè)新項(xiàng)目運(yùn)行這個(gè)target總是有問(wèn)題,在目標(biāo)路徑?jīng)]有類文件產(chǎn)生。后來(lái)發(fā)現(xiàn)每次要將該工程的bulidpath做點(diǎn)小變化,如remove哪個(gè)路勁再添加回去,讓工程重新bulid一下,在運(yùn)行這個(gè)target就可以在目標(biāo)路徑產(chǎn)生類文件了,好奇怪,不知為什么,之前幾個(gè)項(xiàng)目都是直接運(yùn)行target就行了的。注:我用的是Eclipse開(kāi)發(fā)工具。

          posted @ 2009-04-28 06:20 董銳 閱讀(927) | 評(píng)論 (2)編輯 收藏

          主站蜘蛛池模板: 乐清市| 监利县| 沙洋县| 枝江市| 酉阳| 甘谷县| 万山特区| 托克托县| 内丘县| 嘉鱼县| 江永县| 黄平县| 台湾省| 南宫市| 泽州县| 北川| 宣武区| 新平| 鄂温| 宣恩县| 罗山县| 固阳县| 江达县| 孟津县| 响水县| 玛多县| 东阳市| 万全县| 玛沁县| 吉安县| 同德县| 石城县| 临高县| 高雄县| 阜新市| 昌邑市| 南部县| 保靖县| 荥经县| 南充市| 德庆县|