91精品人妻互换日韩精品久久影视|又粗又大的网站激情文学制服91|亚州A∨无码片中文字慕鲁丝片区|jizz中国无码91麻豆精品福利|午夜成人AA婷婷五月天精品|素人AV在线国产高清不卡片|尤物精品视频影院91日韩|亚洲精品18国产精品闷骚

您當(dāng)前位置:首頁 > 新聞頻道 > 技術(shù)動態(tài) > 正文
淺談基于MVC的Web應(yīng)用框架設(shè)計與實現(xiàn)

摘要:本文簡要介紹了MVC設(shè)計模式,討論了JSP/Servlet和JavaBean技術(shù)的概念。主要采用B/S結(jié)構(gòu)以及JSP/Servlet技術(shù)作為網(wǎng)站開發(fā)工具。Web應(yīng)用程序的開發(fā)中存在著Framework的應(yīng)用,從而使得程序員主要精力專注于業(yè)務(wù)邏輯的實現(xiàn)。這種開發(fā)方式不僅實現(xiàn)簡單,而且便于系統(tǒng)的開發(fā)和代碼維護(hù)。
論文關(guān)鍵詞:B/S結(jié)構(gòu),JSP/Servlet,開發(fā)模式
  隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和社會經(jīng)濟(jì)模式的不斷變化,MVC(model-view-controller)模式對于web應(yīng)用的開發(fā)無疑是一種非常先進(jìn)的思想。模型(Model),視圖(View)和控制Controller)。MVC模式的目的就是實現(xiàn)Web系統(tǒng)的職能分工。 Model層實現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯,通常可以JavaBean或EJB來實現(xiàn)。View層用于與用戶的交互,通常用JSP來實現(xiàn)。Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當(dāng)?shù)囊晥D以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。
  2.MVC工作方式
  MVC是一個設(shè)計模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。
  視圖
  視圖是用戶看到并與之交互的界面。對老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標(biāo)識語言和Web services.
  如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。
  模型
  模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusion Components這樣的構(gòu)件對象來處理數(shù)據(jù)庫。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性。
  控制器
  控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后用確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。
  3.基于MVC模式Web應(yīng)用系統(tǒng)的設(shè)計
  一個Web應(yīng)用一般分為瀏覽器端和服務(wù)器端兩個部分。Java技術(shù)結(jié)合MVC設(shè)計模式在構(gòu)建企業(yè)級Web應(yīng)用的實現(xiàn)中,HTML頁面、JSP頁面、Swing GUI 對應(yīng)于View,因為整個應(yīng)用系統(tǒng)主要通過視圖來與外界進(jìn)行交互;Controller則是Servlet類、JavaBean類,它用于管理用戶與視圖發(fā)生的交互;EJB和JavaBean對應(yīng)于Model,提供應(yīng)用業(yè)務(wù)邏輯,進(jìn)行業(yè)務(wù)數(shù)據(jù)的處理。MVC系統(tǒng)模型明確的將數(shù)據(jù)的顯示和數(shù)據(jù)業(yè)務(wù)的處理分開,從而使得邏輯結(jié)構(gòu)更為清晰。如果數(shù)據(jù)的顯示方式有所改變,只需更改JSP視圖頁面,而并不要求更改數(shù)據(jù)處理模塊;反之,如果業(yè)務(wù)要求發(fā)生變化,也只需更改相應(yīng)的處理數(shù)據(jù)模塊。因而系統(tǒng)可以很容易加入新的業(yè)務(wù),可以靈活適應(yīng)各種需求的變化。當(dāng)客戶機(jī)請求JSP頁面時,Web服務(wù)器通過內(nèi)置的JSP引擎來解釋執(zhí)行JSP頁面,JSP頁面可以置于任何網(wǎng)絡(luò)服務(wù)器端與應(yīng)用程序服務(wù)端。在該系統(tǒng)中,JSP頁面與Servlet進(jìn)行數(shù)據(jù)交互,并調(diào)用相關(guān)的JavaBean,通過JDBC-ODBC橋?qū)崿F(xiàn)Java與關(guān)系數(shù)據(jù)庫的互連,并將處理數(shù)據(jù)查詢、數(shù)據(jù)更新、添加和運(yùn)行的存儲過程等結(jié)果以頁面文件形式返回給客戶。
  開發(fā)模式圖1 系統(tǒng)體系結(jié)構(gòu)
  4.實例
  身份認(rèn)證是大多數(shù)的Web應(yīng)用系統(tǒng)需要實現(xiàn)的基本功能之一。本文將以此Web應(yīng)用程序的開發(fā)為例,介紹基于上節(jié)所提出的方法進(jìn)行Web應(yīng)用程序開發(fā)的具體步驟和技術(shù)細(xì)節(jié)。通常,實現(xiàn)身份認(rèn)證的Web 應(yīng)用程序主要具備以下功能:提供用戶登錄界面,并且能夠在客戶端對輸入數(shù)據(jù)進(jìn)行簡單的格式控制和數(shù)據(jù)驗證。根據(jù)輸入的用戶名和密碼判斷用戶是否存在以及密碼的正確性。如果驗證通過,提取該用戶的個人資料并設(shè)置其狀態(tài)為已登錄,反之則設(shè)置其狀態(tài)為未登錄。該部分的程序涉及到對后臺數(shù)據(jù)庫的讀取操作以及用戶數(shù)據(jù)的存儲,并根據(jù)用戶的登錄狀態(tài)創(chuàng)建相應(yīng)的登錄結(jié)果頁面,返回至該用戶的瀏覽器。在基于 MVC設(shè)計模式開發(fā)的身份認(rèn)證的程序中,登錄入口界面以及登錄結(jié)果頁面為用戶視圖模塊(View); 用戶登錄的整體流程控制由LoginServlet實現(xiàn);具體的用戶合法性判斷和有關(guān)數(shù)據(jù)庫操作由loginBean實現(xiàn)。
  身份認(rèn)證程序需要進(jìn)行以下步驟 :
 。1)對用戶在登錄頁面login.html中輸入的數(shù)據(jù),利用腳本程序進(jìn)行客戶端簡單驗證,并提交給LoginServlet。
 。2)LoginServlet 首先創(chuàng)建loginBean的實例,把該用戶的username和password作為參數(shù)傳入。
 。3) 調(diào)用loginBean的executeQuery()方法來進(jìn)行用戶驗證。該方法首先利用參數(shù)username和password通過JDBC查詢數(shù)據(jù)庫用戶信息表,判定數(shù)據(jù)庫中是否存在該用戶、密碼是否正確等。當(dāng)驗證通過時,設(shè)置表示用戶登錄狀態(tài)的session并從數(shù)據(jù)庫中讀取該用戶的基本信息存放在當(dāng)前會話中;反之,設(shè)置登錄狀態(tài)為False。
  (4) LoginServlet根據(jù)loginBean返回的結(jié)果,給用戶生成返回頁面。下面是控制模塊的部分代碼 :
  import javax.servlet.*;
  import javax.servlet.http.*;
  import mybean.loginBean;
  public class LoginServlet extends
  HttpServelet{
  public void service
  (HttpServletRequest, request,
  HttpServletRespone respone)
  throws ServletException, java.io.IOException
  {
  loginBean loginBean=new loginBean();
  if(request.getParameter('action').equals('login')){
  String username=request.
  getParameter(“username”);
  String password=request.
  getParameter(“password”);
  if((username.ind exOf(''')!=-1)||
  (password.indexOf(''')!=-1))
  out.print('請不要使用非法字符');
  else{
  String sql='select * from user where
  username=''+username+'' and
  password=''+password+''';
  ResultSet rs=loginBean.executeQuery
  (sql);
  if(!rs.next())out.print('

用戶名和密碼不匹配');
  else{ session.
  setAttribute('username',''+rs.getString
  ('username')+'');
  response.sendRedirect('main.jsp');
  }
  loginBean.Close();
  }
  }
  5.總結(jié)
  本文利用JSP+Servlet+JavaBean技術(shù),結(jié)合MVC設(shè)計模式,提出了開發(fā)基于Web應(yīng)用系統(tǒng)的決方案。該方案實現(xiàn)了表示層和邏輯層的分離,使得系統(tǒng)具有很好的擴(kuò)展性,更加易于維護(hù),開發(fā)過程更加靈活;同時也為Web應(yīng)用系統(tǒng)的開發(fā)提供了一個完整的思路和方法。

參考文獻(xiàn):
[1]孫衛(wèi)琴.精通Struts框架及其在MVC開發(fā)中的應(yīng)用
[2] 何川、方興、陳渝、齊暢.《JSP編程實踐——動態(tài)網(wǎng)頁的引擎》,清華大學(xué)出版社
[3] 雨陽隆春等.《深入JSP 網(wǎng)絡(luò)編程》,清華大學(xué)出版社
[4] 楊學(xué)瑜、王志軍、劉同利.《JSP入門與提高》, 清華大學(xué)出版社
[5]王家琪.基于MVC設(shè)計的WEB應(yīng)用框架的研究[J].計算機(jī)信息與技術(shù),2006,(11):8-10
關(guān)鍵字:通訊
About Us - 關(guān)于我們 - 服務(wù)列表 - 付費(fèi)指導(dǎo) - 媒體合作 - 廣告服務(wù) - 版權(quán)聲明 - 聯(lián)系我們 - 網(wǎng)站地圖 - 常見問題 - 友情鏈接
Copyright©2014安裝信息網(wǎng) www.78375555.com. All rights reserved.
服務(wù)熱線:4000-293-296 聯(lián)系電話:0371-61311617 傳真:0371-55611201 QQ: 郵箱:zgazxxw@126.com 豫ICP備18030500號-4
未經(jīng)過本站允許,請勿將本站內(nèi)容傳播或復(fù)制
安全聯(lián)盟認(rèn)證