freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

經(jīng)管學(xué)院學(xué)生干部簽到系統(tǒng)分析與設(shè)計(jì)本科畢業(yè)設(shè)計(jì)論文-資料下載頁

2025-06-27 21:58本頁面
  

【正文】 驗(yàn)證用戶身份的方法login() 。在驗(yàn)證用戶身份的方法 login()中,首先需要將接收到的表單信息強(qiáng)制轉(zhuǎn)換成UserForm 類型,并用獲得指定屬性的 get 方法和重新設(shè)置該屬性的 set 方法,然后調(diào)用UserDAO 類中的 login()方法把用戶登錄的信息與數(shù)據(jù)庫中的記錄進(jìn)行匹配。如果正確,將頁面重定向到系統(tǒng)主界面,否則將返回的錯(cuò)誤提示信息保存到 HttpServletRequest 的對(duì)象 error 中,并重定向頁面至錯(cuò)誤提示頁。登錄界面如圖 所示。西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)21圖 用戶登錄界面 物資審核入庫實(shí)現(xiàn)采購員提交的采購單的都會(huì)處于待審核狀態(tài),只有具有審核權(quán)限的用戶審核通過才能入庫,用戶登錄后,選擇“物資處理”→“審核入庫”命令,進(jìn)入到審核入庫頁面,在該頁面中將顯示全部未審核的采購單列表,單擊合格圖標(biāo) ,即可執(zhí)行審核合格操作,單擊不合格圖標(biāo) ,將進(jìn)行不合格處理。審核入庫頁面的運(yùn)行結(jié)果如圖 所示。西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)22圖 物資審核界面在審核入庫頁面中合格圖標(biāo)的超鏈接是:a href=?action=eligibleamp。id=%=id%/當(dāng)點(diǎn)擊合格圖標(biāo)時(shí), 配置文件根據(jù)servletmapping標(biāo)簽首先截取到,然后 Struts 容器找到 path=/instorage 的 action。從上面的超鏈接地址中可以知道 action 的參數(shù)值為eligible,根據(jù) type=標(biāo)簽,服務(wù)器會(huì)解析到Instorage 類中的 eligible()方法。在實(shí)現(xiàn)審核合格操作的方法 eligible()中,首先需要判斷用戶是否登錄,如果沒登錄則跳轉(zhuǎn)到登錄頁面強(qiáng)制其登錄,以提高系統(tǒng)的安全性,然后通過 JSP 的內(nèi)置對(duì)象(id)獲取從頁面中傳遞過來的采購單編號(hào),該采購單編號(hào)作為InstorageDAO 類中 eligibleAdd()方法的參數(shù),實(shí)現(xiàn)審核合格操作,Struts 容器根據(jù)執(zhí)行結(jié)果轉(zhuǎn)到相應(yīng)的頁面。eligibleAdd()方法主要分為以下 3 個(gè)步驟。首先,將審核合格入庫信息保存到入庫表 tb_instorage 中。然后,獲取入庫表中最大的自動(dòng)編號(hào),與入庫的首寫字母“RK”和系統(tǒng)日期組合成西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)23“RKYYYYMM DDnnnnn”格式的入庫單號(hào),并插入到入庫表中,并將采購單主表(tb_stock_main)中采購單號(hào)等于頁面?zhèn)鬟f過來的采購單號(hào)的記錄的 state 字段的值修改為1(表示已入庫) 。最后, 修改庫存信息表。如果在執(zhí)行過程中不拋出異常,則將標(biāo)志變量賦值為 1,否則將標(biāo)志變量賦值為 0(表示未審核) ,最后返回該標(biāo)志變量。eligibleAdd()方法的具體代碼見附錄 B(1) 。當(dāng)審核人員點(diǎn)擊采購單編號(hào),可以顯示采購單的詳細(xì)信息,如圖 所示。審核人員可以根據(jù)參考最低價(jià)來決定是否審核通過。參考最低價(jià)是采購歷史記錄的同類產(chǎn)品的最低價(jià)格,此項(xiàng)功能由后臺(tái)數(shù)據(jù)庫采用觸發(fā)器實(shí)現(xiàn)。代碼如下:CREATE TRIGGER get_min_price_tri ON [dbo].[tb_stock_detail] FOR INSERT,updateASBEGINset nocount on。開啟 nocountUPDATE SET min_price=(select min() from tb , Inserted i where = group by )from s,Inserted twhere =。set nocount off。關(guān)閉 nocountEND西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)24圖 審核單詳細(xì)信息界面 用戶權(quán)限管理實(shí)現(xiàn)具有用戶管理權(quán)限的用戶登錄后,選擇“系統(tǒng)管理/用戶管理”菜單,進(jìn)入到查看用戶列表頁面,本系統(tǒng)采取統(tǒng)一的分頁處理,每頁顯示 7 條記錄,并按 tb_user 表中的 ID字段進(jìn)行升序排列。在該頁面中單擊想要設(shè)置權(quán)限的用戶信息后面的“修改”超級(jí)鏈接即可進(jìn)入到“修改用戶權(quán)限”頁面設(shè)置該用戶的權(quán)限。用戶管理頁面的運(yùn)行結(jié)果如圖 所示。西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)25圖 用戶管理界面在用戶管理界面中修改用戶權(quán)限的超鏈接代碼是a href=?action=userMQueryamp。id=%=id%修改/a從上面的 URL 中可以知道修改用戶權(quán)限頁面所涉及到的 action 的參數(shù)值為“userMQuery”,當(dāng)用戶點(diǎn)擊 “修改”時(shí),Struts 容器會(huì)調(diào)用查詢指定用戶權(quán)限信息的方法 userQModify()。在查詢指定用戶權(quán)限信息的方法 userQModify()中,首先通過 JSP 內(nèi)置對(duì)象(id)獲取從頁面中傳遞的參數(shù) id(用戶編號(hào)) 。然后調(diào)用 UserDAO 類中的 query()方法,并將變量 id 作為該方法的參數(shù),查詢出指定用戶權(quán)限信息,再將返回的查詢結(jié)果保存到 HttpServlet Request 的對(duì)象 userList 中。在 query()方法中將利用 Session 的 get()方法查詢出指定用戶,然后將查詢結(jié)果保存到UserForm 中,并返回 UserForm。接下來的工作是將 userQModify()方法返回的查詢結(jié)果顯示在修改用戶權(quán)限頁 中。在 中首先通過 ()方法獲取查詢結(jié)果并將其顯示在相應(yīng)的表單元素中。在修改用戶權(quán)限頁面中設(shè)置權(quán)限后,單擊“保存”按鈕,網(wǎng)頁會(huì)訪問一個(gè) URL,這個(gè) URL 是“?action=userModify” 。Struts 容器根據(jù) URL 地址中調(diào)用保存修改用戶權(quán)限信息的方法 managerModify()。在保存修改用戶權(quán)限信息的方法 userModify()中,首先將從表單中獲得的信息通過JavaBean 屬性的 get 和 set 方法強(qiáng)制轉(zhuǎn)換成 UserForm 類型,然后調(diào)用 UserDAO 類中的西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)26Modify()方法將修改的用戶權(quán)限信息保存到用戶信息表 tb_user,并將返回值保存到變量rtn 中,如果返回值為 1,表示信息設(shè)置成功,然后 Struts 將頁面重定向到設(shè)置信息成功頁面,否則將錯(cuò)誤提示信息“修改用戶權(quán)限信息失??!”保存到 HttpServletRequest 的對(duì)象error 中,然后將頁面重定向到錯(cuò)誤提示信息頁面。修改用戶權(quán)限運(yùn)行界面如圖 所示。 Modify()方法的具體代碼見附錄 B(2)。 圖 用戶權(quán)限修改界面由于篇幅所限,其他功能模塊的實(shí)現(xiàn)過程在本文不一一列出。 關(guān)鍵技術(shù)介紹 介紹Struts 是 Apache 基金會(huì) Jakarta 項(xiàng)目組的一個(gè) Open Source 項(xiàng)目,它采用 MVC 模式,能夠很好地幫助 java 開發(fā)者利用 J2EE 開發(fā) Web 應(yīng)用。和其他的 java 架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將 MVC 模式 分離顯示邏輯和業(yè)務(wù)邏輯 的能力發(fā)揮得淋漓盡致。Structs 框架的核心是一個(gè)彈性的控制層,基于如 Java Servlets JavaBeans,ResourceBundles 與 XML 等標(biāo)準(zhǔn)技術(shù),以及 Jakarta Commons 的一些類庫。Struts 有一組相互協(xié)作的類(組件) 、Serlvet 以及 jsp tag lib 組成。基于 struts 構(gòu)架的 web西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)27GettagDispatch Business LogicActionBusiness LogicActionUpdateHttp ResponseEventHttp RequestForwardControllerServletViewJSPViewJSP應(yīng)用程序基本上符合 JSP Model2 的設(shè)計(jì)標(biāo)準(zhǔn),可以說是一個(gè)傳統(tǒng) MVC 設(shè)計(jì)模式的一種變化類型?! VC 即 ModelViewController 的縮寫,是一種常用的設(shè)計(jì)模式。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化?!truts 是 MVC 的一種實(shí)現(xiàn),它將 Servlet 和 JSP 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。Struts 繼承了 MVC 的各項(xiàng)特性,并根據(jù) J2EE 的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。在 Struts 中 M 對(duì)應(yīng) ActionForm ,V 對(duì)應(yīng) jsp 頁面,C 對(duì)應(yīng) ActionServlet。對(duì)應(yīng)關(guān)系如圖 所示。View(視圖)Controller(控制)Model(模型)JSPActionServletletActionForm圖 Struts 實(shí)現(xiàn) MVCStruts 的體系結(jié)構(gòu)與工作原理如圖 所示。 圖 Struts 工作原理圖Struts 處理請(qǐng)求的詳細(xì)過程如下: ActionServlet,ActionServlet 根據(jù)請(qǐng)求的路徑和 struts 的配置信息找到對(duì)應(yīng)的 Action Bean 和 Form Bean 。 Action Bean 和 對(duì)應(yīng)的 Form Bean 后,就將請(qǐng)求中的值填充到Form Bean 中( Action 可以不關(guān)聯(lián)任何 ActionForm,這一步是可選的) 。在調(diào)用 Action的 execute 方法之前,ActionServlet 還要準(zhǔn)備好 ActionMapping 參數(shù),ActionMapping 中包含了該 Action 的配置信息。西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)28 struts 將請(qǐng)求分發(fā)至相應(yīng)的 ActionForm 處理, ActionMapping 參數(shù),ActionForm 參數(shù),request 和 response 都作為參數(shù)傳給處理請(qǐng)求的 ActionForm 的 execute 方法。 調(diào)用業(yè)務(wù)邏輯方法,得到返回值,并返回 ActionForward 對(duì)象。 ActionServlet ,ActionServlet 很據(jù) Action 返回的 ActionForward 對(duì)象轉(zhuǎn)發(fā)到相應(yīng)的 jsp。 介紹Hibernate 是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得 Java 程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用 JDBC 的場合,既可以在 Java 的客戶端程序使用,也可以在Servlet/JSP 的 Web 應(yīng)用中使用,最具革命意義的 Hibernate 可以在應(yīng)用 EJB 的 J2EE 架構(gòu)中取代 CMP,完成數(shù)據(jù)持久化的重任。Hibernate 的核心接口一共有 5 個(gè),分別為:Session、SessionFactory、Transaction、Query 和 Configuration。這 5 個(gè)核心接口在任何開發(fā)中都會(huì)用到(見圖 ) 。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這五個(gè)核心接口分別加以介紹 (見表 ) 。圖 Hibernate 核 心 接 口西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文)29表 Hibernate 接 口 描 述編號(hào) 接口名稱 接口功能描述1 Session 接口Session 接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的 CRUD 操作(CRUD 的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的 SQL 語句。)。但需要注意的是 Session 對(duì)象是非線程安全的。同時(shí),Hibernate 的 session 不同于 JSP 應(yīng)用中的 HttpSession。這里當(dāng)使用 session 這個(gè)術(shù)語時(shí),其實(shí)指的是 Hibernate 中的 session,而以后會(huì)將 HttpSesion 對(duì)象稱為用戶 session。2 SessionFactory 接口SessionFactory 接口負(fù)責(zé)初始化 Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建 Session 對(duì)象。這里用到了工廠模式。需要注意的是 SessionFactory 并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè) SessionFactory 就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí),可以為每個(gè)數(shù)據(jù)庫指定一個(gè) SessionFactory。3 Configuration 接口Configuration 接口負(fù)責(zé)配置并啟動(dòng) Hibernate,創(chuàng)建SessionFactory 對(duì)象。在 Hibernate 的啟動(dòng)的過程中,Configuration 類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建 SessionFactory 對(duì)象。4 Transaction 接口 Transaction 接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼。5 Query 和 Criteria 接口 Query 和 Criteria 接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL 語言或 SQL 語句兩種表達(dá)方式。5 系統(tǒng)測試305 系統(tǒng)測試 單元測試單元測試是在軟件開發(fā)過程中要進(jìn)行的最低級(jí)別的測試活動(dòng),在單元測試活動(dòng)中,軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測試,本系統(tǒng)從功能和數(shù)據(jù)準(zhǔn)確性兩方面來進(jìn)行單元測試。 如
點(diǎn)擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1