基于MVC的Web应用框架设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MVC的Web应用框架设计与实现
摘要:本文简要介绍了MVC设计模式,讨论了JSP/Servlet和JavaBean技术的概念。主要采用B/S结构以及JSP/Servlet技术作为网站开发工具。Web应用程序的开发中存在着Framework的应用,从而使得程序员主要精力专注于业务逻辑的实现。这种开发方式不仅实现简单,而且便于系统的开发和代码维护。论文关键词:B/S结构,JSP/Servlet,开发模式
随着网络技术的飞速发展和社会经济模式的不断变化,MVC(model-view-controller)模式对于web应用的开发无疑是一种非常先进的思想。模型(Model),视图(View)和控制Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
2.MVC工作方式
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML
依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.
如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。3.基于MVC模式Web应用系统的设计
一个Web应用一般分为浏览器端和服务器端两个部分。Java技术结合MVC设计模式在构建企业级Web应用的实现中,HTML页面、JSP
页面、Swing GUI 对应于View,因为整个应用系统主要通过视图来与外界进行交互;Controller则是Servlet类、JavaBean类,它用于管理用户与视图发生的交互;EJB和JavaBean对应于Model,提供应用业务逻辑,进行业务数据的处理。MVC系统模型明确的将数据的显示和数据业务的处理分开,从而使得逻辑结构更为清晰。如果数据的显示方式有所改变,只需更改JSP视图页面,而并不要求更改数据处理模块;反之,如果业务要求发生变化,也只需更改相应的处理数据模块。因而系统可以很容易加入新的业务,可以灵活适应各种需求的变化。当客户机请求JSP页面时,Web服务器通过内置的JSP引擎来解释执行JSP页面,JSP页面可以置于任何网络服务器端与应用程序服务端。在该系统中,JSP页面与Servlet进行数据交互,并调用相关的JavaBean,通过JDBC-ODBC桥实现Java与关系数据库的互连,并将处理数据查询、数据更新、添加和运行的存储过程等结果以页面文件形式返回给客户。
图1 系统体系结构
4.实例
身份认证是大多数的Web应用系统需要实现的基本功能之一。本文将以此Web应用程序的开发为例,介绍基于上节所提出的方法进行Web应用程序开发的具体步骤和技术细节。通常,实现身份认证的Web 应用程序主要具备以下功能:提供用户登录界面,并且能够在客户端对输入数据进行简单的格式控制和数据验证。根据输入的用户名和密码判断用户是否存在以及密码的正确性。如果验证通过,提取
该用户的个人资料并设置其状态为已登录,反之则设置其状态为未登录。该部分的程序涉及到对后台数据库的读取操作以及用户数据的存储,并根据用户的登录状态创建相应的登录结果页面,返回至该用户的浏览器。在基于MVC设计模式开发的身份认证的程序中,登录入口界面以及登录结果页面为用户视图模块(View);用户登录的整体流程控制由LoginServlet实现;具体的用户合法性判断和有关数据库操作由loginBean实现。
身份认证程序需要进行以下步骤:
(1)对用户在登录页面login.html中输入的数据,利用脚本程序进行客户端简单验证,并提交给LoginServlet。
(2)LoginServlet 首先创建loginBean的实例,把该用户的username 和password作为参数传入。
(3)调用loginBean的executeQuery()方法来进行用户验证。该方法首先利用参数username和password通过JDBC查询数据库用户信息表,判定数据库中是否存在该用户、密码是否正确等。当验证通过时,设置表示用户登录状态的session并从数据库中读取该用户的基本信息存放在当前会话中;反之,设置登录状态为False。
(4) LoginServlet根据loginBean返回的结果,给用户生成返回页面。下面是控制模块的部分代码:
import javax.servlet.*;
import javax.servlet.http.*;
import mybean.loginBean;