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

正文內(nèi)容

基于ejb30的分布式網(wǎng)上購(gòu)物系統(tǒng)(文件)

2024-08-26 22:53 上一頁面

下一頁面
 

【正文】 技術(shù)簡(jiǎn)介Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序設(shè)計(jì)語言(以下簡(jiǎn)稱 Java 語言)和 Java 平臺(tái)的總稱。 Java 應(yīng)用編程接口為 Java 應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。 Java應(yīng)用編程接口已經(jīng)從 版發(fā)展到 版。Java SE 是標(biāo)準(zhǔn)版本,用于開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的 Java 應(yīng)用程序。Java 語言吸收了Smalltalk 語言和 C++語言的優(yōu)點(diǎn),并增加了其它特性,如支持并發(fā)程序設(shè)計(jì)、網(wǎng)絡(luò)通信、和多媒體數(shù)據(jù)控制等。特別是 Java 企業(yè)應(yīng)用編程接口( Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 7供了有關(guān)技術(shù)和豐富的類庫(kù)。其后在 Java 社區(qū)進(jìn)程(Java Community Process)的支持下陸續(xù)有一些 JSR 被制訂來定義新的 EJB 標(biāo)準(zhǔn),分別是 JSR 19(EJB ),JSR 153(EJB )以及最新的 JSR 220(EJB )。理論上講,任何一個(gè)Java 類都可以是一個(gè) Bean(例如 Spring 中就是這樣,所有的類都可以配置為 Bean)。Enterprise JavaBean 則相當(dāng)于 DCOM,即分布式組件。 與 的區(qū)別圖 21 是 的訪問模型。在EJB ,實(shí)體Bean持久化已經(jīng)單獨(dú)作為一個(gè)持久化API規(guī)范和EJB的其它部分分離開來。例如,Bean 類型幫助我們?cè)诜謱蛹軜?gòu)的基礎(chǔ)上開發(fā)應(yīng)用程序。 EJB 的新特性(1) 簡(jiǎn)化的程序設(shè)計(jì)模型EJB 最大的問題在于為了實(shí)現(xiàn) EJB,我們需要編寫大量代碼。EJB 允許我們使用元數(shù)據(jù)注解配置組件,而不一定要使用冗長(zhǎng)、可讀性差的 XML 部署描述文件。JNDI的麻煩在于它使應(yīng)用程序代碼與應(yīng)用程序服務(wù)器結(jié)合在一起,這使開發(fā)和測(cè)試非常困難。EJB 通過使用更為自然的 API 范例,通過 EntityManager 接口操作基于元數(shù)據(jù)的 POJO,從而解決了這個(gè)問題。其次,Java基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 11持久化查詢語言(JPQL)顯著地改進(jìn)了 EJB QL,使 OR 查詢技術(shù)趨于標(biāo)準(zhǔn)化。因?yàn)樗?EJB 組件都是 POJO,所以可以容易地在容器之外執(zhí)行它們。雖然 Servlet 可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來擴(kuò)展 Web 服務(wù)器的應(yīng)用程序,該 Web 服務(wù)器必須包含支持 Servlet 的 Java 虛擬機(jī)。這個(gè)過程為: (1) 客戶端發(fā)送請(qǐng)求至服務(wù)器端 (2) 服務(wù)器將請(qǐng)求信息發(fā)送至 Servlet (3) Servlet 生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。從這個(gè)角度講,Servlet 也被稱為 Faceless Object。在 ASP 或 JSP 環(huán) 境下,HTML 代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯?,F(xiàn)介紹如下:(1) 將內(nèi)容的生成和顯示進(jìn)行分離使用 JSP 技術(shù), Web 頁面開發(fā)人員可以使用 HTML 或者 XML 標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁面。在服務(wù)器端,JSP 引擎解釋 JSP 標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過訪問 JavaBeans 組件,使用 JDBCTM 技術(shù)訪問數(shù)據(jù)庫(kù),或者包含文件) ,并且將結(jié)果以HTML(或者 XML)頁面的形式發(fā)送回瀏覽器?;诮M件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。通過開發(fā)定制化標(biāo)識(shí)庫(kù),JSP 技術(shù)是可以擴(kuò)展的。此外,你可以更明確的進(jìn)行分工,WEB 頁面設(shè)計(jì)人員編寫 HTML,只需要留出地方讓 Servlet 程序員插入動(dòng)態(tài)部分即可?;? 的分布式網(wǎng)上購(gòu)物系統(tǒng) 143 系統(tǒng)需求分析 用例分析 用例圖如圖 31 所示,用戶功能劃分為 5 個(gè)主要用例,分別為用戶注冊(cè)(Register) 、用戶登錄(Login) 、圖書查詢(Book Query) 、購(gòu)物車管理(Cart Manage)和訂單管理(Order Manage) 。 用例名 用戶登錄用例 ID Usecase2基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 15主要業(yè)務(wù)參與者 用戶前置條件 用戶擁有一個(gè)有效賬號(hào)后置條件 用戶登錄到系統(tǒng)觸發(fā)條件 用戶需要下單基本流程 用戶在登錄頁面輸入用戶名和密碼并提交;系統(tǒng)查詢數(shù)據(jù)庫(kù),查看用戶名是否存在以及用戶名和密碼是否匹配;若用戶名存在且和密碼匹配,則成功登錄到系統(tǒng)。用例名 購(gòu)物車管理用例 ID Usecase4主要業(yè)務(wù)參與者 用戶前置條件 無后置條件 改變購(gòu)物車內(nèi)容觸發(fā)條件 用戶需要改變購(gòu)物車內(nèi)容基本流程 用戶進(jìn)入購(gòu)物車頁面,刪除不需要的圖書;點(diǎn)擊鏈接進(jìn)入管理頁面,修改圖書數(shù)量,確認(rèn)后返回到購(gòu)物車頁面。用例名 用戶管理用例 ID Usecase6主要業(yè)務(wù)參與者 管理員前置條件 管理員登錄到系統(tǒng)后置條件 用戶信息更新觸發(fā)條件 需要管理用戶基本流程 管理員進(jìn)入后臺(tái)用戶管理頁面,查看所有用戶的注冊(cè)信息;點(diǎn)擊“刪除”按鈕刪除相應(yīng)用戶賬號(hào)。 活動(dòng)圖基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 18基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 19圖 32 系統(tǒng)活動(dòng)圖圖 32 是系統(tǒng)的活動(dòng)圖。在把某一圖書添加到購(gòu)物車之后, 會(huì)顯示當(dāng)前的購(gòu)物車信息。登錄成功之后, 顯示訂單信息。管理員表存儲(chǔ)管理員賬戶,管理員賬戶不可以注冊(cè)。主機(jī)作為服務(wù)器部署 EJB 項(xiàng)目,虛擬機(jī)兼作服務(wù)器和客戶端,部署 Web 項(xiàng)目,使用虛擬機(jī)上的瀏覽器登錄網(wǎng)站。session 包中是與實(shí)體相對(duì)應(yīng)的 Facade 接口,EJB 客戶端通過它們來訪問實(shí)體。 WebRoot 文件夾下有 css、image、js、jsp 子文件夾,分別用來存放css 文件、網(wǎng)站圖片、js 文件和 jsp 文件。由于它們都是簡(jiǎn)單的 JavaBean,所以除了構(gòu)造函數(shù)只有一些 setter/getter 方法。save 方法保存實(shí)例到數(shù)據(jù)庫(kù),delete 方法刪除實(shí)例, update 方法更新實(shí)例,findByProperty 方法根據(jù)某一屬性查找實(shí)例,findAll 方法返回所有實(shí)例?;? 的分布式網(wǎng)上購(gòu)物系統(tǒng) 28表 數(shù)據(jù)庫(kù)基本信息數(shù)據(jù)庫(kù)軟件 MySQL版本 數(shù)據(jù)庫(kù)名 online_bookstore編碼 UTF8 基本表1. 管理員信息表:tbl_admin屬性名 類型 描述admin_id integer 管理員標(biāo)識(shí)號(hào),自動(dòng)遞增的主鍵admin_name varchar(128) 管理員賬號(hào)admin_password varchar(128) 管理員登錄密碼admin_ varchar(128) 管理員聯(lián)系郵箱2. 用戶信息表:tbl_user屬性名 類型 描述user_id integer 用戶標(biāo)識(shí)號(hào),自動(dòng)遞增的主鍵user_name varchar(128) 用戶賬號(hào)user_real_name varchar(128) 用戶真實(shí)姓名user_password varchar(128) 用戶登錄密碼user_ varchar(128) 用戶注冊(cè)郵箱user_phone_number char(11) 用戶聯(lián)系電話user_deliver_address varchar(128) 用戶送貨地址user_zip_code char(6) 用戶郵政編碼user_register_time timestamp 用戶注冊(cè)日期和時(shí)間3. 圖書信息表:tbl_book屬性名 類型 描述book_id integer 圖書標(biāo)識(shí)號(hào),自動(dòng)遞增的主鍵book_title varchar(128) 圖書名稱book_author varchar(128) 圖書作者book_press varchar(128) 圖書出版社book_price decimal(5,2) 圖書售價(jià)book_classify varchar(128) 圖書分類(大類)book_assort varchar(128) 圖書分類(細(xì)分)book_image_url varchar(128) 圖書圖片在文件系統(tǒng)中的路徑book_describe text 圖書簡(jiǎn)介基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 294. 訂單信息表:tbl_order屬性名 類型 描述order_id integer 訂單標(biāo)識(shí)號(hào),自動(dòng)遞增的主鍵user_id integer 用戶標(biāo)識(shí)號(hào)order_total_price decimal(7,2) 訂單總價(jià)order_create_time timestamp 下單日期和時(shí)間5. 訂單明細(xì)信息表:tbl_item屬性名 類型 描述item_id integer 訂單明細(xì)標(biāo)識(shí)號(hào),自動(dòng)遞增的主鍵order_id integer 訂單標(biāo)識(shí)號(hào)book_id integer 圖書標(biāo)識(shí)號(hào)item_quantity integer 訂單中每種圖書購(gòu)買數(shù)量基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 305 系統(tǒng)實(shí)現(xiàn)與測(cè)試 功能實(shí)現(xiàn) 搜索功能的實(shí)現(xiàn)實(shí)現(xiàn)搜索功能的是BookFacade類中的findByTitleKeywordAndClassify方法,其代碼如下:public ListBook findByTitleKeywordAndClassify(final Object keyword, String classify, final int... rowStartIdxAndCount) {try {final String queryString = select model from Book model where = :classifyValue and like :keywordValue。if (rowStartIdxAndCount != null amp。}if ( 1) {int rowCount = (0, rowStartIdxAndCount[1])。}}findByTitleKeywordAndClassify 方法使用 JPQL 語句在數(shù)據(jù)庫(kù)中進(jìn)行查詢,它同時(shí)實(shí)現(xiàn)了結(jié)果集的分頁功能,由參數(shù) rowStartIdxAndCount 設(shè)置要返回記錄的起始下標(biāo)和條數(shù)。String keyword = (String)(keyword)。BookFacadeRemote bookDAO = (BookFacadeRemote)()。} else {bookList = (keyword, classify, rowStartIdxAndCount)。(basePath + jsp/)。 for(Book book : bookList) {%div class=search_book a href=servlet/BookDetailServlet?bookid=%=()%img class=book src=%=()% id=%=()% alt=書籍預(yù)覽圖片 //abr/div class=book_infoa class=search_book_name href=servlet/BookDetailServlet?bookid=%=()%%=()%/abr/ %=()%br/ %=()%br/ label class=book_price¥%=()% /label /div/div%}%圖 51 為主頁 ,分頁顯示所有圖書,可以通過點(diǎn)擊網(wǎng)站圖標(biāo)回到主頁。具體代碼如下:protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String path = ()。if((quantity))int itemQuantity = (quantity)。(0d)。itemNotExist = false。(book)。(totalPrice)。圖 53 顯示圖書詳細(xì)信息圖 54 顯示購(gòu)物車信息基于 的分布式網(wǎng)上購(gòu)物系統(tǒng) 36 發(fā)送郵件功能的實(shí)現(xiàn)實(shí)現(xiàn)發(fā)送郵件功能的是 MailService 類,它是使用 JavaMail 的一個(gè)輔助類。 Transport transport = (smtp)。 return true。它向 MailQueue 消息隊(duì)列發(fā)送消息,MailServiceBean 監(jiān)聽到之后調(diào)用 onMessage 方法發(fā)送郵件。QueueSession queueSession = (false, )。(to, ())。} catch (JMSException e) {()。它在 onMessage 方法中調(diào)用 MailService 類中的 sendout 方法,當(dāng)有消息到達(dá)時(shí),onMessage 方法自動(dòng)執(zhí)行。}catch (NamingException e) {()。(msg)。QueueSender publisher = (queue)。QueueConnectionFactory factory = (QueueConnectionFactory)(ConnectionFactory)。retu
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1