公司開發(fā)的時(shí)候,基本上都會(huì)實(shí)現(xiàn)一些現(xiàn)成的框架,比如ssh啊,這樣的。之前寫小例子的時(shí)候,自己寫了一個(gè)由servlet+jdbc構(gòu)成的服務(wù)器端,現(xiàn)在說說里面遇到的問題
1,登錄后,想寫一個(gè)Util.getCurrentUser()方法來獲取當(dāng)前的登錄人員
一開始想當(dāng)然的就寫了,在Servlet的doPost方法中,直接獲取session里面的user對(duì)象,然后存到Util里面的一個(gè)靜態(tài)變量中,這樣,Util.getCurrentUser()就可以了。寫完以后,總覺得哪里不對(duì),直到并發(fā)的時(shí)候,發(fā)現(xiàn)身份串了。才發(fā)現(xiàn)這是一個(gè)錯(cuò)誤。
改過后,是這樣的
采用ThreadLocal,這樣就可以避免身份串掉了。代碼如下:

當(dāng)然細(xì)節(jié)還可以優(yōu)化的
2,數(shù)據(jù)庫操作,在經(jīng)歷了前面一個(gè)并發(fā)問題后,我發(fā)現(xiàn)我原來寫的數(shù)據(jù)庫操作,是不支持高并發(fā)的。于是我只是簡單的加了一個(gè)數(shù)據(jù)庫連接池~~~proxool
使用過程基本上很多人都介紹過了,我自己也記錄下
*準(zhǔn)備三個(gè)jar:proxool-cglib.jar,proxool-0.9.1.jar,commons-logging-1.2.jar導(dǎo)入項(xiàng)目
*WEB-INF文件夾下面增加proxool.xml文件,內(nèi)容如圖

proxool配置
*獲取數(shù)據(jù)庫連接的方法

沒了