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