admin 管理员组文章数量: 887044
2024年1月12日发(作者:hbase详解)
NETW0RK AND C0MMUNICAT10N 网络与通信 MVC设计模式在JSP开发中的应用 李海涛 (台州职业技术学院,台州318000) 摘要:针对目前多层Web应用开发的难点,讨论了MVC设计模式,并将MVC设计模式引入JSP应用开发中。 MVC设计模式分离了数据的控制和数据的表现,在实现多层Web应用系统中具有明显的优势。 关键词:Web应用;MVC;设计模式;JSP Application of MVC Design Pattern in JSP Development LI Haitao (Taizhou Vocational&Technical College,Taizhou 318000) Abstract:Aiming at the dififculty of multilayer Web application development,MVC design pa ̄ern is discussed,which is al- SO introduced in the JSP application development.MVC design paRern separates control of data from representation of data, and therefore has the advantage of implementation of multi—layer Web applications. Key words:Web Application;MVC;Design Pattern;JSP 当前的应用系统正在向多层Web的方向发展。设计多层 Web应用的一个难点是如何创建结构合理整洁的瘦客户机层。 在组合正确的外观、行为和包装表示逻辑的同时,不能和任 何业务逻辑混杂,将用户界面、流程控制和业务逻辑进行分 离,要在各层创建易于阅读、维护和扩展的代码。这就需要 设计松散耦合应用程序的解决方案。提出的解决方案是MVC 设计模式。 务。 (2)视图(View)对象是用户看到并与之交互的界面,它 负责将应用显现给用户和显示模型的状态。其作用如下:1) 向用户显示数据;2)接收用户输入;3)与模型层交互,向 模型查询业务状态;4)接收模型发出的数据,更新显示用户 界面。 (3)控制器fContolrler)负责视图和模型之间的交互,控 1 MVC设计模式 由于C/S开发程序变更不够灵活,维护和管理的难度大。 较大应用程序的数据结构和逻辑通常是程序中最稳定的部分, 但是这些数据的表现形式却是经常改变的。因此,将商务逻 辑和外观呈现分开,可以更容易地根据需求的改变来改进程 序,从而不必触动商务逻辑就可以开发新的外观界面。在这 制对用户输入的响应方式和流程。它主要负责两方面的动作: 把用户的请求分发到相应的模型;将模型的改变及时反应到 视图上。MVC将这些对象分离以提高灵活性和复用性。 2 JSP动态网站开发 JSP是一种较新的网站开发技术,国内采用的较少。但在 国外已经是比较流行的一种技术,尤其是电子商务类的网站。 Sun公司在Web服务器、应用服务器、交易系统以及开发工 种情况下,MVC设计模式于80年代后期由Xerox公司发表的 一系列论文中提出。它的关键点是将组件分成3个各自独立 具供应商间广泛支持与合作下,整合并平衡已经存在的对Ja— va编程环境(例如Java Servlets和JavaBeans)进行支持的技 的单位:模型(Mode1)、视图(View)、控制器(Contolrler)。 具体如图1所示。 术和工具后,产生的一种新的开发基于Web应用程序的方 法_Java Server Pages技术(JSP)。 这种动态网站开发技术主要有以下特点:能够在任何 Web或应用程序服务器上运行;分离了应用程序的逻辑和页 面显示;能够进行快速的开发和测试;简化开发基于Web的 交互式应用程序的过程。 JSP主要有4种开发模式[31[41:纯粹JSP实现、JSP+Jav— 图1 MVC设计模式 aBean实现、JSP+JavaBean+Servlet实现和J2EE模式实现。 上述3部分的具体任务如下Il_: (1)模型对象表示Web应用程序的数据元素,用户可与 这些数据元素进行交互,它是应用逻辑的反映。模型封装了 而JSP+JavaBean+Sevlret的实现体现了MVC设计模式。 视图由JSP实现,模型由JavaBean实现,控制器则由Servlet 实现。 数据和对数据的操作,是实际进行数据处理和计算的地方。 一作者简介:李海涛(1976一),男,研究生,讲师,研究方向: 信息处理与应用。 收稿日期:2011-03—10 个模型可以同时为多个视图提供数据,从而提高了代码的 可重用性。在MVC的3个部件中,模型拥有最多的处理任
电脑编程技巧与维护 3 实现 3.1 JavaBean设计——模型 (1)编写实体类JavaBean类:由set/get方法组成,一般 一张表对应一个实体类。 (2)编写数据库连接类DBConnection.java。 try{ Class.forName(”sun.jdbc.odbc.JdbcOdbcDriver”); ,/加载驱动 connection=DriverManager.getConnection(”jdbc:odbc:数 据源”,用户名,密码);//仓0建连接 }catch(Exception ex){ System.out.println(”数据库访问失败”); } (3)编写业务逻辑类(一般一张表对应一个DAO),由多 个操作的方法组成:例:BookDAO.java 1)一般要导入impo ̄java.sq1. 。 2)构造方法:创建连接对象。 3)增、删、改、查操作方法定义: public返回值类型方法名(参数列表) { 定义各变量 定义SQL try{ 创建语句对象 对SQL中未知参数赋值 发送SQL语句,即执行增、删、改、查操作(包含对返 回结果的处理,比如要保存在集合类中,一般是在查询操作 时)。 关闭各种对象 )catch(Exception e){ e.printStackTrace 0: } 返回语句 } 对方法返回值说明: (1)对增、删、改:返回值为整型。 (2)对查询:若返回一条记录,看记录所对应的实体类 的类名即为返回值类型。 若返回为多条记录:返回值类型为List接口类型。 3.2 JsP页面设计一视图 本部分主要有如下任务:表单组件选择是否正确;表单 组件name要修改;表单中action的跳转;包的导入;JS对表 单组件空的判断函数定义及调用。 (1)设计界面:此步骤中最好使表单中组件的name与由 set/get组成的实体类中的属性一致。 (2)页面跳转。 1)表单的action跳转 <form id=”forml”name=”forml”method=”post”ae— tion=”顾目名/<url—pattern>”> 上述中的<url—pattern>可以是Servlet文件名:注意与XML 与 中的<servlet—n砌e>一致,也可以是JSP文件名,需加扩展名。 2)onclick 0跳转 若要进行空值等判断,如: <form name:”forml”method=”post”action=…’> <input type=”submit”name=”Submit”value=”查询” onclick=”faction 0”> 则要在JavaScript脚本中使用下面语句进行跳转: document.form1.action=‘’”: (3)隐藏域 若跳转过去的servlet中有多于一个的操作,就要用隐藏 域进行区分。除非一个操作对应一个servlet。 格式:<input type=”hidden”ha]Be=”action”value=” add”,> 3.3 servlet编写——控制器 (1)修改doPost方法:里面只有一句:doGet frequest,re— sponse)。 (2)在doGet 0方法里: 1)一般地,下面3行先写: request.setCharacterEncoding(”gb2312”); response.setCharacterEncoding(”gb23 1 2”); PrintWriter out=response.getWriter 0: 2)若多个操作写在一个servlet里,则应先获得隐藏域的 值: String action request.getParameter(”action”); (3)获取页面提交的信息 1)若表单组件的值只有一个,用request.getParameter f” 表单组件的name”)获取页面提交的信息,若表单组件对应多 个值时,用request.getParameterValues(”表单组件的nalTle”) 获取页面提交的信息。 2)不管获取的是任何表单组件(包括年龄或分数等浮点 数)的值,返回值都是字符串Stirng类型,只不过request.get— Parameter 0方法返回是字符串,而request.getParameterValues ()方法返回的是字符串数组。 (4)转换 1)中文处理: Stirng name=new Stirng(nameTemp.getBytes(”ISO一 8859—1”)); 或String name:new String(nameTemp.getBytes(” gbk”)); 2)类型转换: 整型:Integer age=Integer.valueOf(ageTemp); 双精度:Double price=Double.vMueOf(prieeTemp); 单精度:Float score=Float.valueOf(scoreTemp); 3)当前系统日期的获得,并转换成字符串,此时,要导 入包java.text. o Stirng time=new SimpleDateFormat(”yyyy—MM-dd (下转到95页)
NETW0RK AND C0MMUNICAT10N 户端的所有应用产品,是流媒体在应用产品方面最为成功的 系统。Real System IQ能够支持多种平台,并且具有稳定性 高、对直播条件要求不高的特点,能够非常容易地在Intemet 上实现视频直播。 2o01. 网络与通信 参考文献 [1】张丽.流媒体技术大全【M】.北京:中国青年出版社, 【2】吴国勇.网络视频流媒体技术与应用【M】.北京:北京邮 电大学出版社,2001. QuickTime由QuickTime电影、QuickTime媒体抽象层和 QuickTime内置媒体服务器3个部分组成,可以通过互联网实 [3】丁兴富.远程教育学[M】.北京:北京师范大学出版社, 2001. 现实时的数字化信息流、文件流、工作流的回放功能。 4结语 由于传统的Internet网络本身不具备广播电视传播的功 能,而随着宽带数据通信技术、卫星广播技术、电子计算技 术、数字高清晰度电视技术等以数字技术为核心的新技术的 快速发展,流媒体技术得到了更为成熟的发展。因为流媒体 在宽带网络中的有效应用,为用户能够在互联网上获得广播 [4张丽.流媒体技术大全【4JM】.北京:中国青年出版社, 2001. 【5】肖磊,陈卓,郑重.流媒体技术与应用完全手册【M】.北 京:清华大学出版社,2003. [6曹宁,胡建荣,马银松.I6]P视频会议系统中音视频同步的 研究[J].中国图形图像学报,2005. 【7】李征.视频会议系统的技术与发展[J].中国有线电视, 2005. 电视资源带来了希望。流媒体技术为新兴的网络数据传输媒 体实现其完全的媒体传送功能提供了技术支持和操作平台, 同时也为广播电视媒体提供了全新的媒体发展形态和空间。 如今,流媒体技术还仅仅处于技术试用和产业萌芽阶段,要 [8】黄文涛,熊磊.网络实时视频传输研究与实现[J1.计算 机应用,2003. 想使其技术日臻完善和成熟,需要广大新技术人员的研究开 发以及新媒体市场的支持,同时还要注意流媒体在内容编辑、 内容管理和内容发布等方面的发展。 (上接第92页) HH:mm:ss”).format(new Date 0); sion,application等)的setAttribute 0进行保存,再进行页面跳 转。 (5)若是增加和修改操作,在第4和第6步之间应做一 步封装操作: 4结语 MVC设计模式分离了数据的控制和数据的表现,在实现 多层Web应用系统中具有明显的优势。它能更容易地构建可 复用的软件系统框架,同时简化软件开发,提高软件性能和 可维护性,达到提高软件质量的目的。首先介绍了MVC的3 个组成构件(模型构件、视图构件和控制构件),接着对JSP 进行了简要的介绍,最后详细阐述了MVC设计模式在JSP中 的实现。 先创建实体类对象,再调用setXXX 0方法来赋值。 (6)创建dao类的对象,调用方法: 一般格式:类名对象名=new类名0; 返回值类型变量名:对象名.方法名(参数); 1)要实现什么功能,就要调用对应的方法。 2)看对应的方法在哪个类里面,就要先创建哪个类的对 象,再调用其中的方法。 3)方法调用后,一般都要通过返回值判断操作是否成 功。所以关于返回值类型,一般要以所调用的DAO类中的方 法定义时的返回值类型为准。 (7)结果处理 参考文献 【1】田娟,徐钊.基于J2EE的MVC设计模式的分析与思考 【J].计算机与现代化,2010,(10):54—58. [21 Hans Bergsten,何健辉,许俊娟.JSP设计【M1.北京:中 国电子出版社,2002. [3】聂明.Java Web应用开发项目教程[M】.北京:电子工业 出版社,2009. 1)对增、删、改: 判断返回来的整型值,若大于O,则操作成功,否则操作 失败。 2)对查询结果的处理: ①若返回值是一条记录的,只要判断返回值不为空即可, 如:if(book!=nul1)。 【4]北京阿博泰克北大青鸟信息技术有限公司.使用JSP开发 Web应用系统[M】.北京:科学技术文献出版社,2008. ②若返回值是多条记录的,只要判断list不为空,语句 为:if(1ist.size 01=0)。 ③不管哪种查询,若要把servlet中调用数据库操作的方 法的结果返回到JSP页面,则要用各隐式对象(request,ses—
版权声明:本文标题:MVC设计模式在JSP开发中的应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1705064573h471806.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论