国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP+Servlet培訓班作業管理系統[10] -通用CRUD后端設計

2019-11-06 07:00:14
字體:
來源:轉載
供稿:網友

PS:本篇講的是通用CRUD后端設計,主要是設計的想法,跟代碼不相關,故可跳過本篇直接看下一篇代碼實現。

在登錄功能實現之后,貓哥定睛一看,剩下的好像絕大部分工作都是CRUD。也就是對一些事物的增、刪、改、查。

比如人員管理功能,無非就是查看人員(查)、修改人員信息(改)、新增人員(增)、刪除人員(刪)。

而跟人員管理相關的網頁,其實有兩個就夠額,一個是userManage.jsp,提供人員列表和相關的修改、刪除、新增按鈕。然后是userUpdate.jsp,提供修改人員、新增人員并保存的界面。

那么整個問題,從邏輯上就抽取成了兩個問題,1個是頁面跳轉的問題,之前我們通過RouteCommand已經實現了,另一個就是增刪改查的問題,需要我們接受頁面參數之后判斷頁面請求的意圖(是新增、還是刪除),然后調用數據庫層的接口完成操作,最后跳轉到相應頁面即可。

有一種很簡單的做法,就是全部if判斷,對每一種操作定義一個Servlet,然后執行相關數據庫操作,然后跳轉相應頁面。

稍微復雜點的做法,就像我們之前的LoginServlet-LoginCommand 和 RouteServlet-RouteCommand一樣,負責一部分的功能:登錄、跳轉。

那么即然CRUD的工作都是類似的,那么能不能交給同樣的Servlet-Command模塊處理呢,貓哥嘗試之,并命名為ActionServlet-ActionCommand。

首先我們規范所有的跟CRUD請求相關的url寫法為/HomeworkSystem/AcitonServlet?method=XXX&entity=YYY&id=ZZZ。具體規則如下:

XXX:view查看列表、add新增、edit修改、save保存、delete刪除YYY:操作實體的名字,如User、RoleZZZ:相關實體的編號,如果沒有可以不寫,比如新增、查看列表的時候就沒有

OK,我們設計所有CRUD請求的實現邏輯如下(以人員管理為例):

1,查看點擊人員管理菜單,顯示人員列表和相應操作按鈕,請求為:/HomeworkSystem/AcitonServlet?method=view&entity=User處理為:request的Attribute里面添加人員列表變量entityList跳轉網頁為:userView.jsp,負責顯示人員列表(注意所有跳轉為內嵌跳轉,跳轉到的網頁顯示在index.jsp也右側內容區域)2,新增點擊新增,請求為:/HomeworkSystem/AcitonServlet?method=add&entity=User處理為:無跳轉網頁為:userUpdate.jsp3,信息修改點擊修改,請求為:/HomeworkSystem/AcitonServlet?method=edit&entity=User&id=123處理為:將id對應用戶信息放入request的Atrribute,名為entityEdit跳轉網頁為:userUpdate.jsp,需要加載待修改客戶信息4,保存新增/保存修改點擊保存,請求為:/HomeworkSystem/AcitonServlet?method=save&entity=User&id=123處理為:判斷id是否"",完成新增/修改的保存跳轉:直接調用1查看5,刪除點擊刪除,請求為:/HomeworkSystem/AcitonServlet?method=delete&entity=User&id=123處理為:刪除id對應用戶跳轉:直接調用1查看

OK,其實基本原則就一條,即然我們所有的實體對應的數據庫表,都要完成CRUD操作,而且規則一致。根據計算機編程“避免重復”的原則,即可嘗試簡化之,如果在簡化的過程中有問題,說明當初的設計就是有問題的,需要修改以便簡化順利完成。所以貓哥認為,大可不必為了設計而設計,修改不自然的設計是學習如何完善設計的好辦法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌恰县| 长乐市| 宁武县| 永寿县| 山丹县| 喜德县| 酒泉市| 金昌市| 聂拉木县| 刚察县| 临邑县| 江北区| 南澳县| 怀仁县| 沙雅县| 连城县| 肥城市| 和平县| 会东县| 十堰市| 中西区| 德庆县| 肇东市| 福鼎市| 黑山县| 方正县| 界首市| 金坛市| 色达县| 永寿县| 濮阳县| 陵水| 松原市| 托克逊县| 城固县| 石楼县| 喀喇沁旗| 河北省| 苍溪县| 安乡县| 长岭县|