JavaWeb開發技術大全——第06講輸入校驗在本講主要介紹了Struts2如何進行輸入校驗。如果使用傳統的方式進行校驗,需要編寫大量的代碼。而使用Struts2可以采用多種方式進行數據校驗,如使用validate和validateXxx方法、Validation框架進行數據校驗。使用validate和validateXxx方法進行校驗也需要編寫一些校驗代碼,但可以很容易地將異常信息傳輸到客戶端。而使用Validation框架進行校驗,就不需要編寫大量的代
系統 2019-08-12 09:30:14 2290
我們知道在我們注冊用戶的時候一般都有一段模糊的驗證碼讓我們輸入,其實我們自己也可以實現這個驗證碼,驗證碼的好處是為了防止某些自動提交軟件的而已行為。下面就利用Servlet+JSP+JavaBran實現一個驗證碼機制。BufferedImage可以操作緩沖區的內部Image,可以被ImageIO輸出到輸出流中,我們就是利用PrintWriter可以想瀏覽器輸出信息的原理我們輸出Image圖片。1、產生驗證碼的類MakePicturepackageme.te
系統 2019-08-12 09:30:14 2290
Java方法中參數傳遞【網上摘錄】一個容易忽略的問題,需要注意的地方。在網上,眾說紛紜。找到一個跟自己理解很近的,貼出來。值得引起注意。摘錄:Java中的參數傳遞機制一直以來大家都爭論不休,究竟是“傳值”還是“傳址(傳引用)”,爭論的雙方各執一詞,互不相讓。不但“菜鳥”們一頭霧水,一些“老鳥”也只知道結果卻說不出所以然來。我相信看過下面的內容后,你就會明白一些。先看基本類型作為參數傳遞的例子:publicclassTest1{??????publicsta
系統 2019-08-29 23:46:41 2288
17.不要使用基于減法的比較器Java代碼Comparatorc=newComparator(){publicintcompare(Integeri1,Integeri2){returni1-i2;//升序}};Listl=newArrayList();l.add(newInteger(-2000000000));l.add(newInteger(2000000000));Collec
系統 2019-08-29 22:02:48 2288
SQL注入簡介:SQL注入是最常見的攻擊方式之一,它不是利用操作系統或其它系統的漏洞來實現攻擊的,而是程序員因為沒有做好判斷,被不法用戶鉆了SQL的空子,下面我們先來看下什么是SQL注入:比如在一個登陸界面,要求用戶輸入用戶名和密碼:用戶名:'or1=1--密碼:點登陸,如若沒有做特殊處理,而只是一條帶條件的查詢語句如:Stringsql="select*fromuserswhereusername='"+userName+"'andpassword='"
系統 2019-08-12 09:29:45 2288
三十、用enum代替int常量:枚舉類型是指由一組固定的常量組成合法值的類型,該特征是在Java1.5中開始被支持的,之前的Java代碼都是通過“公有靜態常量域字段”的方法來簡單模擬枚舉的,如:publicstaticfinalintAPPLE_FUJI=0;publicstaticfinalintAPPLE_PIPPIN=1;publicstaticfinalintAPPLE_GRANNY_SMITH=2;......publicstaticfinali
系統 2019-08-29 22:02:33 2277
有時候需要讓某個類只產生一個實例,能確保對象實例只有一個的Pattern就成為SingletonPattern。Singleton類的構造函數是private的,主要是為了禁止從非Singleton類調用構造函數。把其設置為private純粹是為了防止程序員試圖通過new再產生實例。//Singleton類publicclassSingleton{privatestaticSingletonsingleton=newSingleton();privateS
系統 2019-08-12 09:29:57 2275
Java的運行原理在Java中引入了虛擬機的概念,即在機器和編譯程序之間加入了一層抽象的虛擬的機器。這臺虛擬的機器在任何平臺上都提供給編譯程序一個的共同的接口。編譯程序只需要面向虛擬機,生成虛擬機能夠理解的代碼,然后由解釋器來將虛擬機代碼轉換為特定系統的機器碼執行。在Java中,這種供虛擬機理解的代碼叫做字節碼(ByteCode),它不面向任何特定的處理器,只面向虛擬機。每一種平臺的解釋器是不同的,但是實現的虛擬機是相同的。Java源程序經過編譯器編譯后變
系統 2019-08-29 23:18:11 2274
Volatile修飾的成員變量在每次被線程訪問時,都強迫從主內存中重讀該成員變量的值。而且,當成員變量發生變化時,強迫線程將變化值回寫到主內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。Java語言規范中指出:為了獲得最佳速度,允許線程保存共享成員變量的私有拷貝,而且只當線程進入或者離開同步代碼塊時才與共享成員變量的原始值對比。這樣當多個線程同時與某個對象交互時,就必須要注意到要讓線程及時的得到共享成員變量的變化。而volatile關鍵
系統 2019-08-29 22:29:34 2271
原文來自:http://www.dewen.org/q/5791我有三個集合ArrayListlist=newArrayList();ArrayListlist1=newArrayList();ArrayListlist2=newArrayList();分別對應三個實體,人數據庫里取出了數據,現在要把這三個集合組成一個json{student:{id
系統 2019-08-29 22:37:57 2267
JavaNIO增加了新的SocketChannel、ServerSocketChannel等類來提供對構建高性能的服務端程序的支持。SocketChannel、ServerSocketChannel能夠在非阻塞的模式下工作,它們都是selectable的類。在構建服務器或者中間件時,推薦使用JavaNIO。在傳統的網絡編程中,我們通常使用一個專用線程(Thread)來處理一個Socket連接,通過使用NIO,一個或者很少幾個Socket線程就可以處理成千上
系統 2019-08-29 22:36:57 2267
原文出處:http://blog.chenlb.com/2009/06/java-classloader-architecture.htmljvmclassLoaderarchitecture:BootstrapClassLoader/啟動類加載器主要負責jdk_home/lib目錄下的核心api或-Xbootclasspath選項指定的jar包裝入工作。ExtensionClassLoader/擴展類加載器主要負責jdk_home/lib/ext目錄下的
系統 2019-08-29 22:24:56 2265
JavaWeb開發技術大全——第02講配置Struts2在本講中主要介紹了Struts2的各種配置文件。在Struts2中,最重要的有三個配置文件:web.xml、struts.xml和struts.properties。其中web.xml和struts.xml文件是xml格式的,而struts.properties文件是key-value對形式的。在web.xml文件中可以安裝Struts2的過濾器類和設置過濾器參數。同時還可以配置Struts2常量,當
系統 2019-08-12 09:30:15 2265
“愿你出走半生,歸來仍學Python!”最近Python的slogan正在“變化”。原因是來自于PYPL官方發布2019年7月編程語言指數榜,Python連續半年奪冠,并且本月市場份額超高的28.08%。這簡直是遇神殺神,遇佛殺佛的滅霸節奏!不過,Python雖然在編程排行上力壓曾經的大佬Java,但其他方面可以嗎?能給程序員想要的嗎?So,Python真能給程序員想要的嗎?Python能給程序員想要的嗎?這個答案,9萬名開發者參與的調查報告給出了答案:作
系統 2019-09-27 17:55:06 2264
我有一個項目,我的工作區公告,沒問題,它可以運行正常,但我把項目copy還有一個工作空間,然后發布到tomcat(隨著tomcat,先前的工作空間removedeployment,公布信息)上去,想在還有一個工作空間去執行這個項目(為了統一管理)。結果adddeployment到tomcat上去沒有問題。也沒有出現異常信息,可是項目也沒有公布上去,細致看tomcat的啟動日志發現了一句“Skippedinstallingapplicationlistene
系統 2019-08-12 01:32:23 2264