一種Web系統生成的方法和裝置與流程
2023-06-05 04:58:56 2
本申請涉及Web系統的技術領域,特別是涉及一種Web系統生成的方法和一種Web系統生成的裝置。
背景技術:
Web系統是以Internet為基礎,提供WWW服務的各種組件的集合。這些組件包括客戶端/瀏覽器、Web伺服器與Web文檔、應用伺服器與Web應用程式、各種相關的協議和標準等。Web技術的發展,使得應用系統的開發更方便、功能更強大,在系統的開發過程中,Web技術起了一個骨架式的支持作用;與此同時,組件技術的發展為系統的開放性、集成性提供了便利,有效合理地引入組件技術是當前Web系統開發與發展的一個方向;充分利用Web技術與組件技術,提高Web系統的開發效率,以及,Web系統的可靠性和可維護性,是每個Web系統開發人員所關心的問題。目前,從無到有的搭建一套Web系統的成本是非常大的,因為Web系統開發人員除了需要完成複雜的業務需求之外,還需要關注各種與業務無關的系統架構,比如:技術框架整合,系統性能調優,界面原型設計,用戶權限體系設計等,而且在實際中,一套Web系統的開發需要在比較有限的時間內完成,現有的Web系統搭建方式顯然過於費時費力。因此,目前需要本領域技術人員迫切解決的一個技術問題就是:提出一種全新的Web系統生成機制,用以簡化Web系統的搭建過程,提高Web系統的開發效率,並提高Web系統的擴展性、可靠性和可維護性。
技術實現要素:
本申請的目的是提供一種Web系統生成方法和裝置,用以簡化Web系統的搭建過程,提高Web系統的開發效率,並提高Web系統的擴展性、可靠性和可維護性。為了解決上述問題,本申請公開了一種Web系統生成方法,包括:預置Web系統的通用組件資源;獲得按預設規則生成的業務組件資源;攔截用戶提交的資源獲取請求,驗證該用戶是否具有訪問權限;若有,則加載所述用戶的訪問權限對應的通用組件資源以及業務組件資源。優選的,所述攔截用戶提交的資源獲取請求,驗證該用戶是否具有訪問權限的步驟包括:在用戶登錄時加載該用戶具有的角色和權限,其中,所述角色為一個或多個,每個角色對應多個權限;攔截用戶訪問資源的URL請求,依據該請求提取該資源對應的權限,將所述資源對應的權限與用戶對應角色中的權限進行比對,若存在,則判定該用戶具有訪問權限。優選的,所述按預設規則生成的業務組件資源為繼承抽象基類的派生類,其中,所述抽象基類定義了相應的抽象方法,所述派生類實現了所述抽象基類定義好的抽象方法,所述抽象方法為需要實現的業務邏輯。優選的,所述加載所述用戶的訪問權限對應的通用組件資源以及業務組件資源的步驟包括:調用所述用戶所請求資源的派生類所繼承的抽象基類;調用所述抽象基類中定義的抽象方法;進入所述派生類調用實現所述抽象方法的業務邏輯;執行所述業務邏輯,返回相應的輸出。優選的,所述加載所述用戶的訪問權限對應的通用組件資源以及業務組件資源的步驟還包括:在所述調用抽象基類中定義的抽象方法的子步驟之前,在所述抽象基類中進行變量賦值的預校驗處理;在所述執行業務邏輯的子步驟之後,返回所述抽象基類中進行變量賦值的後校驗處理。優選的,所述資源包括菜單和/或頁面。本申請實施例還公開了一種Web系統生成裝置,包括:通用組件預置模塊,用於預置Web系統的通用組件資源;業務組件獲取模塊,用於獲得按預設規則生成的業務組件資源;用戶權限驗證模塊,用於攔截用戶提交的資源獲取請求,驗證該用戶是否具有訪問權限;資源加載模塊,用於在用戶具有訪問權限時,加載所述用戶的訪問權限對應的通用組件資源以及業務組件資源。優選的,所述用戶權限驗證模塊包括:用戶角色權限獲取子模塊,用於在用戶登錄時加載該用戶具有的角色和權限,其中,所述角色為一個或多個,每個角色對應多個權限;驗證子模塊,用於攔截用戶訪問資源的URL請求,依據該請求提取該資源對應的權限,將所述資源對應的權限與用戶對應角色中的權限進行比對,若存在,則判定該用戶具有訪問權限。優選的,所述按預設規則生成的業務組件資源為繼承抽象基類的派生類,其中,所述抽象基類定義了相應的抽象方法,所述派生類實現了所述抽象基類定義好的抽象方法,所述抽象方法為需要實現的業務邏輯。優選的,所述資源加載模塊包括:基類調用子模塊,用於調用所述用戶所請求資源的派生類所繼承的抽象基類;抽象方法調用子模塊,用於調用所述抽象基類中定義的抽象方法;派生類調用子模塊,用於進入所述派生類調用實現所述抽象方法的業務邏輯;業務執行子模塊,用於執行所述業務邏輯,返回相應的輸出。與現有技術相比,本申請包括以下優點:本申請通過加載實現該Web系統開發框架的jar包及相關的配置文件到運行環境,並用ApacheTomcat,Jetty,Jboss等JavaEE容器來部署,即可搭建起一套WEB應用系統,包括默認的界面設計,用戶權限認證體系及用戶管理模塊的實現等,開發人員只需要專注於業務需求的開發,按照框架的約定規範進行開發工作,快速簡易,並且可擴展不同的展現方式。從而簡化了Web系統的搭建過程,提高了Web系統的開發效率,並提高了Web系統的擴展性、可靠性和可維護性。附圖說明圖1是本申請的一種Web系統生成方法實施例的步驟流程圖;圖2是本申請的一種示例中用戶管理模塊的界面示意圖;圖3是本申請的一種示例中Web系統開發框架默認的界面布局示意圖;圖4是圖2所示用戶管理模塊的派生類與基類之間交互關係的示意圖;圖5是本申請的一種示例中新建用戶操作成功後的頁面展示圖;圖6是本申請的一種示例中搜索關聯的類定義的示意圖;圖7是本申請的一種示例中用戶模塊業務控制層(Action)的派生類UserAction的搜索,分頁及列表數據部分的代碼的示意圖;圖8是本申請的一種示例中第一個業務場景實現後的效果示意圖;圖9是本申請的一種示例中第一個業務場景的請求交互方式的示意圖;圖10是本申請的一種示例中第二個業務場景實現後的效果示意圖;圖11是本申請的一種示例中第三個業務場景實現後的效果示意圖;圖12是本申請的一種示例中第三個業務場景的請求交互方式的示意圖;圖13是本申請的一種示例中第四個業務場景實現後的效果示意圖;圖14是本申請的一種示例中第四個業務場景的請求交互方式的示意圖;圖15是本申請的上述四個業務場景中3個抽象基類的類圖;圖16是本申請的一種示例中自定義頁面的開發框架實現方式的示意圖;圖17是本申請的一種示例中整合Flex框架的實現方式的示意圖;圖18是本申請的一種Web系統生成裝置實施例的結構框圖。具體實施方式為使本申請的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本申請作進一步詳細的說明。目前各企業普遍存在的難題是,對於一個新的項目,需要有一個新的業務系統來支撐,但業務系統需要時間和人力來進行開發,常常這兩點也都比較有限,而且除了完成複雜的業務需求之外,還需要關注各種與業務無關的系統架構,比如:技術框架整合,系統性能調優,界面原型設計,用戶權限體系設計等。如果有一套已有的簡便快速的WEB系統開發框架,完成了除自身業務需求之外的所有事情,開發人員只需要關注業務邏輯的實現,能夠快速地開發出一個業務系統,在時間和人力有限的情況下,更能體現出該框架的價值所在。對此,本專利發明人創造性地提出申請實施例的核心構思之一在於,通過加載實現該Web系統開發框架的jar包及相關的配置文件到運行環境,並用ApacheTomcat,Jetty,Jboss等JavaEE容器來部署,即可搭建起一套WEB應用系統,包括默認的界面設計,用戶權限認證體系及用戶管理模塊的實現等,開發人員只需要專注於業務需求的開發,按照框架的約定規範進行開發工作,快速簡易,並且可擴展不同的展現方式。參照圖1,示出了本申請的一種Web系統生成方法實施例的步驟流程圖,具體可以包括如下步驟:步驟101、預置Web系統的通用組件資源;步驟102、獲得按預設規則生成的業務組件資源;步驟103、攔截用戶提交的資源獲取請求,驗證該用戶是否具有訪問權限;步驟104、若有,則加載所述用戶的訪問權限對應的通用組件資源以及業務組件資源。在本申請實施例中,WEB系統的搭建是指業務系統利用該WEB系統開發框架,包括框架的jar包和與該框架相關的配置、Javascript、CSS、頁面等信息,並用ApacheTomcat等JavaEE容器部署起來後,用戶可以看到完整的界面信息及進行相應的界面操作。具體而言,本申請的WEB系統開發框架包含的所有開發完成的功能都可以看作是通用功能(通用組件資源),如果業務系統有新的需求,需要開發新的組件(業務組件資源)來支持,框架將針對新需求開發出新組件融進到新版本的框架上,業務系統只需要升級到新版本的框架,就可以使用新組件了,這樣就實現了框架的組件可擴展,當然框架也是可擴展的,比如可自定義頁面,也可以用flex等其他技術來實現業務。在本申請的一種優選實施例中,所述步驟103具體可以包括如下子步驟:子步驟S11、在用戶登錄時加載該用戶具有的角色和權限,其中,所述角色為一個或多個,每個角色對應多個權限;子步驟S12、攔截用戶訪問資源的URL請求,依據該請求提取該資源對應的權限,將所述資源對應的權限與用戶對應角色中的權限進行比對,若存在,則判定該用戶具有訪問權限。在具體實現中,所述按預設規則生成的業務組件資源可以為繼承抽象基類的派生類,其中,所述抽象基類定義了相應的抽象方法,所述派生類實現了所述抽象基類定義好的抽象方法,所述抽象方法為需要實現的業務邏輯。在這種情況下,所述加載所述用戶的訪問權限對應的通用組件資源以及業務組件資源的步驟具體可以包括如下子步驟:子步驟S21、調用所述用戶所請求資源的派生類所繼承的抽象基類;子步驟S22、調用所述抽象基類中定義的抽象方法;子步驟S23、進入所述派生類調用實現所述抽象方法的業務邏輯;子步驟S24、執行所述業務邏輯,返回相應的輸出。應用本申請實施例,用戶可以及通過約定好的URL請求業務系統的資源(菜單和/或頁面),首先會被WEB系統開發框架裡的權限驗證類方法所攔截,驗證該用戶是否有權限訪問;如果有權限訪問,就會被要訪問的資源類所繼承的框架裡已定義的抽象基類攔截,進行變量賦值等預校驗處理後,再調用抽象基類裡定義的抽象方法;抽象方法需要由資源類裡對應該抽象方法的實現方法來完成具體的業務邏輯,相當於調用抽象基類的抽象方法就會進入派生類裡的實現方法;派生類的實現方法完成,即執行完具體的業務邏輯後會接著返回抽象基類的實現方法進行變量賦值等後校驗處理,最後返回約定的頁面或者相應的輸出。為使本領域技術人員更好地理解本申請,以下通過一個應用本申請實施例生成Web系統的示例進一步說明本申請。參考圖2所示的用戶管理模塊的界面示意圖,假設本申請的WEB系統開發框架默認的用戶管理模塊包括用戶,部門,公司,角色,權限,資源六個子模塊。參考圖3所示的Web系統開發框架默認的界面布局示意圖,本申請的Web系統開發框架的界面布局可以分為:一級菜單,二級菜單,分組菜單,三級菜單,右擊菜單,搜索欄,分頁控制項,數據列表。上述每個組成部分之間存在相互聯動的關係,例如,在本框架中可作如下約定:一級菜單聯動二級菜單,二級菜單聯動分組菜單,分組菜單聯動三級菜單,列表標題和數據及分頁控制項,列表數據聯動右擊菜單,其中,右擊菜單和三級菜單達到的效果相同,只是不同的展現方式,以上就是開發框架的界面布局和菜單聯動關係。每個菜單相當於一個權限,都有對應的URL(Uniform/UniversalResourceLocator,統一資源定位符)。可以通過設置不同的角色,每個角色擁有其相對應的多個權限,並給用戶分配對應的一個或多個角色。系統啟動時,會加載所有的角色碼及其對應的權限碼。用戶登錄系統時,會加載其具有的角色及權限。用戶訪問菜單時,菜單對應的URL請求會被攔截,按約定得到處理後的權限碼,同時可知擁有該權限的角色,與登錄用戶所具有的角色進行比對,便可判斷是否允許該用戶被訪問,這就是本申請的Web系統開發框架的用戶權限控制體系。本申請實施例在具體實現上定義了多個抽象基類。每個抽象基類都定義了相應的抽象方法。各業務模塊的派生類繼承抽象基類,並且需要實現基類定義好的抽象方法。這些抽象方法就是各業務模塊需要實現的具體業務邏輯,從而達到架構與業務分離的目的。具體可以參照圖4所示的圖2所示用戶管理模塊的派生類與基類之間交互關係的示意圖,需要特別關注的是,圖4中箭頭線為一個交互請求的發起,左邊的長方框為派生類需要實現的基類定義的抽象方法,並返回相應結果給基類,最後由基類返回對應的資源(菜單和/或頁面):1)用戶成功登錄系統後,先獲取可訪問的一級菜單(用戶管理),默認選中第一個可聯動出可訪問的二級菜單(用戶,角色,權限,資源),這部分由本申請的開發框架根據給用戶配置的角色對應的權限,自動實現頁面展現;2)接下來定義派生類UserAction來完成業務邏輯的實現,其繼承自基類LeftListAction,點擊『用戶』菜單相當於請求基類left方法,返回共用頁面left.jsp,並展示分組菜單(已啟動用戶,待審核用戶);3)默認選中第一個分組菜單(已啟動用戶)後,請求基類thirdmenu方法返回共用頁面thridmenu.jsp,並展示三級菜單(新建用戶,修改用戶,查看用戶,刪除用戶,密碼重置);4)同時請求基類search方法,該方法內調用抽象方法loadSearchList,參數condition相當於『已啟動用戶』的標識,交由派生類根據condition分別實現各分組具有的搜索條件,由基類返回共用頁面search.jsp展示;5)同時請求基類list方法,該方法調用抽象方法loadListSupport,參數ListSupport是一個分頁控制項類,包含每頁條數,總條數,總頁數等,參數condition作用同search方法,交由派生類實現該方法,設置該分組的分頁信息,由基類返回共用頁面list.jsp及右擊菜單;6)同時請求基類data方法,該方法調用抽象方法loadListData,參數condition作用同search方法,參數pageNo和pageSize分別標明第幾頁和每頁條數,交由派生類實現該方法,返回該分組的pageNo頁的pageSize條數據,由基類返回默認頁面data.jsp,或修改pageName參數返回頁面pageName.jsp,選中數據後可右擊展示上一步加載完的右擊菜單;7)前6步已完成所有列表數據的加載,如果需要搜索特定數據,可以在搜索框裡輸入搜索條件,點擊搜索按鈕即可重複第5步和第6步操作;8)打開查看或操作頁面可通過點擊三級菜單或右擊菜單請求基類load方法,該方法調用抽象方法loadPage,參數pageName標識為哪個頁面,交由派生類根據pageName分別實現各自的業務邏輯,返回頁面pageName.jsp,比如新建用戶可定義pageName為create,返回的頁面為create.jsp;9)在上一步load方法得到的頁面上填寫完信息後,點擊提交後便請求基類submit方法,該方法調用submitPage抽象方法,參數pageName作用同load方法,交由派生類根據pageName分別實現各自的業務邏輯,返回頁面pageName.jsp,並刷新列表數據即重複第5步和第6步。這過程中如果需要彈出提示框或提示用戶錯誤的,可分別設置基類的pageMessage和pageError變量;如果操作成功會有默認的提示信息,可以通過設置基類的successMessage變...