如果用servlet和jsp做了一個小的Web項目,如果有人讓你再做一個類似的系統,會怎么辦?
大多數人會說,直接把現有的代碼復制一下。
如果有十個八個類似的項目呢?
那么可以把其中重復的東西抽取出來,形成可以復用的東西
比如說URL與業務代碼的映射,比如www.xxx.com?action=login ,在后臺的Servlet中階段,如果action為login,就把userName等從表單中提取出來,執行登錄代碼。
我們需要寫很多的if else才能支持不同的的業務邏輯
如果能把 url和java類直接映射起來就好了。
再比如數據驗證,登錄的時候用戶名或者密碼出問題,需要在瀏覽器端顯示錯誤信息,錯誤提示的字體、顏色、圖標、位置太難搞。
訪問數據庫也是大問題,寫很多的SQL只是為了把數據從數據庫中取出來,放到java對象里面取。
這里面需要注意很多的細節問題,比如關閉連接、處理異常。
如果把業務邏輯都寫到Servlet中去,中間還摻雜著頁面控制和跳轉,像意大利面條一樣。
其實你這些問題我們的前輩早就遇到了, 他們也苦苦探索, 不斷尋找好的實現方式, 找到以后就把各種經驗給固化下來, 稱為**最佳實踐**
比如在 Web 開發中 MVC,就是針對業務邏輯和頁面控制混在一起提出的解決辦法。 這個實踐會強烈的建議你把數據模型、頁面展示、頁面跳轉控制分開來寫, 防止攪成一團。”
再比如說利用XML或者Java 注解來描述URL與Java類之間的關系,只需要聲明一下,背后的操作就交給框架處理了。
還有就是Java對象和數據庫表的對應關系,只需要聲明一下,框架就可以幫你取出來,填充到Java對象里面去
框架就像一個模板, 里邊已經預置了一些公認的最佳實踐,我要是想用的話, 把我項目相關的東西填充進去就可以了
框架像個半成品, 是無法獨立運行的,必須由開發人員按照它定義的規則,把項目的代碼放置到指定的地方, 由框架整合起來,這才是一個完整的應用程序