再次回顧了 formbean bo
actionservlet----------->action--------->manager-->dao-->db的呼叫流程式
以使用者登入為例,讓大家必須能自己把這個流程和其中的細節說出來,包括如何判斷使用者登入資訊是否正確的細節。
接著詳細為大家講解cookie的有關細節知識:
cookie相當於伺服器給客戶端的變數。
假設所有人的聲音一樣,伺服器接到連續接到幾個**,他能識別出這些**是來自同乙個人的,還是多個人的嗎?不要考慮來電顯示。通過cookie可以讓web伺服器識別出是哪乙個瀏覽器發出的請求資訊。
cookie的細節與高階應用:如果實現單點登陸多個**、如果讓session跨多個應用程式
專案練習:如何用cookie實現自動顯示上次的登陸使用者名稱:顯示登陸框和處理登陸請求用同乙個jsp頁面。
最後點評了一些學員完成的作業,發現問題比較突出:一些學員現在能夠應用起spring,hibernate等完成一些用例,表面上看,程式的功能都可以實現,並且是使用了這些流行的所謂高階開發人員使用的框架,但是,檢查他們的程式**,真是非常糟糕,程式邏輯混亂,很多細節都顯得非常幼稚可笑,讓人讀得頭疼。例如,喜歡自作聰明,多次重複使用乙個變數,以便達到用較少變數的定義來表達多個資訊。我鄭重告誡他們:「乙個變數只去代表一種資訊,不要讓它身兼數職,否則,程式邏輯就容易混難,難以讓人理解!」
另外,他們對如何復用程式**,基本上還沒有概念,例如,如果使用者登陸成功跳轉到success.jsp頁面,如果使用者登陸失敗則跳轉至failure.jsp頁面,他們編寫的**如下:
if(blogin)
else
這是一種非常直接的,象寫流水帳一樣的思維,並且編譯還報告錯誤,我建議他們進行如下修改:
string forwardpath = "failure.jsp";
if(blogin)
requestdispatcher rd = request.getrequestdispatcher(forwardpath);
rd.forward(request,response);
我的**思維很簡單,先編寫好一種執行流程,然後再想想其他的流程怎樣合理地巢狀到原來的執行流程中,無非常是通過增加一些**修改一些變數值而已,這樣就達到了執行效果的多樣性。而學員習慣每個流程用一段單獨的**來處理,然後用if...else把**這一段段**組合起來。
其實,類似這樣的編碼技巧,我以前也講過,只是學員們沒有自己去感受,沒有產生刻骨銘心的感受,所以,印象不深,聽的時候覺得是這麼回事,但過後就忘了。
對於稍微複雜一點的程式邏輯,他們的處理**就更是混亂了,例如,我前幾天讓他們做的:對於這樣的乙個字符號串:"----***----bbbbbb----ccccc----",其中用"----"分隔出了每一部分內容,請提取和列印出其中的每段內容,要求採用string.indexof和string.substring方法,一些學員做得就很不理想。
我以後的乙個重要任務就是多看學員們寫的**,多指正他們的不足,這樣才能讓他們真正成為「精英」人才,而不是簡單地掌握了那麼多流行的框架技術。
myeclipse能夠實現xml文件的dtd校驗
10月27日培訓日記
再次回顧了 formbean bo actionservlet action manager dao db的呼叫流程式 以使用者登入為例,讓大家必須能自己把這個流程和其中的細節說出來,包括如何判斷使用者登入資訊是否正確的細節。接著詳細為大家講解cookie的有關細節知識 cookie相當於伺服器給客...
10月25日培訓日記
今天覆習了一下阿捷去年的css講課資料,講解了xhtml的一些基本語法。我想到了以後可以參照這個例子來講解css的盒模型。pppppp 問題 width和height是否包含margin的空間呢?通過修改css的屬性,再重新整理瀏覽器,立即看到修改後的效果。為達到最佳演示效果,調整瀏覽器視窗大小,讓...
10月16日培訓日記
講解了requestdispatcher.forward方法實現請求跳轉,其常見於mvc模式的web開發中。通過乙個情景故事講解了什麼是mvc模式和mvc模式的好處,servlet完全業務處理,jsp完成頁面顯示,servlet將jsp顯示時要用到的資料放在哪呢?servlet處理完成後通過什麼樣的...