版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第 13 章,MVC 設計模式,2,回顧,過濾器是向 Web 應用程序的請求和響應添加功能的 Web 服務組件 過濾器是根據(jù)用戶的請求和 Web 資源的響應配置的 過濾器生命周期包括的各個階段分別為:實例化、初始化、過濾和銷毀 過濾器定義將過濾器名稱與特定類關聯(lián)起來 過濾器映射用于將過濾器映射到 Web 資源 過濾器定義和過濾器映射用于部署描述符中,3,目標,掌握 Model I體系結構 掌握 Model II體系結構 掌握 MVC 應用程序,4,Model I 體系結構 6-1,Model I 體系結構結合使用 JSP 頁面和 JavaBean 來開發(fā) Web 應用程序,應用服務器,響應,J
2、SP頁面,JavaBean,數(shù)據(jù)庫 服務器,5,Model I 體系結構 6-2,Model I 體系結構用于開發(fā)簡單的應用程序,Model I 體系結構包括多個用戶可與之交互的頁面,客戶端能夠直接訪問加載到服務器上的頁面,Model I Web 應用程序由復雜的 Web 邏輯組成,并鏈接至 Web 應用程序的其他頁面,6,Model I 體系結構 6-3,本示例演示 Model I 體系結構??蛻糨斎氘a(chǎn)品ID時,顯示相關產(chǎn)品信息,public void setProductname(String prodname) ductname=prodname; public Stri
3、ng getProductname() return productname; public void setProducttype(String prodtype) ducttype=prodtype; public String getProducttype() return producttype; ,這是一個 JavaBean,它為產(chǎn)品名稱和類型定義了各種方法,7,Model I 體系結構 6-4,public class ColProduct . private ConnBean cBean = ConnBean.newInstance(); public Colle
4、ction getProduct(String sql) Collection col = new ArrayList(); try con = cBean.getConnDB(); stmt = con.createStatement(); rs = stmt.executeQuery(sql); while (rs.next() ProductBean product = new ProductBean(); product.setProductname(rs.getString(2); product.setProducttype(rs.getString(3); product.set
5、Productprice(rs.getInt(4); product.setBrand(rs.getString(5); product.setDescription(rs.getString(6); col.add(product); .,這個 JavaBean將數(shù)據(jù)通過ProductBean放入集合ArrayList,8,Model I 體系結構 6-5,public class ConnBean Connection con = null; private static ConnBean me = new ConnBean(); . public static ConnBean newI
6、nstance() return me; public Connection getConnDB() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver).newInstance(); con = DriverManager.getConnection(jdbc:odbc:accp, , ); . return con; ,這個 JavaBean實現(xiàn)數(shù)據(jù)庫連接,9,ModelI 體系結構 6-6, ,這個 JSP 頁面包含各JSP 操作,可以用來訪問 JavaBean 組件對象,10,Model II 體系結構 5-1,Model I 體系結構結合使用
7、 JSP 頁面和 JavaBean 來開發(fā) Web 應用程序,11,Model II 體系結構 5-2,設計模式為軟件設計問題提供標準的解決方案,Model II 是一種設計模式,MVC 將交互式應用程序組織成三個獨立的模塊:,應用程序模塊,用于表示數(shù)據(jù)和業(yè)務邏輯,數(shù)據(jù)表示,控制器,用于發(fā)送請求和控制應用程序的流程,12,Model II 體系結構 5-3,Model II 體系結構的優(yōu)點:,可以很靈活地設計 和實現(xiàn)模型對象,使用同一模型處理多個請求,增加新客戶端更容易,MVC 的優(yōu)點,13,Model II 體系結構 5-4,MVC 體系結構的各種對象包括:,MVC 對象,控制器,模型,視圖
8、,14,Model II 體系結構 5-5,模型對象 表示 Web 應用程序的數(shù)據(jù)元素,用戶可與這些數(shù)據(jù)元素進行交互,控制器對象 充當應用程序視圖對象和模型對象之間的中間對象,視圖對象 提供模型組件以開發(fā)用戶界面,Model II 體系結構的各種對象包括:,15,基于 MVC 體系結構的應用程序 6-1,MVC 體系結構遵循分層方式,用戶使用該方式可將代碼分別寫入不同的類和方法中。以一個 簡單論壇系統(tǒng)的部分功能為例,加以理解,. 標題 . .,這個 JSP提供圖形界面用于客戶發(fā)新貼,16,演示:示例 2,基于 MVC 體系結構的應用程序 6-2,. public class newtopics
9、ervlet extends HttpServlet . public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException . request.setCharacterEncoding(GBK); String title = request.getParameter(title); . DataBaseConn dbBean = DataBaseConn.newInstance(); Connection con = dbBean.g
10、etConnDB(); Statement stmt = con.createStatement(); . /* *把視圖派發(fā)到viewForum.jsp */ javax.servlet.RequestDispatcher dis = request.getRequestDispatcher( viewforum.jsp); dis.forward(request, response); .,這個 Servlet轉(zhuǎn)發(fā)視圖,17,基于 MVC 體系結構的應用程序 6-3,. . . 首頁 )上一頁 .,示例3查看論壇的內(nèi)容,并且進行分頁顯示,視圖對象,18,基于 MVC 體系結構的應用程序 6
11、-4,public class ForumServlet extends HttpServlet . PageBean page1=new PageBean(); PageBean page2=page1.getResult(String)request.getParameter(jumpPage); /把PageBean保存到request對象中。 request.setAttribute(page2,page2); . /* *把視圖派發(fā)到view.jsp */ javax.servlet.RequestDispatcher dis=request.getRequestDispatcher
12、(view.jsp); dis.forward(request,response); .,控制器對象,19,基于 MVC 體系結構的應用程序 6-5,. public int getMaxPage() return this.maxPage; public void setCurPage(int curPage) this.curPage = curPage; . while (rset.next() if (i (pageNum - 1) * pageBean.rowsPerPage - 1) Object obj = new Object3; obj0 = rset.getString(2
13、); . public void setPageBean() throws Exception /得到總行數(shù) this.setMaxRowCount(this.getAvailableCount(); if (this.maxRowCount % this.rowsPerPage = 0) /根據(jù)總行數(shù)計算總頁數(shù) this.maxPage = this.maxRowCount / this.rowsPerPage; else this.maxPage = this.maxRowCount / this.rowsPerPage + 1; .,模型對象,20,基于 MVC 體系結構的應用程序 6-
14、6,. public class DataBaseConn Connection con = null; private static DataBaseConn me = new DataBaseConn(); public static DataBaseConn newInstance() return me; public Connection getConnDB() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver).newInstance(); con = DriverManager.getConnection(jdbc:odbc:accp, , ); . public DataBaseConn() ,演示:示例 3,數(shù)據(jù)庫連接,21,總結 2-1,Model I 和 Model II 體系結構用于開發(fā) Web 應用程序 在 Model I 體系結構中,JSP 頁面單獨負責開發(fā) Web 應用程序 Model I Web 應用程序由復雜的 Web 邏輯和指向 Web 應用程序中其他
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳統(tǒng)剪紙紋樣中的對稱美學與小學美術教育融合課題報告教學研究課題報告
- 護理心理學的評估與測量工具
- 下發(fā)新員工培訓標準課件
- 食品安全快速檢測技術手冊
- 2026年地產(chǎn)行業(yè)智慧社區(qū)建設創(chuàng)新報告
- 手術切口疤痕管理方法
- 山東管理學院2026年公開招聘人員備考題庫(長期招聘崗位)及答案詳解參考
- 2026年安徽省兒童醫(yī)院助產(chǎn)士招聘2名備考題庫完美版
- 2026年天津工藝美術職業(yè)學院單招綜合素質(zhì)考試模擬測試卷必考題
- 2026年福建莆田市秀嶼區(qū)交通投資集團有限公司駕駛人員招聘2人備考題庫完美版
- GB/T 6495.1-1996光伏器件第1部分:光伏電流-電壓特性的測量
- GB/T 26160-2010中國未成年人頭面部尺寸
- GB/T 1095-2003平鍵鍵槽的剖面尺寸
- 小學二年級數(shù)學寒假作業(yè)
- 《凝聚態(tài)物理學新論》配套教學課件
- 《發(fā)明專利申請書》word版
- 2023年(中考)初中英語知識歸納總結(二)(精華打印版)
- 學術論文的撰寫方法與規(guī)范課件
- 【高等數(shù)學練習題】蘭州職業(yè)技術學院專升本自考真題匯總(附答案解析)
- 學術道德學術規(guī)范(答案)
- 學習《政府采購貨物和服務招標投標管理辦法》(財政部令第87號)
評論
0/150
提交評論