【正文】
...... 15 禮品兌換功能 ............................................... 15 用戶訂 /退功 能 .............................................. 16 本 科 畢 業(yè) 論 文 管理員功能的設(shè)計 ............................................. 17 管理員登錄功能 ............................................. 18 電影信息管理功能 ........................................... 18 用戶信息管理功能 ........................................... 19 禮品管理功能 ............................................... 21 主要界面設(shè)計 .................................................... 22 主頁設(shè)計 ................................................... 22 電影詳情頁面設(shè)計 ........................................... 23 關(guān)鍵問題及解決方案 .............................................. 23 5 系統(tǒng)的實現(xiàn) ....................................................... 27 系統(tǒng)開發(fā)以及運行環(huán)境 .............................................. 27 面向普通用戶的系統(tǒng)功能 ............................................ 27 系統(tǒng)主頁功能 ................................................ 27 用戶注冊 /登錄功能 ........................................... 28 查找電影功能 ............................................... 29 查看全部電影功能 ........................................... 29 查看電影排名功能 ............................................ 32 投票功能 ................................................... 32 面向管理員的系統(tǒng)功能 .............................................. 32 管理員主頁 ................................................. 32 電影信息管理功能 ........................................... 33 用戶信息管理功能 ........................................... 35 禮品管理功能 ............................................... 37 結(jié) 論 ............................................................ 39 致 謝 ............................................................ 40 參 考 文 獻(xiàn) ........................................................ 41 第 1 頁 共 45 頁 1 緒論 隨著經(jīng)濟的發(fā)展,人們生活質(zhì)量提高了,娛樂方式也日新月異。 JavaServer Faces( JSF)框架可以很好的解決以上問題,它提供全新的,動態(tài)的標(biāo)簽 庫,且組件豐富多樣,組件可以同托管Bean 綁定,進(jìn)一步簡化了代碼編寫,減少了代碼量。由此一來,人們不易在第一時間獲知影院動態(tài),許多精彩的電影信息得不到廣泛交流,得不到有效的定格,人們想要了解詳細(xì)的、日志性的影院信息可能也無從下手。 JSF 技術(shù) JavaServerFaces( JSF)是一個新的,基于 Java 的標(biāo)準(zhǔn)框架。 JSF 提供了一組新的動態(tài)的標(biāo)簽,它與后臺動態(tài)程序相連接。配置文件為 , Bean 對象的生命周期可以為 null: 用時才生成 [5]。 UI提供的組件支持通過 Ajax更新頁面。要通過 JDBC 訪問 MySQL,需要下載 JDBC 驅(qū)動程序。 .java 文件中存放了 Java 源程序,它經(jīng) javac 命令編譯后就生成了相應(yīng)的 .class 文件。未經(jīng)注冊登錄者,系統(tǒng)予以提示,并拒絕本次登錄。 e. 電影投票功能:用戶可選擇進(jìn)入投票頁面,對電影進(jìn)行投票。登錄時,系統(tǒng)根據(jù)身份代碼驗證身份,同時驗證用戶名和密碼 是否匹配,可報錯。 3. 2 系統(tǒng)數(shù)據(jù)庫分析 本系統(tǒng)設(shè)計到的 實體表有:用戶信息表、電影信息表、電影分類表、影評表、禮品信息表、影院座位表、訂單表、禮品兌換單表。電影信息表如表 所示。它記錄了訂單號( subId),電影編號( filmId),電影名稱( filmName),下單時間( subTime),座位號( subNum),用戶編號( userId)。 表 禮品兌換單表 字段名稱 字段類型 主鍵 外鍵 是否為空 默認(rèn)值 giftexchangeId int(11) 是 否 giftId int(11) 是 否 userId int(11) 是 否 giftName varchar(20) 是 NULL giftPicture int(11) 是 NULL h. allseat 為影院所有的座 位編號表。 系統(tǒng)邏輯結(jié)構(gòu)分析 JSF 中用到托管 Bean 實現(xiàn)前臺頁面同后臺的傳值。管理員不可注冊,只能由已有管理員進(jìn)行添加。若注冊成功,則返回字符串 “yes”,若失敗則返回 “fail”。 查找電影功能 該功能使用 PrimeFaces 中的控件 dataTable 實現(xiàn)。該功能使用 dataTable 盛放數(shù)據(jù)集,即所有電影,每條記錄后面加一個投票功 能列,使用 p:mandLink。設(shè)置 rating 與 filmScore( filmBean 的一個屬性,表示電影當(dāng)前得分)綁定,設(shè)置 ajax 監(jiān)聽事件為 “rate”,監(jiān)聽動作為 ,更新對象為消息控件,即 用戶進(jìn)行打分動作后會觸發(fā) FilmBean類的 public void onrate( RateEvent rateevent)方法,在該方法中嵌套調(diào)用 FilmDao 類中的 public int rateScore( int filmScore, int filmId)方法,將前臺傳入的電影當(dāng)前得分(通過 getSessionValue( “鍵 ”)得到)和電影編號(通過前臺 rating 組件的 f:attribute得到)作為實參傳入,如此實現(xiàn)打分。用戶每兌換一次禮品前進(jìn)行用戶的積分檢測,積分符合則實現(xiàn)兌換,用戶的積分要相應(yīng)的減少,對數(shù)據(jù)庫中禮品兌換單表插入一天兌換記錄。訂票操作實質(zhì)上是對數(shù)據(jù)庫中三個表的操作:對訂單表插入一條訂單記錄,對電影表的余票字段進(jìn)行減量更新,對用戶表的用戶積分字段進(jìn)行增量更新。其中 userId 通過 session 得到,即通過用戶編號從數(shù)據(jù)庫的訂單表中選出對應(yīng)用戶的所有訂單。 a. 添加電影 電影名稱( filmName),電影效果( is3D),電影分類( category1, category2, category3),代售票數(shù)( ticketCount),上映日期( filmTime)都使用 h:inputText輸入,電影簡介( filmDescribe)使用 h:inputTextarea輸入,這些控件分別與 filmBean 的相應(yīng)屬性綁定。 c. 刪除電影 該功能實質(zhì)是根據(jù) filmId 刪除數(shù)據(jù)庫中電影表的一條記錄。 用戶信息管理功能 管理用戶分為對管理員的管理和對普通用戶的管理,對普通用戶只是刪除功能,對管理員可以添加、刪除,修改個人信息。管理員名稱使用 h:inputText盛放并與 綁定。在管理員登錄的方法 public String findMUers( String userName, String 第 21 頁 共 45 頁 passWord)中已將管理員編號放入 session 中,因此通過 getSessionValue()方法可得到userId。 giftPicture 通過上傳文件得到(文件上傳的具體實現(xiàn)見 )。 a. north north 中盛放系統(tǒng)的工具條,該工具條 使用 PrimeFaces 的 dock 實現(xiàn)。 c. center center 模塊展示最新上線電影。打分和影評功能上面以做過描述。 north 模塊顯示 “影視棧管理系統(tǒng) ”的字樣; west 顯示后臺管理的功能列表,使用 p:panelMenu 實現(xiàn);center 是可編輯的模塊,顯示各功能的具體操作頁面; east 顯示一個 flash,使用 p:media盛放,對 p:media嵌套 f:param name=wmode value=transparent/可使 flash 透明。在后繼頁面中使用此模板,只需寫要編輯模塊的代碼即可,將要編輯的模塊代碼用 ui:position template=/模板頁面文件全名 ui:define name=待編輯模塊名 代碼部分 /ui:define /ui:position包裹住即可。該頁面使用 做模板,分為三個區(qū)域,每個區(qū)域使用 p:fieldset 盛放。在前臺頁面中使用dataGrid 盛放該集合。在 p:dock中添加p:menueitem,表示屬于此 dock 的某一個元素,設(shè)置其 value 屬性值為本系統(tǒng)功能的相應(yīng)名稱,表示鼠標(biāo)聚焦于此時顯示的文字內(nèi)容;設(shè)置 icon 屬性值為想要使用的圖標(biāo)路徑,表示該功能按鈕的圖標(biāo);設(shè)置 url 屬性值為將要跳轉(zhuǎn)的頁面名稱。 b. 刪除禮品 禮品刪除功能同電影刪除功能相似,不同的是此刪除功能沒有權(quán)限限制,點擊刪除按鈕后觸發(fā) GiftBean 類的 public void giftDelete(ActionEvent event)方法,在此方法中嵌 第 22 頁 共 45 頁 套調(diào)用 GiftDao 類的 public void giftDeleteByID(int giftId)方法。 userName 和 passWord 的 set()方法中已調(diào)用 setSessionValue()方法,所以通過 session 可得到他們的值,也是頁面?zhèn)鱽淼男轮怠? c. 刪除管理員 同普通用戶的刪除功能相似。 a. 普通用戶刪除 第 20 頁 共 45 頁 u s e r d e l e t e . x h t m l : x h t m l u s e r B e a n : U s e r B e a n u s e r d a o : U s e r D a og e t N u s e r s ( )f i n d N u s e r s ( )u s e r D e l e t e ( A c t i o n E v e n t )g e t S e s s i o n V a l u e ( S t r i n g )u s e r D e l e t e B y I D ( i n t ) 圖 刪除普通用戶時序圖 普通用戶列表由 PrimeFaces 的 dataTable 盛放,普通用戶集合 nusers 由 UserDao 類的 public ListUserBean findNusers()方法返回。 dataTable 中每條電影記錄后都有一個刪除按鈕,該按鈕與 綁定,點擊后觸發(fā) FilmBean類的 public void filmDelete(ActionEvent event)方法,該方法中嵌套調(diào)用 public void filmDeleteByID(int filmId)方法, filmId 有刪除按鈕下的 f:attribute得到。添加按鈕與 綁定,點擊添加按鈕觸發(fā) FilmBean 類的 public void filmInsert()方法,在此方法中嵌套調(diào)用 FilmDao 類中的 public int filmInsert(String filmName,String is3D,String category1,String category2,String category3,String filmPicture,String filmDescribe,String filmTime,int ticketCount)方法,其中的參數(shù)都有前臺