Time of Update: 2018-12-05
前一段時間有好幾個問題,提到怎麼判斷session是否到期。接觸jspo已經很久了,但是還真沒有想過這個問題,當時也就沒有找到一個滿意的答案給人家。當時,我提到一個方法,就是實現HttpSessionListener介面,然後在sessionDestroyed()方法中執行一些操作,表示session要到期了,因為這個方法是session.invalidate()之前監聽器調用的方法。這個判斷的方法顯然不能讓人滿意。我當時問了些人,但是也沒有得到一個準確的答案。正好偶然間看到,request.g
Time of Update: 2018-12-05
系統托盤是Windows應用程式常見的應用之一,用SWT可以輕鬆的實現系統托盤。下面是一個應用的小例子:import org.eclipse.swt.*;import org.eclipse.swt.graphics.*;import org.eclipse.swt.widgets.*;public class Main { public static void main(String[] args) { Display display = new Display();
Time of Update: 2018-12-05
近日為是否在項目中使用Hibernate進行大資料量的效能測試,有一些總結,1) 在處理大資料量時,會有大量的資料緩衝儲存在Session的一級緩衝中,這緩衝大太時會嚴重顯示效能,所以在使用Hibernate處理大資料量的,可以使用session.clear()或者session. Evict(Object) 在處理過程中,清除全部的緩衝或者清除某個對象。2) 對大資料量查詢時,慎用list()或者iterator()返回查詢結果,1.
Time of Update: 2018-12-05
諾頓卸載需要輸入密碼,網上一篇文章說終結進程的辦法不適合v11,機器是單位的,所以開始並沒有想到完全卸載,怕起不來,於是進入安全模式禁用所有服務,下個卡巴斯基安裝,結果一安裝,卡巴斯基就提示先卸載諾頓,太可愛了,點擊確認之後,卸載之後再重啟就卸得乾乾淨淨了,裝上卡巴斯基,好幾天也沒死一次機,而以前一天要死一兩次,諾頓真垃圾,而且卸載也卸不乾淨。卡巴斯基還有這個妙用啊,即使你不想安卡巴斯基,也可以用它來刪諾頓,而且不用輸密碼,強。
Time of Update: 2018-12-05
Eclispe的SWT和JFace功能非常強大,可以開發出相當漂亮的GUI應用程式。本文用SWT實現了Windows工作列的系統托盤功能。添加了托盤右擊菜單,當視窗最小化時隱藏視窗在工作列的顯示。import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionEvent;import org.eclipse.swt.events.SelectionListener;import
Time of Update: 2018-12-05
今天在做《Junit In Action》關於cactus和jetty結合進行整合測試的例子,看看原始碼很簡單,但總是運行不起來,一波三折了好幾個小時才搞定。我用的cactus是1.8.1,閑言少敘,上原始碼,就2個類: 待測試的servlet:package junitbook.container;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import
Time of Update: 2018-12-05
問題的提出 當你在開發一個基於資料庫的應用的時候,你可能會想這樣一個問題:資料庫有關的事務操作部分因該放在那裡?是以預存程序(stored procedure)的形式放在資料庫端呢,還是將查詢以及相應運算嵌在應用程式當中呢?要回答這樣一個問題,你首先要瞭解預存程序以及內嵌T-SQL這兩種方案各自的優缺點以及他們分別適用的場合。尤其是在新的.NET開發環境中,如何選取正確的解決方案是非常關鍵的。 為什麼要使用預存程序(Stored Procedures)?
Time of Update: 2018-12-05
SVG主要元素和屬性 <desc></desc> 注釋<!-- --><defs></defs> 預定義 待引用 <element id="name"> 引用屬性:url(#name)<use xlink:href></use> 引用元素 <symbol> 模版<image width height> width height不能省屬性
Time of Update: 2018-12-05
Digester轉換xml到bean是比較方便的,但一個很常見的問題是,有時候同一種元素會出現在多個父元素下面,每次為它重寫一遍映射的代碼當然可以,但太麻煩了,有沒有用Regex的方式匹配一下這種元素,達到唯寫一遍的目的呢,於是經過一番探索和郵件清單裡的討論,可以使用RegexRules、SimpleRegexMatcher來完成,不得不說,Digester的文檔寫得太差了,從文檔裡找不到任何使用它的方法。 xml:config.xml<?xml version="1.0"
Time of Update: 2018-12-05
DOM是什麼 如何使用DOM 如何Load一個文檔 處理錯誤 如何從XML文檔中取得資訊 如何遍曆XML文檔 下一步該幹什麼 簡介: 作為VB的開發人員你可能會接觸eXtensible Markup Language (XML)文檔。你現在想處理XML文檔並把它整合到你的方案中。你可以自己編程解析,把它當普通文字文件處理,但這樣作太沒有效率了,沒有利用XML的強大之處:它可以結構化的表示資料。
Time of Update: 2018-12-05
正如你所瞭解的,XML是個功能強大的新型資料結構,它可以讓你把網頁的內容和表現形式分開。儘管如此,目前,我們的文章大多僅介紹了直接產生XML標記得的法。我們在大多數時候,都是手工編寫必需的標記和資料的。 幸運的是,微軟提供了XML DOM(XML文件物件模型),這是另外一種編寫XML代碼的方法。該物件程式庫可以讓你構建XML文法樹,並提供了更有效方法來建立XML文檔。例如,你可用XML
Time of Update: 2018-12-05
對Struts2進行單元測試,以struts 2.2.1.1為例 ,可以使用struts2發行包中的struts2-junit-plugin-2.2.1.1.jar,它裡面提供了兩個類StrutsTestCase、StrutsSpringTestCase,分別提供對純struts應用和struts+spring整合時的單元測試支援。下面分別說明。 1.StrutsTestCase 首先準備一個純struts2工程,建立工程過程略,但有如下的類: Account.java,是bean
Time of Update: 2018-12-05
我們知道,當不使用線程池時,想讓A線程在B線程執行完之後執行,需要在A中的某個調用處,調用B.join,但如果使用jdk1.5以後提供的線程池ExecutorService,這個就用不上了,用了會出同步問題,其實這個情境應該是很常見的吧,比如你用多線程並發執行一些操作,當這些操作全部完成時才能進行下一步,這就是需要這個功能了。後來偶然在網上看到有人說用ExecutorService.invokeAll可以實現,測試了一下,確實簡單。這個方法的定義如下: <T>
Time of Update: 2018-12-05
初學uml(其實也不是初學,就是以前沒機會在工作中畫)總有個疑問
Time of Update: 2018-12-05
<html:options>html:options was born to use data in an ArrayList. Do NOT use a Vector, because it is Synchronized and will cause problems if more than one person uses your app at a time.Given that you have a list of products with their product
Time of Update: 2018-12-05
項目中要用到解析設定檔的功能,google了一下,發現基本都是說用Digester的,正好工程中有這個jar包,所以可以用,研究了一下。Digester原來是struts1.x下面的jar,但由於解析xml到bean是個如此常用的功能,於是就分出來了,成為apache一個單獨的項目了,它用純java實現。試了一下,解析xml還是挺方便的。下面是我改寫了官網提供的一個例子,基本覆蓋常用的功能。 example.xml: <address-book> <person
Time of Update: 2018-12-05
最近在做Struts項目時遇到了上傳多個檔案的問題。在網上查了不少資料,也沒有找到用Struts上傳多個檔案的例子。我經過幾天的研究,實現了用Struts上傳多個檔案的功能。現在貼出來讓大家共用! 一。建立ActionFormpackage com.cnehu.struts.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionError;import org.
Time of Update: 2018-12-05
在用Struts上傳檔案時,遇到了javax.servlet.ServletException: BeanUtils.populate異常。我的ActionServlet並沒有用到BeanUtils這些工具類。感覺很奇怪。後來仔細檢查代碼發現是在jsp檔案裡的form忘了加enctype="multipart/form-data" 了。加上之後,果然沒有異常了。所以寫程式遇到錯誤或異常應該從多方面考慮問題存在的可能性,想到系統提示資訊以外的東西。
Time of Update: 2018-12-05
開發使用的是tomcat5.5.27,對於WEB-INF/classes下面的類做了修改,tomcat就會就會自動重啟,然後緊接著就是記憶體溢出。調試比較麻煩。昨天研究了一下tomcat的原始碼,對類的載入機製作了一點點修改,讓它動態載入類,這樣調試的時候如果修改了java檔案就不用重啟 tomcat了。具體步驟如下:修改WebappClassLoader.java檔案中的modify()方法,在745行的 return (true);登出,修改為: // return (true)
Time of Update: 2018-12-05
SWT & JFace 沒有直接的安全儲存對話方塊,本文對安全對話方塊進行了實現,並且可以設定檔案類型.package org.gridhome.ui.window;import java.io.File;import org.eclipse.swt.SWT;import org.eclipse.swt.events.SelectionAdapter;import org.eclipse.swt.events.SelectionEvent;import