原创 請不要使用File#deleteOnExit()

在處理文件操作時,有時你需要使用臨時文件,當不再需要它是希望它自動消失,在java API中存在一個File#deleteOnExit(),當file調用了deleteOnExit()後,如果虛擬機正常退出,則文件會自動刪除。 聽起來一切

原创 jquery validate筆記

配置驗證信息 var validator=$form.validate({ //驗證規則 rules:{ //key爲input的name,而不是ID 'user.username':{ required:true,

原创 Spring 實現動態註冊Bean

寫一個組件,需要依據配置選擇DAO實現,比如JPA,Mybatis 預期效果爲,系統啓動時根據配置自動向spring註冊相關的組件(比如JPA相關組件) 通常向spring註冊組件都是使用xml、@Bean註解或者@Compon

原创 Servlet 中的Service(),doGet(),doPost()的關係

在默認的servlet中,所有的get和post請求都是通過service()處理,然後轉到doGet()或者doPost()方法中的service()方法中除了處理轉向,還對get()方法進行了頁面過期

原创 java 日誌系統

日誌發展史最先出現的是apache開源社區的log4j,這個日誌確實是應用最廣泛的日誌工具,成爲了java日誌的標準。Sun公司在jdk1.4中增加了JUL日誌實現,企圖對抗log4j,但是卻造成了混亂,當然也有其他日誌工具的出現,這樣

原创 jwt(JSON Web Token) 讓客戶端安全的回傳數據

使用場景: 服務器需向客戶端下發數據A,之後需要客戶端把數據A再原樣回傳給服務器,這是需要保證客戶端的數據沒有被篡改,jwt可以做到防篡改 例:回傳App登錄信息 傳統實現:App登錄後服務器發送給APP一個token,服務器記錄着to

原创 基於CAS自旋實現的樂觀鎖

CAS原理: if(預期原值==內存值) 內存值=新值; else 不操作   樂觀鎖是當前線程樂觀的認爲執行操作不會造成線程安全問題, 例如本例中的實現: lock()中使用null去與 atomicO

原创 分析java對象內存佔用

JVM的分代GC法非常適合處理小而短命的對象,這類對象可以很快的在minor GC後清除;但是日常開發中經常需要緩存一些對象,這些對象在經過幾次MinorGC後最終會進入老年代;如果這些對象佔用太多的內存則會出現OOM,所以應該限制緩存對

原创 構造器模式構造對象

使用場景: 構造對象需要大量可選的參數,參數個數不確定,日後可能會修改,最好一開始就使用構建器模式 構造方法構造的缺點: 通常構造對象時,我們會採用構造函數的方式來對對象的參數進行初始化,例如:Person person1=new P

原创 shiro會話機制

會話即用戶訪問應用時保持的連接關係,通過會話應用可以在多次訪問中識別出當前的用戶是誰,還可以在交互中保存數據。 shiro的會話在JavaSE和JavaEE中都可以使用,不依賴容器,使脫離容器的單元測試成爲可能。 會話的主要功能: 會話

原创 控制線程順序循環輸出ABC (java Condition 代碼簡潔版)

面試題: 編寫一個程序,開啓3個線程,這3個線程的ID分別爲A、B、C,每個線程將自己的ID在屏幕上打印10遍,要求輸出結果必須按ABC的順序顯示;如:ABCABC….依次遞推。 網上的很多代碼都是依賴於靜態計數變量,通過計數變量求模計

原创 web請求編碼與解碼

編碼字符集 UTF-16中英文2字節,java使用UTF-16,所以char佔2字節,優點:編碼效率高,適合在磁盤和內存中使用UTF-8英文1字節中文3字節,在編碼效率和編碼安全性之間做了平衡,適合網絡傳輸,是理想的中文編碼方式ISO-

原创 字符流讀取文本文件的編碼問題

使用字符流包裝字節流時, 如果沒有設置字符集,默認使用環境變量相關的字符集進行轉碼,這樣會出現代碼移植的不確定性,所以應該在實例化字符流時自己設定字符集 new InputStreamReader(Inp

原创 Tomcat5.5X連接池(dbcp)

容器:Tomcat 5.5X 數據庫:MySql5.0   主要涉及幾個目錄,幾個文件,如下 *  以下配置根據自己實際情況修改~ __________________________ 1    Tomcat 安裝目錄/conf下/se