9月末已把《社保欠費查詢系統(tǒng)》的需求肯定下來,10月份主要用于項目開發(fā)。
收獲1:"工作"和"學(xué)習(xí)"中還是有很大區(qū)分的
'工作'中講求'效力'。由于工期是固定的,所以必須要保證每天完成的任務(wù)量。而且有了經(jīng)理的監(jiān)工。
'學(xué)習(xí)'中倘若沒有嚴(yán)格的自我束縛和明確的目標(biāo),很難保證'高產(chǎn)',所以我們才有了'今目標(biāo)',才有了對應(yīng)的制度!
'工作'中講求:有問題不要1個人悶著解決!多問問他人,沒準(zhǔn)你花半天解決的問題,他人只需要兩分鐘的時間就能夠幫你解決問題。這樣釀成的后果就是:實現(xiàn)了功能,卻不工作原理。1旦出錯就會手忙腳亂,瞎調(diào)試。
'學(xué)習(xí)'中講求:遇到問題要獨立解決。要學(xué)會尋食,而不是等他人喂你。學(xué)習(xí)的是1種'自學(xué)能力'。
'工作'中講求:分工合作。1個人做1個功能點,做完了以后,拿出來說1講。以后我們就依照這個固定的方式進行開發(fā),節(jié)儉時間。這點充分辯明了:我們正處于1個'知識分享的時期',但是誰又能否定是1種'填鴨式的教學(xué)方式呢'?!
'學(xué)習(xí)'中講求:1個人的國度。所有功能都要自己逐一實現(xiàn)。
要知道'站在偉人的肩膀上'只是第1步,我們需要做的是在此基礎(chǔ)上用自己的大腦去消化知識,而不是1味的做個碼農(nóng)。
收獲2:每天的工作要有'目的性',按計劃行事
就在頭幾天被經(jīng)理批評"每天的任務(wù)模塊已給你規(guī)定好了,你需要做的是:'在規(guī)定的時間干規(guī)定的事!'別做那些沒用的事。"
在拿到1個新項目以后,首先要做的就是根據(jù)模塊進行分類,然后估算出每一個模塊的工作量,然后循序漸進的履行就行了,值得注意的是:前期的準(zhǔn)備工作,1定要'細',用流程圖來梳理思路。否則后期的開發(fā)進程中,會讓自己'繞死'的。
'學(xué)習(xí)'亦是如此,沒有明確的目標(biāo),再認真的學(xué)習(xí)態(tài)度也沒法抵達終點。
下面來講1下這個月的工作情況:
10.01⑴0.07:攻克:導(dǎo)入導(dǎo)出Excel、多表聯(lián)合查詢10.21⑴0.27:測試并完善系統(tǒng)中的BUG
收獲3:項目中的開發(fā)經(jīng)驗
1、JSP與Action之間傳參
1)JSP->Action
①Action中利用ModelDriven,直接使用'model.屬性'便可。
②Ajax異步回調(diào)通過url傳遞參數(shù),Action中通過request.getParameter獲得
③JSP中寫任1標(biāo)簽,Action中定義此標(biāo)簽的get、set方法后,直接取出
2)Action->JSP
①Ajax異步回調(diào),Action中對data進行賦值,JS中判斷
②Action把返回結(jié)果寫在值棧中,JSP中用隱含域獲得,JS彈出hidden中的結(jié)果
③Action中庸JOptionPane.showMessageDialog彈出返回結(jié)果。缺點:樣式太難看
2、原生SQL是弱項
1)分頁
由于項目中采取的是OA框架,只能對單表進行分頁。
在對多表進行聯(lián)合查詢的時候沒法套用公共方法,此時可以采取原生sql,傳遞兩個參數(shù)(起始頁)到達分頁效果;或利用hibernate兩個參數(shù)進行分頁setFirstResult(20)設(shè)置起始行、q.setMaxResults(10)每頁條數(shù) ,到達分頁效果。
同時要注意'分頁風(fēng)格要統(tǒng)1'。
2)查詢
如果是復(fù)雜的業(yè)務(wù)查詢(如:包括行轉(zhuǎn)列),這里提供兩種思路:
①寫原生SQL,復(fù)雜的邏輯轉(zhuǎn)到DAO層控制,返回List<Object>,頁面中庸struts2標(biāo)簽直接循環(huán)便可。
需要提示的是:不要局限于只有'實體'中的記錄才可以被迭代出!
②通過hibernate配置文件可以到達以下效果:只需要查詢主表,從表的記錄會自動被關(guān)聯(lián)查出。然后新建 1個專門用于界面顯示的實體E,把List<Object>中的記錄逐一放在該實體E對應(yīng)的屬性中。后界面中循環(huán)顯 示
比較而言,①需要扎實的SQL基本功,Action和頁面中的代碼更簡單1些;而②中Action不單單用于轉(zhuǎn)發(fā),不免有些背背了設(shè)計的初衷。(這里的'循環(huán)顯示'指的是利用struts2標(biāo)簽的Iterator迭代。)
3、上傳Excel
步驟:先把本地File文件上傳至Tomcathttp://www.jyygyx.com/server/,后從Tomcat中讀取文件流,上傳到http://www.jyygyx.com/db/。
思路:
①http://www.jyygyx.com/db/中保存的是:Excel中的記錄
②http://www.jyygyx.com/db/中保存:Excel文件路徑和名稱+http://www.jyygyx.com/server/保存文件副本
解決緩存問題:MyEclipse中project->clean。
4、驗證碼
本質(zhì)都是利用'隨機數(shù)',兩種:
1)文本框驗證碼
特點:代碼簡單,直接在JS中判斷驗證碼的正確性,無需傳遞至Action中
缺點:由于驗證碼的本質(zhì)是text,缺少安全性
2)圖片驗證碼
特點:將自動生成的驗證碼寄存在Session中,后在Action中進行判斷。
優(yōu)點:安全性
5、JS和CSS調(diào)試
JS調(diào)試主要利用:Firebug工具。
技能:少->多 , 添加'斷點' ,視察'監(jiān)控'中的參數(shù)變化 , 控制臺的毛病信息。
最重要的還是兩點:仔細+耐心。相信1句話:孰能生巧。
6、Hibernate的映照文件技能
1對1、1對多、多對1、多對多的映照關(guān)系中配置文件的技能
將在以后的文章中進行總結(jié)。
7、安全控制,控制Action的訪問權(quán)限
兩種:
1)在'攔截器'中配置
若系統(tǒng)比較小,可使用。
2)在'http://www.jyygyx.com/db/'中讀取
若系統(tǒng)比較大,推薦使用。還要有1個'權(quán)限系統(tǒng)'。