第11講基于Servlet的MVC設(shè)計(jì)模式.ppt_第1頁(yè)
第11講基于Servlet的MVC設(shè)計(jì)模式.ppt_第2頁(yè)
第11講基于Servlet的MVC設(shè)計(jì)模式.ppt_第3頁(yè)
第11講基于Servlet的MVC設(shè)計(jì)模式.ppt_第4頁(yè)
第11講基于Servlet的MVC設(shè)計(jì)模式.ppt_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、,第11講 基于Servlet的MVC設(shè)計(jì)模式,2,回顧,如何使用Map進(jìn)行數(shù)據(jù)的存?。?如何理解session在Web項(xiàng)目中的作用? 常用的集合類(lèi)有哪些?它們之間的區(qū)別是什么?,3,本講問(wèn)題,什么是設(shè)計(jì)模式? 如何理解MVC設(shè)計(jì)模式? 為什么需要MVC設(shè)計(jì)模式?,4,理解MVC的優(yōu)勢(shì) 掌握MVC的應(yīng)用開(kāi)發(fā) 在MVC中會(huì)使用Servlet 進(jìn)行程序控制,本章目標(biāo),5,JSP的缺點(diǎn)(2-1),JSP中登錄功能的實(shí)現(xiàn),提交數(shù)據(jù)到register.jsp,訪問(wèn)數(shù)據(jù)庫(kù),JSP中大量 調(diào)用業(yè)務(wù)代碼,JSP的主要作用是什么?,邏輯判斷,6,JSP的缺點(diǎn)(2-2),美工進(jìn)行頁(yè)面編輯和維護(hù),美工, / ,這是

2、什么呀?我 只認(rèn)識(shí)HTML標(biāo)簽,如果將流程控制和 數(shù)據(jù)顯示分離就好了,7,如何解決JSP的缺點(diǎn),1、在你所寫(xiě)的程序中,很多JSP頁(yè)面直接 訪問(wèn)數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)表名改變了, 你所要做的工作是什么?,2、你的程序中所有的頁(yè)面都需要美工進(jìn)行美 化,但是他不懂Java怎么辦?,8,生活案例,顧客點(diǎn)菜,顧客點(diǎn)菜,廚師,菜肴,服務(wù)員,加工菜肴,服務(wù)員,把菜單給廚師,服務(wù)員上菜,把菜單給服務(wù)員,把菜給服務(wù)員,以各自的功 能進(jìn)行分工,9,Web程序的功能分工,如果把Web容器處理請(qǐng)求的過(guò)程按功能劃分, 你如何進(jìn)行劃分?,10,MVC設(shè)計(jì)模式(2-1),MVC設(shè)計(jì)模式 模型 - Model 視圖 - View

3、 控制器 - Controller,MVC 模式,控制器,模型,視圖,JavaBean,JSP,Servlet,11,MVC設(shè)計(jì)模式(2-2),模型:代表應(yīng)用程序狀態(tài)和業(yè)務(wù)邏輯,控制器:根據(jù)客戶的請(qǐng)求來(lái)操縱模型,并把結(jié)果經(jīng)由視圖展現(xiàn)給客戶,視圖:提供可交互的客戶界面,向客戶顯示模型數(shù)據(jù),MVC設(shè)計(jì)模式的模塊組成,12,Web程序的MVC,Web容器處理請(qǐng)求過(guò)程,請(qǐng)求,Servlet,JavaBean,JSP頁(yè)面,執(zhí)行,調(diào)用,轉(zhuǎn)向,響應(yīng),訪問(wèn),返回?cái)?shù)據(jù),數(shù) 據(jù) 庫(kù),客戶端,JSP視圖動(dòng) 態(tài)顯示數(shù)據(jù),數(shù) 據(jù) 庫(kù),Servlet控制器,用 于接收請(qǐng)求和控制 應(yīng)用程序的流程,JavaBean數(shù)據(jù) 模型

4、進(jìn)行業(yè)務(wù)邏 輯和訪問(wèn)數(shù)據(jù)庫(kù),13,MVC編程思路,MVC編程思路,執(zhí)行,Servlet接收客戶端 請(qǐng)求,并調(diào)用業(yè)務(wù)類(lèi) 的方法進(jìn)行數(shù)據(jù)處理,Servlet根據(jù)數(shù)據(jù)處理的 結(jié)果,控制下一個(gè)顯示 的HTML或者JSP頁(yè)面,Servlet,JSP頁(yè)面,轉(zhuǎn)向,JavaBean,調(diào)用,14,MVC編程(2-1),修改登錄為MVC模式, ,提交給Servlet,創(chuàng)建頁(yè)面-login2.html 使用Eclipce向?qū)?chuàng)建Servlet-LoginServlet.java, String pass = request.getParameter(password); String user = request.

5、getParameter(loginName); CheckLogin ck =new CheckLogin(); if (ck.validate(user, pass) response.sendRedirect(/store/ch05/books.jsp); else response.sendRedirect(/store/ch05/login2.html); ,創(chuàng)建一個(gè)業(yè)務(wù)類(lèi)對(duì)象, 并調(diào)用validate()方法 判斷用戶是否存在,15,MVC編程(2-2),修改登錄為MVC模式-創(chuàng)建業(yè)務(wù)類(lèi)CheckLogin.java,public class CheckLogin public b

6、oolean validate(String user, String pass) boolean valid = false; Connection dbConnection = null; ResultSet res = null; try String sql = select * from userinfo where loginname = ? ; Connection con = ConnectionManager.getConnction(); PreparedStatement pStatement = con.prepareStatement(sql); pStatement

7、.setString(1, user); res = pStatement.executeQuery(); if (res.next() ,查詢數(shù)據(jù)庫(kù),如果存在該用戶返回true,否則返回false,演示示例2:CheckLogin.java,16,小結(jié),MVC的三層結(jié)構(gòu)是按什么來(lái)劃分?每一層的功能和組件是什么? 舉幾個(gè)例子說(shuō)明在程序中使用MVC的好處?,17,MVC實(shí)現(xiàn)結(jié)賬功能(3-2),增加結(jié)帳的功能,創(chuàng)建處理訂單的Servlet- ProcessOrder.java,String username = request.getParameter(username);/ 用戶名 String

8、 zipcode = request.getParameter(zipcode);/ 郵編 String phone = request.getParameter(phone);/ 電話 String creditcard = request.getParameter(creditcard);/ 信用卡 HttpSession session = request.getSession(); double total = (Double)session.getAttribute(total).doubleValue(); OrderOperation op = new OrderOperatio

9、n(); op.saveOrder(username, zipcode, phone, creditcard, total); session.invalidate(); request.getRequestDispatcher(/ch05/bye.jsp) .forward(request,response);,創(chuàng)建業(yè)務(wù)類(lèi)對(duì)象,并調(diào)用操作數(shù)據(jù)庫(kù)方法,從session中取出total,讓session失效,18,MVC實(shí)現(xiàn)結(jié)賬功能(3-3),增加結(jié)帳的功能,創(chuàng)建操作數(shù)據(jù)庫(kù)業(yè)務(wù)類(lèi)- OrderOperation.java,public class OrderOperation public in

10、t saveOrder(String username,String zipcode, String phone,String creditcard, double total) int result = 0; try Connection con = ConnectionManager.getConnction(); String strSql = insert into BookOrder(username,zipcode,phone, + creditcard,total) values(?,?,?,?,?); PreparedStatement pStatement = con.prepareStatement(strSql); pStatement.setString(1, username); /設(shè)置其他參數(shù)值 result = pStatement.executeUpdat

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論