<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    【Java知識】

    JAVA技術知識
         摘要: 前面做了app微信支付的回調處理,現在需要做微信公眾號的支付,花了一天多時間,終于折騰出來了!鑒于坑爹的微信官方沒有提供Java版的demo,所以全靠自己按照同樣坑爹的文檔敲敲敲,所以記錄下來,以供自己及后來人參考,不足之處,還請指正。

    首先,我們貼出調用支付接口的H5頁面,當然,在這個頁面之前,還需要做很多其他的操作,我們一步一步的來。

    坑爹的官方文檔給了兩個不同的支付接口,在微信公眾平臺開發中文檔的“微信JS-SDK說明文檔”中,給出的支付方式是下面被屏蔽的那一部分,而在商戶平臺的“H5調起支付API”中,又給了一份不同的接口,即下面未屏蔽正常使用的接口。關于坑爹的微信提供了兩個不同的支付接口,網上搜索結果也是眾說紛紛,所以,只有自己試了。當然,為了簡單,我直接試了下面這一種,然后奇跡般的成功了。
      閱讀全文
    posted @ 2016-12-07 15:23 rogerfan 閱讀(1471) | 評論 (0)  編輯

    posted @ 2015-12-30 10:09 rogerfan 閱讀(527) | 評論 (0)  編輯

         摘要: 因為在jsf要用到jstl標簽,這里做有效的整理。在使用這些函數之前必須在JSP中引入標準函數的聲明

    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    下面是JSTL中自帶的方法列表以及其描述  閱讀全文
    posted @ 2015-12-19 13:48 rogerfan 閱讀(478) | 評論 (0)  編輯

         摘要: 開發的應用采用F5負載均衡交換機,F5將請求轉發給5臺hp unix服務器,每臺服務器有多個webserver實例,對外提供web服務和socket等接口服務。之初,曾有個小小的疑問為何不采用開源的 apache、Nginx軟件負載,F5設備動輒幾十萬,價格昂貴?自己一個比較幼稚的問題,后續明白:F5是操作于IOS網絡模型的傳輸 層,Nginx、apache是基于http反向代理方式,位于ISO模型的第七層應用層。直白些就是TCP UDP 和http協議的區別,Nginx不能為基于TCP協議的應用提供負載均衡。


    了解了二者之間的區別于應用場景,對Nginx產生濃厚的興趣,閱讀張宴的<實戰Nginx>(這個85年的小伙子年輕有為羨慕+妒忌),搞 明白了大致原理和配置,Ubuntu10.10,window下對Nginx+tomcat負載均衡做了配置嘗試,將全部請求轉發到tomcat,并未做 靜態,動態分開,圖片防盜鏈等配置。  閱讀全文
    posted @ 2015-03-01 11:18 rogerfan 閱讀(1519) | 評論 (0)  編輯

         摘要: 就目前形勢來看,Web App 正是眼下的一個趨勢和潮流,但是,對于Web App的設計可能大家有的不是很了解,下面就將整理好的網頁設計的技巧奉獻給大家  閱讀全文
    posted @ 2015-02-13 09:23 rogerfan 閱讀(1704) | 評論 (0)  編輯

         摘要: 一、常見的Java內存溢出有以下三種:



    1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出
    JVM在啟動的時候會自動設置JVM Heap的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)不可超過物理內存。

    可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。Heap的大小是Young Generation 和Tenured Generaion 之和。

    在JVM中如果98%的時間是用于GC,且可用的Heap size 不足2%的時候將拋出此異常信息。

    解決方法:手動設置JVM Heap(堆)的大小。



    2. java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出。
    PermGen space的全稱是Permanent Generation space,是指  閱讀全文
    posted @ 2014-05-16 17:12 rogerfan 閱讀(2546) | 評論 (0)  編輯

         摘要: 序言
    一直以來,報表都是很多項目中一個重要的、不可獲取的組成部分。然而其復雜性和專業性又使得程序員不能夠也沒時間自己設計屬于目前手頭正在構建的系統的報表模塊;即便設計來了又可能由于通用性等原因不能夠應用到下一個系統當中,這就導致了報表類庫/組件在市場上的火爆。典型的例子就是水晶報表,幾乎無處不在。還有一些專門處理中國式報表的組件也陸續出現在軟件市場上。然而遺憾的是,他們中的絕大多數都是要收費的--這也無可厚非,畢竟人都是要生存的。所以大多數預算不夠充裕的程序員都將目光轉向了開源軟件,而JasperReport就將是第一個進入他們視線中的佼佼者。
    然而代碼開源不代表我們就可以大大方方的拿來就用了,人家的文檔也是要收費的,所以市面上有關于JasperReport的文檔雖然也不少,但大多數都集中在簡單應用和介紹基本操作的基礎之上。對于復雜的報表設計并不能提供良好的幫助。本文將火力集中在相對復雜的報表設計(不包括圖片和超連接等對辦公系統或過程沒有太大用途的頁面元素),交叉表的生成等高級報表設計方案。對于那些基本的操作則留給讀者自行體會,相信可以為各位解決一些實際問題。
      閱讀全文
    posted @ 2013-08-29 10:50 rogerfan 閱讀(2309) | 評論 (0)  編輯

         摘要: 1.1 簡介
    JasperReport是報表的引擎部分,界面設計是用iReport。為什么選擇這兩個軟件呢?因為這兩個軟件都是開源的,即免費的(雖然某些文檔收費,但是磨滅不了我們使用它的理由)。

    JasperReport是一個報表制作程序,用戶按照它制定的規則編寫一個XML文件,然后得到用戶需要輸出的格式文件。它支持輸出的文件格式包括PDF,HTML,XML,XLS,CSV等等。

    用JasperReport做報表,可以分為兩種方式:

    1、 直接利用程序定義一個報表

    2、 寫一個xml文件來描述這個報表,通常需要借助于iReport

    JasperReport做報表時用的都是底層的東西,如線條、靜態文本等,底層的好處就是強大、容易控制報表,但缺點就是編寫很麻煩。慶幸的是,我們有iReport這個軟件,這個軟件完全是彌補JasperReport的不足,將底層編寫推向可視化,大大的方便了我們。

      閱讀全文
    posted @ 2013-08-29 10:46 rogerfan 閱讀(4107) | 評論 (0)  編輯

         摘要: 有時候當我們注冊完的時候系統會提示有一封郵件發送到了你的郵箱,如何做呢?
    就要用到spring+velocity+javamail這3個玩意,其實只用了spring,因為其他2個都被spring集成了。
    先看代碼   閱讀全文
    posted @ 2013-08-29 10:19 rogerfan 閱讀(3048) | 評論 (3)  編輯

    posted @ 2013-07-15 10:50 rogerfan 閱讀(3312) | 評論 (0)  編輯

         摘要: SOAP原意為Simple Object Access Protocol(簡單對象訪問協議),是一個用于分布式環境的、輕量級的、基于XML進行信息交換的通信協議(SOAP is an XML based protocol used to exchange information throughout a distributed environment)。

    以下是w3c網站上的定義:

    SOAP Version 1.2 (SOAP) is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. It uses XML technologies to define an extensible messaging framework providing a message construct that can be exchanged over a variety of underlyi  閱讀全文
    posted @ 2011-09-24 10:22 rogerfan 閱讀(1624) | 評論 (0)  編輯

         摘要: 在傳統的RPC編程接口逐漸淡出人們視線的同時,新的、更便于使用且附加了更多特性的RPC編程接口也不斷涌現,CORBA作為分布式對象計算技術的典范,在很長一段時間內極大地吸引了大家的注意,但是由于CORBA規范試圖覆蓋過多的內容,使得CORBA顯得過于復雜,也極大地限制了CORBA的應用范圍,本系列將向大家介紹幾種輕量級的,更適于在Java開發中使用的RPC編程接口:RMI、XML-RPC、SOAP。

    RMI(Remote Method Invocation)
    與本系列將介紹的其它兩種RPC編程接口不同,RMI(Remote Method Invocation)顯得有些老舊,它是在Java-IDL加入J2SE之前被引入的。RMI開發流程與CORBA如出一轍(從出現的時間上無法確定RMI是否是按照CORBA規范定制的),因此,其開發過程相對比較煩瑣,但是由于RMI是EJB的基礎,因此,它在Java開發中具有十分重要的地位。

    以下是創建遠程方法調用的5個步驟:

    1. 定義一個擴展了Remote接口的接口,該接口中的每一個方法必  閱讀全文
    posted @ 2011-09-24 10:21 rogerfan 閱讀(4462) | 評論 (0)  編輯

         摘要: XML-RPC是一種簡單的,輕量級的通過HTTP協議進行RPC通信的規范。本文以Apache XML-RPC 3.0為基礎,對XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性進行了討論和分析。

      閱讀全文
    posted @ 2011-09-24 10:16 rogerfan 閱讀(3185) | 評論 (0)  編輯

         摘要: 現在流行安卓系統,鑒于囊中羞澀,買不起手機,所以我就在網上找了個安卓模擬器,特整理了一下,發給大家,對安卓系統感興趣的朋友不妨拿來解解饞吧。
    方法如下:
    一.安裝java JDK 1.6,并配置以下三個環境變量:
    下載地址
    1.添加
    變量名:JAVA_HOME
    變量值:C:\Program Files\Java\jdk1.6.0_10
      閱讀全文
    posted @ 2011-08-25 14:41 rogerfan 閱讀(3557) | 評論 (2)  編輯

         摘要: Tomcat內存設置方法
    windows中大家都知道,JAVA程序啟動時都會JVM都會分配一個初始內存和最大內存給這個應用程序。這個初始內存和最大內存在一定程度都會影響程序的性能。比如說在應用程序用到最大內存的時候,JVM是要先去做垃圾回收的動作,釋放被占用的一些內存。
    所以想調整Tomcat的啟動時初始內存和最大內存就需要向JVM聲明,一般的JAVA程序在運行都可以通過中-Xms -Xmx來調整應用程序的初始內存和最大內存:
    如:java -Xms64m -Xmx128m a.jar.
    tomcat的啟動程序是包裝過的,不能直接使用java -X..... tomcat.*來改變內存的設置。在Tomcat在改變這個設置
    有兩種方法:
    1. 適合用%tomcat_home%\bin中的startup.bat腳本啟動,需要在環境變量中加上CATALINA_OPTS這個屬性 。
    如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
    ms是最小的,mx是  閱讀全文
    posted @ 2011-01-11 16:57 rogerfan 閱讀(744) | 評論 (0)  編輯

         摘要: 首 先在代碼與生產庫間建立一個Connection,將讀取到的數據放在ResultSet對象,然后再與開發庫建立一個Connection。從 ResultSet取出數據后通過TestConnection插入到開發庫,以此來實現Copy。代碼寫完后運行程序,速度太慢了,一秒鐘只能Copy 一千條數據,生產庫上有上億條數據,按照這個速度同步完要到猴年馬月呀,用PreparedStatement批處理速度也沒有提交多少。我想能不能用多 線程處理,多個人干活總比一個人干活速度要快。
    假設生產庫有1萬條數據,我開5個線程,每個線程分2000條數據,同時向開發庫里插數據,Oracle支持高并發這樣的話速度至少會提高好多倍,按照這 個思路重新進行了編碼,批處理設置為1萬條一提交,統計插入數量的變量使用 java.util.concurrent.atomic.AtomicLong,程序一運行,傳輸速度飛快CPU利用率在70%~90%,現在一秒鐘可 以拷貝50萬條記錄,沒過幾分鐘上億條數據一條不落地全部Copy到目標庫。  閱讀全文
    posted @ 2010-11-26 14:11 rogerfan 閱讀(982) | 評論 (0)  編輯

         摘要: 漢字轉成拼音如果自己實現起來有點麻煩,主要是怕有些漢字轉不了,所以就準備使用一個開源的工具Pinyin4j.
    pinyin4j是一個支持將中文轉換到拼音的Java開源類庫,pinyin4j能夠根據中文字符獲取其對應的拼音,而且拼音的格式可以定制。pinyin4j的主頁:http://pinyin4j.sourceforge.net/
    1. 支持簡體中文和繁體中文字符;
    2. 支持轉換到漢語拼音,通用拼音, 威妥瑪拼音(威瑪拼法), 注音符號第二式, 耶魯拼法和國語羅馬字;
    3. 支持多音字,即可以獲取一個中文字符的多種發音;
    4. 支持多種字符串輸出格式,比如支持Unicode格式的字符ü和聲調符號(陰平 "ˉ",陽平"ˊ",上聲"ˇ",去聲"ˋ")的輸出。

    為了方便大家使用,我將源文件和jar包一并放上來了,歡迎大家下載。
    廢話少說,下面是我建立的一個通用類,有什么不足的地方希望大家指正。
      閱讀全文
    posted @ 2010-10-25 10:40 rogerfan 閱讀(1588) | 評論 (0)  編輯

         摘要: 在java.lang包中有String.split()方法,返回是一個數組我在應用中用到一些,給大家總結一下,僅供大家參考:

    1、如果用“.”作為分隔的話,必須是如下寫法:String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");

    2、如果用“|”作為分隔的話,必須是如下寫法:String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");“.”和“|”都是轉義字符,必須得加"\\";

    3、如果在一個字符串中有多個分隔符,可以用“|”作為連字符,比如:“acount=? and uu =? or n=?”,把三個都分隔出來,可以用String.split("and|or");使用String.split方法分隔字符串時,分隔符如果用到一些特殊字符,可能會得不到我們預期的結果。   閱讀全文
    posted @ 2010-08-05 16:43 rogerfan 閱讀(4570) | 評論 (0)  編輯

         摘要: 1.1. 設置結果頁面路徑
    默認所有的結果頁面都存儲在WEB-INF/content下,你可以通過設置struts.convention.result.path這個屬性的值來改變到其他路徑。如:

    Xml代碼:






    則將路徑配置到了WEB-INF/page 下。

    1.2. 設置Convention搜索包
    默認包路徑包含action,actions,struts,struts2的所有包都會被struts作為含有Action類的路徑來搜索。你可以通過設置struts.convention.package.locators屬性來修改這個配置。如:


      閱讀全文
    posted @ 2010-06-21 10:16 rogerfan 閱讀(654) | 評論 (0)  編輯

    posted @ 2010-06-21 10:15 rogerfan 閱讀(398) | 評論 (0)  編輯

    posted @ 2010-06-21 10:13 rogerfan 閱讀(325) | 評論 (0)  編輯

    posted @ 2010-06-21 10:11 rogerfan 閱讀(285) | 評論 (0)  編輯

         摘要: HashMap 和 HashSet 是 Java Collection Framework 的兩個重要成員,其中 HashMap 是 Map 接口的常用實現類,HashSet 是 Set 接口的常用實現類。雖然 HashMap 和 HashSet 實現的接口規范不同,但它們底層的 Hash 存儲機制完全一樣,甚至 HashSet 本身就采用 HashMap 來實現的。
    通過 HashMap、HashSet 的源代碼分析其 Hash 存儲機制

    集合和引用

    就像引用類型的數組一樣,當我們把 Java 對象放入數組之時,并不是真正的把 Java 對象放入數組中,只是把對象的引用放入數組中,每個數組元素都是一個引用變量。


    實際上,HashSet 和 HashMap 之間有很多相似之處,對于 HashSet 而言,系統采用 Hash 算法決定集合元素的存儲位置,這樣可以保證能快速存、取集合元素;對于 HashMap 而言,系統 key-value 當成一個整體進行處理,系統總是根據 Hash 算法來計算 key-val  閱讀全文
    posted @ 2010-03-23 09:37 rogerfan 閱讀(1032) | 評論 (0)  編輯

         摘要: java 集合框架詳解
    經常會看到程序中使用了記錄集,常用的有Collection、HashMap、HashSet、ArrayList,因為分不清楚它們之間的關系,所以在使用時經常會混淆,以至于不知道從何下手。在這兒作了一個小例子,希望有助于幫大家理順思路。
    首先看一下它們的關系:
    Collection
    --List:-----------------------以特定次序存儲元素。所以取出來的順序可能和放入順序不同。
    ---ArrayList
    ---LinkedList
    ---Vector
    --Set :----------------------- 不含有重復的元素
    --- HashSet
    --- TreeSet
    Map
    ---HashMap
    ---HashTable
    ---TreeMap   閱讀全文
    posted @ 2010-03-22 15:47 rogerfan 閱讀(1842) | 評論 (0)  編輯

         摘要: 論壇上看了不少Spring Security的相關文章。這些文章基本上都還是基于Acegi-1.X的配置方式,而主要的配置示例也來自于SpringSide的貢獻。

    眾所周知,Spring Security針對Acegi的一個重大的改進就在于其配置方式大大簡化了。所以如果配置還是基于Acegi-1.X這樣比較繁瑣的配置方式的話,那么我們還不如直接使用Acegi而不要去升級了。所以在這里,我將結合一個示例,重點討論一下Spring Security 2是如何進行配置簡化的。

    搭建基礎環境

    首先我們為示例搭建基本的開發環境,環境的搭建方式,可以參考我的另外一篇文章:http://www.javaeye.com/wiki/struts2/1321-struts2-development-environment-to-build   閱讀全文
    posted @ 2009-12-18 16:07 rogerfan 閱讀(850) | 評論 (0)  編輯

         摘要: 首先,設置mysql的環境變量(在path中添加%MYSQL_HOME%\bin),重啟電腦。
    完整代碼:
    /**
    * @param args
    */
    public static void main(String[] args) {
    /*
    * 備份和導入是一個互逆的過程。
    * 備份:程序調用mysql的備份命令,讀出控制臺輸入流信息,寫入.sql文件;
    * 導入:程序調用mysql的導入命令,把從.sql文件中讀出的信息寫入控制臺的輸出流
    * 注意:此時定向符">"和"<"是不能用的
    */
    backup();
    load();
    }
      閱讀全文
    posted @ 2009-08-18 17:38 rogerfan 閱讀(566) | 評論 (0)  編輯

         摘要: 用java實現打印,java.awt中提供了一些打印的API,要實現打印,首先要獲得打印對象,然后繼承Printable實現接口方法print,以便打印機進行打印,最后用用Graphics2D直接輸出直接輸出。
    下面代碼實現了簡單的打印功能:  閱讀全文
    posted @ 2009-08-18 09:59 rogerfan 閱讀(322) | 評論 (0)  編輯

         摘要: Java NIO非堵塞應用通常適用用在I/O讀寫等方面,我們知道,系統運行的性能瓶頸通常在I/O讀寫,包括對端口和文件的操作上,過去,在打開一個I/O通道后,read()將一直等待在端口一邊讀取字節內容,如果沒有內容進來,read()也是傻傻的等,這會影響我們程序繼續做其他事情,那么改進做法就是開設線程,讓線程去等待,但是這樣做也是相當耗費資源的。

    Java NIO非堵塞技術實際是采取Reactor模式,或者說是Observer模式為我們監察I/O端口,如果有內容進來,會自動通知我們,這樣,我們就不必開啟多個線程死等,從外界看,實現了流暢的I/O讀寫,不堵塞了。
      閱讀全文
    posted @ 2009-05-31 15:17 rogerfan 閱讀(685) | 評論 (0)  編輯

         摘要: //根據不同的難度產生隨機字母和數字
    for(int i=0; readomNumStart.length()<4; i++) {
    if(difficult == 1) {

    //產生隨機的0-9的數字
    a = String.valueOf((int)(Math.random() * 10)) ;
    }   閱讀全文
    posted @ 2009-05-14 11:40 rogerfan 閱讀(454) | 評論 (1)  編輯

         摘要: 歸納一些網上取JAVA路徑的方法:

    注明:如果從ANT啟動程序,this.getClass().getResource("")取出來的比較怪,直接用JAVA命令行調試就可成功。
     
    得到classpath和當前類的絕對路徑的一些方法

    獲得CLASSPATH之外路徑的方法:
    URL base = this.getClass().getResource(""); //先獲得本類的所在位置,如/home/popeye/testjava/build/classes/net/
    String path = new File(base.getFile(), "../../../"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name   閱讀全文
    posted @ 2009-05-14 11:39 rogerfan 閱讀(400) | 評論 (0)  編輯

         摘要: 主要使用的是java.util.Robot類來捕獲屏幕,可以實現對屏幕一個矩形區域的捕獲,通過這個類,我們也可以實現一個遠程桌面控制的程序。


    package com.qiu.util;
    import java.io.*;
    import java.net.*;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.imageio.*;
    import java.io.*;
    /** *//**@Author Qiu_BaiChao
    *一個簡單的屏幕抓圖
      閱讀全文
    posted @ 2009-05-14 11:37 rogerfan 閱讀(300) | 評論 (0)  編輯

         摘要: 由于本人的一個低級失誤,造成結論錯誤,for才是最終的勝者。foreach和iterator是類似的機制,性能都不是很好。以下代碼已經重新調整,再次道歉。

    以前一直有人說,foreach的性能有損失,不建議使用,今天特意測試了一下,結果是 for方式的性能最好,foreach次之,而Iterator循環性能最差..

    1 完整的測試代碼
    view plaincopy to clipboardprint?
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    /**
    * 測試JAVA各種循環的性能。

    * for 方式的性能最好,foreach次之,而Iterator循環性能最差。
      閱讀全文
    posted @ 2009-05-14 11:34 rogerfan 閱讀(360) | 評論 (0)  編輯

         摘要: Collection接口
      Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。一些 Collection允許相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接繼承自Collection的類, Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。
      所有實現Collection接口的類都必須提供兩個標準的構造函數:無參數的構造函數用于創建一個空的Collection,有一個 Collection參數的構造函數用于創建一個新的 Collection,這個新的Collection與傳入的Collection有相同的元素。后一個構造函數允許用戶復制一個Collection。
      如何遍歷Collection中的每一個元素?不論Collection的實際類型如何,它都支持一個iterator()的方法,該方法返回一個迭代子,使用該迭代子即可逐一訪問Collection中每一個元素。典型的用法如下:
        Iterat  閱讀全文
    posted @ 2009-05-14 09:58 rogerfan 閱讀(878) | 評論 (0)  編輯

         摘要: 編輯
    作用域 功能 快捷鍵
    文本編輯器 查找上一個 Ctrl+Shift+K
    文本編輯器 查找下一個 Ctrl+K
    全局 恢復上一個選擇 Alt+Shift+↓
    全局 快速修正 Ctrl1+1
    全局 內容輔助 Alt+/
    全局 上下文信息 Alt+?Alt+Shift+?Ctrl+Shift+Space
    Java編輯器 顯示工具提示描述 F2
    Java編輯器 選擇封裝元素 Alt+Shift+↑
    Java編輯器 選擇上一個元素 Alt+Shift+←
    Java編輯器 選擇下一個元素 Alt+Shift+→
    文本編輯器 增量查找 Ctrl+J
    文本編輯器 增量逆向查找 Ctrl+Shift+J
    全局 重做 Ctrl+Y   閱讀全文
    posted @ 2009-05-13 11:47 rogerfan 閱讀(384) | 評論 (0)  編輯

         摘要: 1.java.util.Calendar
    Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距歷元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利歷)的偏移量。

    例:

    1Calendar cal = Calendar.getInstance();//使用默認時區和語言環境獲得一個日歷。
    2cal.add(Calendar.DAY_OF_MONTH, -1);//取當前日期的前一天.
    3
    4cal.add(Calendar.DAY_OF_MONTH, +1);//取當前日期的后一天.
    5
    6//通過格式化輸出日期
    7java.text.SimpleDateFormat format = new java.text.S  閱讀全文
    posted @ 2009-05-13 11:32 rogerfan 閱讀(311) | 評論 (0)  編輯

         摘要: 測試任何可能的錯誤。單元測試不是用來證明您是對的,而是為了證明您沒有錯。

    2、單元測試代碼和被測試代碼使用一樣的包,不同的目錄。
    --junit4.0使用注意說明;

    3、測試方法必須按照規范書寫
    1. 測試方法必須使用注解 org.junit.Test 修飾。
    2. 測試方法必須使用 public void 修飾,而且不能帶有任何參數。
    @Test public void wordFormat4DBegin(){
    String target = "EmployeeInfo";
    String result = WordDealUtil.wordFormat4DB(target);

    assertEquals("employee_info", result);
    }  閱讀全文
    posted @ 2009-03-06 11:30 rogerfan 閱讀(841) | 評論 (0)  編輯

         摘要: 提要 本文將向你介紹如何實現從JUnit 3.8向JUnit 4的遷移。同時,還討論JUnit 4中的一些新特征,特別包括對注解的使用;最后,簡要介紹這個新版本的IDE集成現狀。

      一、 引言

      在本文開始,我將假定,你已經了解由Kent Beck和Erich Gamma發明的這個Java單元測試框架并因此而略過必要的簡介。所以,我將集中分析從JUnit 3.8到最新版本-JUnit 4的遷移過程以及其在IDE和Ant中的集成。

      JUnit 4是一種與其之前的版本完全不同的API,它根據Java 5.0中的新特征(注解,靜態導入等)構建而成。如你所見,JUnit 4更簡單、更豐富和更易于使用,而且它引入了更為靈活的初始化和清理工作,還有限時的和參數化測試用例。   閱讀全文
    posted @ 2009-03-06 10:46 rogerfan 閱讀(335) | 評論 (0)  編輯

         摘要: Struts簡介
    Struts是一個基于Sun J2EE平臺的MVC框架,很好地實現了MVC模式,它由Craig McClanahan創建。Struts最早是作為Apache Jakarta項目的組成部分問世運作,Struts這個名字來源于在建筑中使用的金屬架。使用它的目的是為了減少運用MVC設計模型來開發Web應用的時間。它只有一個中心控制器,采用XML定制轉向的URL,采用Action來處理邏輯。

    Struts通過一個配置文件,即可把握整個系統各部分之間的聯系,但這樣做不容易查找錯誤。Struts 其實就是在Model2基礎上實現的一個MVC框架。Model2的示意圖如圖11.1所示。

    圖11.1 Model2的示意圖

    與Spring一樣,通過在web.xml中的配置,使得所有的視圖層請求都要通過ActionServlet,由它進行客戶端的請求處理。它主要通過struts-config.xml文件來進行用戶請求的動作和對應Action的請求,將請求傳遞給Action,并將處理后的結果返回給視圖層。Struts的體系結構  閱讀全文
    posted @ 2009-03-06 10:32 rogerfan 閱讀(1942) | 評論 (0)  編輯

         摘要: JUnit簡介
    JUnit主要用來幫助開發人員進行Java的單元測試,其設計非常小巧,但功能卻非常強大。

    下面是JUnit一些特性的總結:

    — 提供的API可以讓開發人員寫出測試結果明確的可重用單元測試用例。

    — 提供了多種方式來顯示測試結果,而且可以擴展。

    — 提供了單元測試批量運行的功能,而且可以和Ant很容易地整合。

    — 對不同性質的被測對象,如Class,JSP,Servlet等,JUnit有不同的測試方法。
      閱讀全文
    posted @ 2009-03-06 10:29 rogerfan 閱讀(1098) | 評論 (0)  編輯

         摘要: 1. 美國Segue公司的Silk系列產品Segue公司一直專注于軟件質量優化領域。在Segue的產品套件中,擁有業內最強勁且最容易使用的、用于企業應用測試、調優和監測的自動化工具,能夠幫助用戶保障應用在其生命周期內的可靠性和性能。
     
      (1) SilkPerformer——企業級性能測試工具u 企業級自動化測試工具能夠支持多種系統,如Java、。Net、Wireless、COM、CORBA、Oracle、Citrix、MetaFrame、客戶機/服務器、以及各種ERP/CRM應用u 多項專利技術精確模擬各種復雜的企業環境u 可視化腳本記錄功能及自定義工具簡化了測試創建工作u SilkPerformer的Java/.NET瀏覽器以及JUnit/NUnit測試輸入功能簡化了對并發訪問情況下遠程應用組件的早期負載測試工作u 方便易用,工作流向導會逐步引導用戶完成整個測試流程  閱讀全文
    posted @ 2009-03-06 10:06 rogerfan 閱讀(346) | 評論 (0)  編輯

         摘要: 引言

      一個例子

      我們先看一個例子,以了解對”規則”做單元測試的特點。我們有一個性能調優工具 WPA, 它能夠將與性能相關的參數的值進行評估并推薦最優值。它的評估和推薦最優值算法都是基于”規則”的。

      Java 虛擬機的初始堆大小(JVM initial heap size)是一個影響 JVM 的性能的關鍵參數。性能調優工具 WPA 有一套規則對“ JVM initial heap size ”的值進行評估(參見清單 1)。評估的結果有 5 個級別。級別“ 1 ”表示設置良好,可提高性能;級別“ 5 ”表示設置很差,會降低性能。
      閱讀全文
    posted @ 2009-03-06 10:04 rogerfan 閱讀(390) | 評論 (0)  編輯

         摘要: 引言

    毋庸置疑,程序員要對自己編寫的代碼負責,您不僅要保證它能通過編譯,正常地運行,而且要滿足需求和設計預期的效果。單元測試正是驗證代碼行為是否滿足預期的有效手段之一。但不可否認,做測試是件很枯燥無趣的事情,而一遍又一遍的測試則更是讓人生畏的工作。幸運的是,單元測試工具 JUnit 使這一切變得簡單藝術起來。

    JUnit 是 Java 社區中知名度最高的單元測試工具。它誕生于 1997 年,由 Erich Gamma 和 Kent Beck 共同開發完成。其中 Erich Gamma 是經典著作《設計模式:可復用面向對象軟件的基礎》一書的作者之一,并在 Eclipse 中有很大的貢獻;Kent Beck 則是一位極限編程(XP)方面的專家和先驅。

    麻雀雖小,五臟俱全。JUnit 設計的非常小巧,但是功能卻非常強大。Martin Fowler 如此評價 JUnit:在軟件開發領域,從來就沒有如此少的代碼起到了如此重要的作用。它大大簡化了開發人員執行單元測試的難度,特別是 JUnit 4 使用 Java 5 中的注解(annotatio  閱讀全文
    posted @ 2009-03-06 09:59 rogerfan 閱讀(357) | 評論 (0)  編輯

         摘要: 單元測試基礎

      當今軟件測試十分盛行時,本人通過項目實踐和個人親身體會淺談單元測試,本人一直堅持“用代碼說話的原則”,同時也希望個人能給出寶貴意見,共同探討、共同進步,為中國軟件事業有更大的發展共同奮斗!

      最早我們項目組開發的項目時,寫代碼都是從底層一直寫到表現層到jsp,然后開發人員在web層調試頁面,近乎98%都會報一大堆exception,然后再在代碼中加斷點一步一步查到底哪一層代碼出現問題……,比較好點做法就是在各個類中加上main方法測試,但總體很不理想,給web層開發人員的調試和質量控制人員帶來繁重的工作壓力;使用單元測試后,針對每一個方法都做嚴格的把關,大大減少調試的時間;同時質量控制人員返回過來的bug少了近60%,現在對于開發人員寫測試用例非常熟練,并且本人根據實際情況對測試用例做了點小小改動(這部分主要在后面代碼中詳述),帶來很好的效果!
      閱讀全文
    posted @ 2009-03-06 09:55 rogerfan 閱讀(1072) | 評論 (0)  編輯

         摘要: String String = "Hello";



    System.out.println(String);



    一開始,看到這句的時候,還以為,這條代碼是錯的呢.后來,在運行的時候,發現沒報錯..仔細研究了一下..



    原來String 是可以被打印的..因為String是對象,不是關鍵字,所以程序是不會報錯的.



    所以,大家可別跟我一樣.搞錯了..
      閱讀全文
    posted @ 2009-03-02 11:03 rogerfan 閱讀(175) | 評論 (0)  編輯

         摘要: 1. MD5加密,常用于加密用戶名密碼,當用戶驗證時。}   }  2. SHA加密,與MD5相似的用法,只是兩者的算法不同。}   }  3. RSA加密,RAS加密允許解密。常用于文本內容的加密。  閱讀全文
    posted @ 2009-01-06 15:57 rogerfan 閱讀(508) | 評論 (0)  編輯

         摘要: Java 加密技術:消息摘要。

    一個消息摘要就是一個數據塊的數字指紋。即對一個任意長度的一個數據塊進行計算,產生一個唯一指印(對于SHA1是產生一個20字節的二進制數組)。

    消息摘要有兩個基本屬性:

    兩個不同的報文難以生成相同的摘要
    難以對指定的摘要生成一個報文,而由該報文反推算出該指定的摘要
    代表:美國國家標準技術研究所的SHA1和麻省理工學院Ronald Rivest提出的MD5
      閱讀全文
    posted @ 2009-01-06 15:55 rogerfan 閱讀(1966) | 評論 (0)  編輯

         摘要: /*設置字體格式*/
    public static HSSFFont getHdrFont(HSSFWorkbook wb) {
    fontStyle = wb.createFont();
    fontStyle.setFontName("宋體");
    fontStyle.setFontHeightInPoints((short)20);
    fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    return fontStyle;
    }
    public static HSSFFont getFtrFont(HSSFWorkbook wb) {
    fontStyle = wb.createFont();
    fontStyle.setFontName("宋體");
    fontStyle.setFontHeightInPoints((short)12);
    fontStyle.setBoldweight(HSSFFont.BOLDWEIGHT_NORM  閱讀全文
    posted @ 2008-11-25 10:17 rogerfan 閱讀(1223) | 評論 (1)  編輯

         摘要: 這是我測試的時候寫的,摘出來存放

    Properties props=System.getProperties(); //系統屬性
    System.out.println("Java的運行環境版本:"+props.getProperty("java.version"));
    System.out.println("Java的運行環境供應商:"+props.getProperty("java.vendor"));
    System.out.println("Java供應商的URL:"+props.getProperty("java.vendor.url"));
    System.out.println("Java的安裝路徑:"+props.getProperty("java.home"));
    System.out.println("Java的虛擬機規范版本:"+props.getProperty("java.vm.specification.version"));
    System.out.println  閱讀全文
    posted @ 2008-11-21 10:14 rogerfan 閱讀(501) | 評論 (0)  編輯

         摘要: 文件的建立/檢查與刪除
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import="java.io.*"%>


    文件的建立、檢查與刪除


    <%
    String path=request.getRealPath("");
    //out.println(path);
    File f=new File(path,"File.txt");
    //out.println(f);
    //out.println(f.exists());

    if(f.exists()){//檢查File.txt是否存在
    f.delete();//刪除File.txt文件
    out.println(path + "\\File.txt 存在,已刪除。");
    }else{
    f.createNew  閱讀全文
    posted @ 2008-11-21 10:08 rogerfan 閱讀(165) | 評論 (0)  編輯

         摘要: 最近在做我們的JAVA課程設計,我的設計里面涉及到了對信息的導出,包括導出Excel和Pdf.在網上查了有關Poi的資料查了很久終于寫出了滿足自己需求的程序.以下是程序的全部代碼:

    (一)SheetDataSource.java   閱讀全文
    posted @ 2008-11-18 15:18 rogerfan 閱讀(1291) | 評論 (0)  編輯

         摘要: package xls;

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;

    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.a  閱讀全文
    posted @ 2008-11-18 10:40 rogerfan 閱讀(544) | 評論 (0)  編輯

         摘要: 一、Excel基礎

    二、HSSF概況

    三、通過usermodel讀取文件

    四、通過usermodel寫入文件

    五、通過eventusermodel讀取文件

    六、HSSF電子表格結構

    七、通過HPSF讀取文檔屬性

    八、文檔摘要信息

    九、附錄   閱讀全文
    posted @ 2008-11-18 10:25 rogerfan 閱讀(1028) | 評論 (0)  編輯

         摘要: 我做Java編程大概有四年了,但我仍然處在從Java初級程序員向中級程序員過渡的階段。 Java 包含的東西實在太多,三大體系 J2ME,J2SE,J2EE 每個都包含了大量的內容,身為一個 Java 程序員其實挺悲哀的,不僅要不停地學習那么多基礎知識,還要應付層出不窮的框架。不光要學理論,還要注重實踐。想想原來搞 Perl, PHP 的時候,哪來的那么多知識點。雖然我的Java水平不高,但我始終對要學的東西保持自己的看法,對于技術我總是抱著懷疑一切的態度,有時候甚至很固執,就算我是錯的,我也要自己撞了南墻來體驗。我的觀點是:"好話左右不了我,我會自己判斷的。大家都說好,我可能偏不喜歡"。

    我曾經在編程技術上做過四次選擇:
    1:選擇了 Velocity ,放棄了 JSP.
    2: 選擇了 Ruby ,放棄了 Python.
    3: 選擇了 Hivemind, 放棄了 Spring.
    4: 選擇了 Intellij, 放棄了 Eclipse.
      閱讀全文
    posted @ 2008-09-02 17:23 rogerfan 閱讀(652) | 評論 (0)  編輯

         摘要: 1. 用jacob
    其實jacob是一個bridage,連接java和com或者win32函數的一個中間件,jacob并不能直接抽取word,excel等文件,需要自己寫dll哦,不過已經有為你寫好的了,就是jacob的作者一并提供了。
    jacob jar與dll文件下載: http://danadler.com/jacob/
    下載了jacob并放到指定的路徑之后(dll放到path,jar文件放到classpath),就可以寫你自己的抽取程序了,下面是一個簡單的例子:  閱讀全文
    posted @ 2008-08-27 13:47 rogerfan 閱讀(447) | 評論 (0)  編輯

         摘要: import java.io.*;
    import java.sql.*;
    import java.util.ArrayList;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.poi.hssf.usermodel.*;
    import org.apache.struts.action.*;
    import org.apache.struts.upload.FormFile;
    import org.apache.commons.beanutils.BeanUtils;
      閱讀全文
    posted @ 2008-08-27 13:41 rogerfan 閱讀(13887) | 評論 (19)  編輯

         摘要: 目的

    為遠程服務調用提供統一的框架,該框架集中解決遠程調用過程中的三方面問題:

    a. 應用透明性:應用的接口和實現不依賴于框架的實現。框架可以透明的切換各種遠程調用技術,而上層應用的接口和實現不用做任何調整。
    b. 安全性:安全性主要包括兩個方面:身份及簽名驗證(防篡改偽造);數據傳輸保密性(防監聽);IP認證。
    c. 調用頻度控制:為保證服務可用,需要對于調用頻度根據一定的規則進行控制。

    實現技術

      由于調用雙方都是基于Java的應用,實現技術上建議采用基于Spring的Remoting框架,這樣可以實現應用透明性,接口開發人員不用考慮遠程調用等與業務無關的技術細節。基于Spring框架并進行擴展,我們可以在框架層次實現安全性和調用頻度限制。

    由于調用雙方不在一個局域網環境內,因此在具體通訊協議上,最佳選擇即為Http。因此我們推薦的實現技術包括:Spring Remoting + Spring HttpInvoke  閱讀全文
    posted @ 2008-07-11 17:55 rogerfan 閱讀(2068) | 評論 (0)  編輯

         摘要: 1 直觀印象
    在JDK1.5之前的版本中,對于一個Collection類庫中的容器類實例,可將任意類型

    對象加入其中(都被當作Object實例看待);從容器中取出的對象也只是一個Object實例,需要將其強制轉型為期待的類型,這種強制轉型的運行時正確性由程序員自行保證。

    例如以下代碼片斷:
      閱讀全文
    posted @ 2008-05-27 11:47 rogerfan 閱讀(345) | 評論 (0)  編輯

         摘要: Java技術自問世時光已經過去了9個年頭。作為一名一直關注其成長的記者,曾經一段時間有過這樣的想法:“Java技術已經成熟,是不是發展速度該放慢一些了呢”。然而,這種想法錯了。近來Java技術的進化相當顯著。Java技術正在迎來“又一次革命”的風暴。這就是本文的結論。
      
      “又一次”指的是什么?“革命”指的又是什么?光看結論的話肯定是一頭霧水。其實,筆者要講的并不是變化這樣一個事實,而是“促進變化的原動力”。是什么讓Java技術發生變化?讓我們從這一角度出發,先看一下Java的變化歷程。  閱讀全文
    posted @ 2008-05-27 11:32 rogerfan 閱讀(217) | 評論 (1)  編輯

         摘要: 在反射的幫助下,我們可以有效的簡化這個繁瑣的過程,看代碼之前我們先補充一點有關類字段的反射API:
    ●Field[] getDeclaredFields():返回已加載類聲明的所有成員變量的Field對象數組,不包括從父類繼承的成員變量.
    ●Field getDeclaredField(String name):返回已加載類聲明的所有成員變量的Field對象,不包括從父類繼承的成員變量,參數name指定成員變量的名稱.
    ●Field[] getFields():返回已加載類聲明的所有public型的成員變量的Field對象數組,包括從父類繼承的成員變量
    ●Field getField(String name):返回已加載類聲明的所有成員變量的Field對象,包括從父類繼承的成員變量,參數name指定成員變量的名稱.  閱讀全文
    posted @ 2008-05-23 12:52 rogerfan 閱讀(462) | 評論 (3)  編輯

         摘要: 1. 為了方面按列作外循環,想把ArrayList構造成一個二維數組,如下:

    ......

    ArrayList result=GetResult();

    int n=result.size();

    String[][] myArray=new String[n][]; //定義二維數組

    for (int i=0;i {
    ArrayList tempArray= (ArrayList)result.get(i);
    myArray[i]=(String[])tempArray.toArray();
    }

    ......
      閱讀全文
    posted @ 2008-05-14 13:40 rogerfan 閱讀(2000) | 評論 (0)  編輯

         摘要: 1、一個jacob操作Word的例子,其他操作excel的sample里都有
      import java.io.File;
      import com.jacob.com.*;
      import com.jacob.activeX.*;
      public class WordTest {
      
       public static void main(String[] args) {
         WordBean word=new WordBean();
         word.openWord(true);
         word.createNewDocument();
         word.insertText("Hello word.");
       }
      }
      閱讀全文
    posted @ 2008-03-05 13:24 rogerfan 閱讀(1596) | 評論 (0)  編輯

         摘要:   集合接口:6個接口(短虛線表示),表示不同集合類型,是集合框架的基礎。

      抽象類:5個抽象類(長虛線表示),對集合接口的部分實現。可擴展為自定義集合類。

      實現類:8個實現類(實線表示),對接口的具體實現。   閱讀全文
    posted @ 2008-03-05 12:48 rogerfan 閱讀(294) | 評論 (0)  編輯

         摘要: “對于面向對象的程序設計語言,多型性是第三種最基本的特征(前兩種是數據抽象和繼承。”
      “多形性”(Polymorphism)從另一個角度將接口從具體的實施細節中分離出來,亦即實現了“是什么”與“怎樣做”兩個模塊的分離。利用多形性的概念,代碼的組織以及可讀性均能獲得改善。此外,還能創建“易于擴展”的程序。無論在項目的創建過程中,還是在需要加入新特性的時候,它們都可以方便地“成長”。
      閱讀全文
    posted @ 2007-12-27 15:00 rogerfan 閱讀(331) | 評論 (0)  編輯

         摘要: Vector 還是ArrayList――哪一個更好,為什么?
    要回答這個問題不能一概而論,有時候使用Vector比較好;有時是ArrayList,有時候這兩個都不是最好的選擇。你別指望能夠獲得一個簡單肯定答案,因為這要看你用它們干什么。下面有4個要考慮的因素:
    l API
    l 同步處理
    l 數據增長性
    l 使用模式
    下面針對這4個方面進行一一探討
    API
    在由Ken Arnold等編著的《Java Programming Language》(Addison-Wesley, June 2000)一書中有這樣的描述,Vector類似于ArrayList.。所有從API的角度來看這兩個類非常相似。但他們之間也還是有一些主要的區別的。  閱讀全文
    posted @ 2007-11-22 11:43 rogerfan 閱讀(452) | 評論 (1)  編輯

         摘要: 線性表,鏈表,哈希表是常用的數據結構,在進行Java開發時,JDK已經為我們提供了一系列相應的類來實現基本的數據結構。這些類均在java.util包中。本文試圖通過簡單的描述,向讀者闡述各個類的作用以及如何正確使用這些類。

    Collection
    ├List
    │├LinkedList
    │├ArrayList
    │└Vector
    │ └Stack
    └Set
    Map
    ├Hashtable
    ├HashMap
    └WeakHashMap  閱讀全文
    posted @ 2007-11-22 11:42 rogerfan 閱讀(282) | 評論 (0)  編輯

         摘要: Torque是Apache的公開源代碼項目,最開始是Turbine框架的組成部分,后面被獨立出來作為一個單獨的組件,歸入了Apache的DB項目下。目前最新的版本是3.3。Torque的主要功能是實現對數據庫的訪問,方式是通過生成訪問數據庫的資源(包括創建數據庫、表和初始化表的sql語句)和java代碼、提供使用這些代碼訪問數據庫的運行時(runtime)環境。關于Torque的詳細介紹請大家參考http://db.apache.org/torque/。

    目前Torque支持的數據庫包括mysql、oracle、sqlserver、db2等,還包括對weblogic的數據源的支持,詳細的支持列表大家可以到http://db.apache.org/torque/查找到,你還可以參考http://db.apache.org/torque/db-adapters.html編寫你自己的數據庫支持類。
      閱讀全文
    posted @ 2007-11-14 14:57 rogerfan 閱讀(953) | 評論 (0)  編輯

         摘要: 名聲顯赫而招搖的數據持久層框架Hibernate,通過query.setFirstResult和query.setMaxResult來實現了對數據的分頁,這個分頁的實質在SqlServer中是TOP N的方法,Oracle是rownum
    但是,Hibernate分頁,并不能得到頁腳,所以尚不通用。承接Jpage分頁的方便性,寫了這版分頁,以方便已與群眾。

    下面,就是在Hibernate下的通用分頁,屬于Jpage分頁的第三項功能。思路是定義一個Dao類,讓其它數據庫的dao都繼承這個Dao類。  閱讀全文
    posted @ 2007-11-01 21:32 rogerfan 閱讀(1236) | 評論 (2)  編輯

         摘要: 這段時間開始學習寫存儲過程,主要原因還是因為工作需要吧,本來以為很簡單的,但幾經挫折,豪氣消磨殆盡,但總算搞通了,為了避免后來者少走彎路,特記述與此,同時亦對自己進行鼓勵。

    一:無返回值的存儲過程

    存儲過程為:

    CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS

    BEGIN


    END TESTA;
      閱讀全文
    posted @ 2007-09-26 08:30 rogerfan 閱讀(357) | 評論 (0)  編輯

         摘要: 對于singleton bean,Spring容器知道bean何時實例化結束,何時銷毀,Spring可以管理實例化結束之后,和銷毀之前的行為,管理bean的生命周期行為主要未如下兩個時機:

    Bean全部依賴注入之后
    Bean即將銷毀之前

    (1)依賴關系注入后的行為實現:
    有兩種方法:A.編寫init方法 B.實現InitializingBean接口
      閱讀全文
    posted @ 2007-09-11 20:47 rogerfan 閱讀(680) | 評論 (0)  編輯

         摘要: (一)Turbine簡介
    1. 概述
    Turbine是Apache Jakarta項目中的一個開源的服務器端Java框架。任何支持Servlet2.2或以上規范的容器都可以運行Turbine應用程序。
    當然,Turbine的最大優勢是免費,并且向開發人員提供全部的源代碼。

    表示層 - Velocity or JSP
    數據庫層(持久層) - Turbine 使用 Torque, 但是也支持其他的持久層工具,如OJB或者 Hibernate。.
    HTML 表單數據驗證使用 "Intake"-Service.
    日志(Logging) - Turbine 使用 Commons Logging并且支持眾多的日志輸出工具,如Log4J。(注:Scarab使用Log4j,不過有些問題。), jdk14 or simple file logging
    基于服務的框架,在Turbine2.4及以后版本中使用和Avalon框架兼容的組件。   閱讀全文
    posted @ 2007-09-07 15:24 rogerfan 閱讀(1703) | 評論 (0)  編輯

         摘要: 概述

      Java 語言從誕生的那天起,就非常注重網絡編程方面的應用。隨著互聯網應用的飛速發展,Java 的基礎類庫也不斷地對網絡相關的 API 進行加強和擴展。在 Java SE 6 當中,圍繞著 HTTP 協議出現了很多實用的新特性:NTLM 認證提供了一種 Window 平臺下較為安全的認證機制;JDK 當中提供了一個輕量級的 HTTP 服務器;提供了較為完善的 HTTP Cookie 管理功能;更為實用的 NetworkInterface;DNS 域名的國際化支持等等。  閱讀全文
    posted @ 2007-09-06 17:37 rogerfan 閱讀(522) | 評論 (2)  編輯

         摘要: Hibernate一共包括了23個jar包,令人眼花繚亂。本文將詳細講解Hibernate每個jar包的作用,便于你在應用中根據自己的需要進行取舍。

    下載Hibernate,例如2.0.3穩定版本,解壓縮,可以看到一個hibernate2.jar和lib目錄下有22個jar包:

    hibernate2.jar:

    Hibernate的庫,沒有什么可說的,必須使用的jar包   閱讀全文
    posted @ 2007-09-06 16:47 rogerfan 閱讀(277) | 評論 (0)  編輯

         摘要: 每一項都是js中的小技巧,但十分的實用!
    1.document.write(""); 輸出語句
    2.JS中的注釋為//
    3.傳統的HTML文檔順序是:document->html->(head,body)
    4.一個瀏覽器窗口中的DOM順序是:window->(navigator,screen,history,location,document)
    5.得到表單中元素的名稱和值:document.getElementById("表單中元素的ID號").name(或value)
    6.一個小寫轉大寫的JS: document.getElementById("output").value = document.getElementById("i
    nput").value.toUpperCase();
    7.JS中的值類型:String,Number,Boolean,Null,Object,Function
    8.JS中的字符型轉換成數值型:parseInt(),parseFloat()   閱讀全文
    posted @ 2007-09-05 17:35 rogerfan 閱讀(5637) | 評論 (1)  編輯

         摘要: Ajax不是萬能的,在適合的場合使用Ajax,才能充分發揮它的長處,改善系統性能和用戶體驗,絕不可以為了技術而濫用。Ajax的特點在于異步交互,動態更新web頁面,因此它的適用范圍是交互較多,頻繁讀取數據的web應用。現在來看幾個Ajax的應用實例,讀者可以了解如何使用Ajax技術改進現有的web應用系統。  閱讀全文
    posted @ 2007-09-05 17:19 rogerfan 閱讀(1271) | 評論 (2)  編輯

         摘要: Java面試基礎知識:
    1.C++或Java中的異常處理機制的簡單原理和應用。
    當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示為一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,并自由選擇在何時用throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。  閱讀全文
    posted @ 2007-07-18 17:13 rogerfan 閱讀(1210) | 評論 (0)  編輯

         摘要: 前言
    在java的應用領域,有許多成熟的開源軟件,利用它們一樣可以打造優越、靈巧的應用框架,本文首先將先介紹 所要構建的系統結構和借助的開源產品。然后逐一講解各開源軟件的具體運用。希望本文能給那些正在學習這些 開源軟件的同行提供參考。續該文之后筆者將結合這些開源軟件,借助實際項目,做更深入的應用講解。

    本文中涉及到的例子、源代碼均經過本人調試,且正常運行的,但是不否定這其中有不合理的使用。運行環境: win2000 adivance server + tomcat5.0.25 + mysql-4.0.14-nt

    第 1 章 整體框架
    筆者在項目中所搭建的架構參考了 “Mark Eagle” 的《Wiring Your Web Application with Open Source Java》 一文中所闡述的架構思想。   閱讀全文
    posted @ 2007-06-28 13:45 rogerfan 閱讀(970) | 評論 (0)  編輯

         摘要: 1。請大概描述一下Vector和ArrayList的區別,Hashtable和HashMap的區別。(5)
    2。請問你在什么情況下會在你的JAVA代碼中使用可序列化?(5)
    為什么放到HttpSession中的對象必須要是可序列化的?(5)   閱讀全文
    posted @ 2007-06-27 09:36 rogerfan 閱讀(685355) | 評論 (80)  編輯

         摘要: Java自1995年面世以來得到了廣泛得一個運用,但是對多線程編程的支持Java很長時間一直停留在初級階段。在Java 5.0之前Java里的多線程編程主要是通過Thread類,Runnable接口,Object對象中的wait()、 notify()、 notifyAll()等方法和synchronized關鍵詞來實現的。這些工具雖然能在大多數情況下解決對共享資源的管理和線程間的調度,但存在以下幾個問題  閱讀全文
    posted @ 2007-06-25 10:53 rogerfan 閱讀(1029) | 評論 (0)  編輯

         摘要: 在5.0中,collection最大的一個改變就是可以指定它的具體類型:
    List list=new List;  閱讀全文
    posted @ 2007-06-25 10:41 rogerfan 閱讀(236) | 評論 (0)  編輯

         摘要: 程序運行結果:
    IP地址的各種表現形式:
    32位二進制形式:11001010011100000110000010100011
    十進制形式:3396362403
    普通形式:202.112.96.163.   閱讀全文
    posted @ 2007-06-25 09:55 rogerfan 閱讀(643) | 評論 (0)  編輯

         摘要: abstract class和interface是Java語言中對于抽象類定義進行支持的兩種機制,正是由于這兩種機制的存在,才賦予了Java強大的面向對象能力。abstract class和interface之間在對于抽象類定義的支持方面具有很大的相似性,甚至可以相互替換,因此很多開發者在進行抽象類定義時對于abstract class和interface的選擇顯得比較隨意。其實,兩者之間還是有很大的區別的,對于它們的選擇甚至反映出對于問題領域本質的理解、對于設計意圖的理解是否正確、合理。本文將對它們之間的區別進行一番剖析,試圖給開發者提供一個在二者之間進行選擇的依據。
      閱讀全文
    posted @ 2007-06-22 16:35 rogerfan 閱讀(330) | 評論 (0)  編輯

    主站蜘蛛池模板: 亚洲啪AV永久无码精品放毛片| a级毛片免费网站| 亚洲国产日韩a在线播放| 永久黄网站色视频免费直播| 香蕉国产在线观看免费| 亚洲成年轻人电影网站www| 最近中文字幕mv手机免费高清 | 一区二区三区免费看| 亚洲欧洲日产国码无码网站| 久久国产免费福利永久| 免费一级毛片在线播放放视频| 久久精品国产亚洲av麻豆| 韩国二级毛片免费播放| 国产精成人品日日拍夜夜免费| 精品久久亚洲中文无码| 在线日韩日本国产亚洲| 成年女人午夜毛片免费视频| 最近免费mv在线观看动漫| 亚洲国产精品成人午夜在线观看| 亚洲AV永久青草无码精品| 国产高清在线精品免费软件| 亚洲第一成年网站视频| 亚洲第一AV网站| 四只虎免费永久观看| 最近中文字幕mv免费高清在线| 日亚毛片免费乱码不卡一区| 亚洲天堂2016| 亚洲国产老鸭窝一区二区三区| 亚洲M码 欧洲S码SSS222| 91免费国产在线观看| 在线人成免费视频69国产| 黄网站色成年片大免费高清| 99热亚洲色精品国产88| 久久亚洲国产精品| 久久亚洲欧洲国产综合| 四虎永久成人免费| 在人线av无码免费高潮喷水| 无码国产精品一区二区免费模式| 一区二区三区免费在线观看| 亚洲AV无码一区二区大桥未久 | 精品亚洲永久免费精品|