Java Web(九) 使用者管理系統

一杯涼茶發表於2017-02-25

     前面學習了一大堆,什麼JSP,Servlet、jstl、el等等等,大多是一些死的東西,只要會其語法,知道怎麼用就行了,所以做了一個小小的只有增刪改查的小demo,為的就是熟悉這些知識。靈活運用起來。最主要是的開發思想,技術就那麼一些,拿到demo需求後,我們該如何下手去做,怎麼想,怎麼開發的呢?我把我自己寫該demo時的思路記錄下來。

                                  --WH

 

一、需求分析

    講過一點,這個非常的簡單,就增刪改查的運用,

      註冊、登入、查詢所有使用者、查詢詳情、修改、刪除

    有兩個許可權,

          一個許可權是管理員許可權,登入進系統後,就能看到所有使用者的資訊並且能夠對所有使用者的資訊加以修改,刪除等操作。

          另一個是普通使用者許可權,登入進系統,只能看到自己的相關資訊,並且可以修改自己的資訊(密碼等)

    

    主頁面模組

        首先進入的就是主頁面模組,會進行判斷,看使用者是否登入(檢視cookie中是否有使用者的帳號和密碼的資訊存在,如果有,則直接用該帳號密碼進行登入,如果沒有則什麼都資料都不顯示)

        管理員登入進去後看到所有使用者資訊,能夠對其任意使用者點選進行詳細資訊的檢視,並且能夠修改,刪除使用者,並且能夠有註冊功能

        普通使用者登入進主頁面,只能檢視自己的相關資訊。能進行修改資訊操作。但是沒有註冊和刪除使用者的功能。

    登入模組,

        登入會對其進行判斷是否是管理員還是普通使用者,並且有記住密碼的功能,點選了記住密碼,那麼在下次訪問主頁面時,就已經登入過了,使用cookie記住帳號密碼的功能。

        編寫帳號密碼時會進行校驗(校驗帳號密碼格式是否合格,這個沒做了,有興趣可以去做做)

        登入模組做的事情很簡單,判斷帳號密碼是否正確,如果正確,那麼將跳轉到主頁面,並將使用者資訊儲存到session中,判斷是否記住了密碼,如果記住了密碼,那麼就應該將帳號密碼儲存到cookie中。判斷是否是管理員還是使用者。

 

    註冊模組

        這個只有管理員才有許可權做這個事情,註冊模組,很簡單,就是增加使用者的操作,只是在註冊填寫資訊的時候,需要做資料校驗,限制使用者輸入一些非法資料,我沒做,有閒情的人可以去做做。

    

        

 

 

二、技術分析

    三層架構思想

    JSP(jstl、el)

    Servlet(request、response、session/cookie)

    javabean

    JDBC

    MySql

 

三、編寫思路

    1、先將所有的包結構寫出來,大體看起來就是三層架構思想。需要導的mysql的jar包也匯入進去

            

    2、從dao開始編寫,

        成功連線mysql資料庫

        將常用的增刪改查方法寫出來並測試成功

    3、編寫service層

        由於此demo太過簡單,沒有什麼業務邏輯,所以這service層,其實也就是呼叫一下dao層的增刪改查方法。

    4、編寫web層,一個模組一個模組編寫

        主頁模組

            使用者沒登陸,顯示如圖所示。左上角會顯示請登入和主頁兩個超連結,主頁是回到主頁面,請登入就是跳到登入頁面

               

            普通使用者登入後,主頁顯示如圖所示,自己本身的資訊會用紅色字型標識,並且許可權只能是檢視自己的詳細資訊和修改一些資訊。左上角,會顯示自己的名字,還有登出的功能,登出就是將該使用者下線,使用別的帳號進行登入的操作,            

                

            管理員登入後,主頁顯示如圖所示,管理員能看到所有使用者的資訊,並且能對他們進行修改,刪除操作,而對自己並沒有刪除操作。而且,管理員會有註冊使用者的功能。                 

      

        註冊模組

             這個很簡單,但是缺陷就是沒有資料校驗的功能,只能填寫正確的資訊,比如不填寫某項資訊,也不出現什麼提示資訊。這個非常不好。並且後臺會報異常。

                

        登入模組

            這個其實就一個技術,記住密碼這裡,使用了cookie技術。將帳號密碼儲存到了cookie上。登入之後就跳轉到了主頁面顯示資訊了。

              

 

       查詢模組

           這個就做一個查詢使用者的詳細資訊,如果可以的話,自己可以進行擴充套件,比如通過使用者名稱將該使用者名稱的資訊查詢出來。使用模糊查詢,等等都可以,這裡就是最簡單的。

              

 

       修改

            

      刪除就直接刪除掉了。。

      

        

      

 

四、總結

     這個小的使用者管理,花了我一天的時間,完全自己獨立寫的,其實如果熟悉業務流程,根本花不了那麼長的時間,估計只需要2個小時不到就可以寫出來了,雖然只有增刪改查幾個功能,但是對於新手來說,通過這個來讓自己更加熟練的掌握學習到知識還是不錯的,用到了很多基礎的東西。比如前端顯示頁面中,標籤、el的使用,並且將資料放到session域中,通過el表示式去拿到我們想要的資料,比如在後臺,使用cookie儲存帳號和密碼,比如,請求轉發和重定向的使用,比如request域傳值,比如,request獲取請求引數,比如,前端頁面的一些css的使用,比如連線資料庫的操作,對資料庫進行增刪改查的操作,原生的,最古老的寫法。真的是非常累,全是重複性程式碼,但是會知道prepareStatement和Statement的區別是什麼,為什麼使用prepareStatement而不是Statement呢。最重要的收穫是,大大小小的流程讓我非常亂,在寫主頁面時,因為有幾個頁面都會跳轉到主頁面來,比如登入頁面,登陸完就會跳到主頁面來,比如我們直接訪問,也會到主頁面來,那麼這兩個就不同了,直接訪問到主頁面,就要進行cookie中是否用資訊的判斷,而登入完到主頁面,要判斷帳號密碼是否正確,是不是管理員,該顯示多少資料,等等一大堆,我全寫在一個LoginServlet中了,導致其中的程式碼量非常龐大,估計也就只有我能看得懂,哈哈~但是功能流程大概是完成了。能跑起來,達到了預期的效果,唯一不足的就是太亂了,對於流程還不是很清楚,到後面我相信會越來越熟練,寫一個登入模組,應該需要哪些功能,進行哪些判斷,這些都應該是熟能生巧的事。好好加油把。

    專案的原始碼放在下面

        http://pan.baidu.com/s/1kVNp4zX    密碼: 3ocx 

  

 

 

 

 

相關文章