返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
2.5 JavaScript技术简介
JavaScript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。JavaScript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用JavaScript可以开发交互式Web网页。JavaScript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。运行用JavaScript编写的程序需要能支持JavaScript语言的浏览器。Netscape公司 Navigator 3.0以上版本的浏览器都能支持 JavaScript程序,微软公司 Internet Explorer 3.0以上版本的浏览器基本上支持JavaScript。微软公司还有自己开发的JavaScript,称为JScript。 Javascript和Jscript基本上是相同的,只是在一些细节上有出入。Javascript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。
JavaScript 使网页增加互动性。JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。
2.5 基于B/S的WEB应用体系结构
2.5.1 传统的两层体系结构
在Web发展的初期,Web应用主要是通过静态页面在Internet上发布信息。用户通过浏览器向服务器发送请求,服务器接收用户端的请求,向客户端浏览器发送所请求的页面。在这种结构下,网站上的页面是静态的,无法根据用户的实际使用情况做动态的变化。网站的信息提供者通过更新服务器上的网页来向用户提供最新的信息。用户和浏览器之间只有有限的交互,而网站和用户之间几乎没有交互。
2.5.2 三层体系结构
三层体系结构图如图2-3所示。
CGI,JSP,PHP等技术的出现,使得开发动态交互式的Web应用得以实现。用户通过浏览器向服务器发送请求,Web服务器接收客户端发送来的请求,对请求进行分析,如果请求是静态页
图2-3 三层体系结构图
就将所请求的页面发送到客户端;如果请求的是动态页面,那么就执行此动态页面,并将执行结果发送给客户端。动态页面中的脚本程序可以和数据库服务器进行交互。
Web服务器可以根据用户的请求动态更新页面上的信息,Web信息提供者可以通过改变数据库中的数据向用户提供最新信息,而不需要逐个更改页面。用户可以通过这些动态页面向数据库中输入信息,从而增强了用户和服务器之间的交互性。
2.6 MVC三层开发模式简介
MVC是一种设计模式,她强制性地把应用程序的输入、处理和输出分开。MVC应用程序总是由这三个部分组成:模型、视图和控制器,它们分别担负不同的任务。图2-4 显示了这几个模块各自的功能以及它们的相互关系。
图2-4 MVC的工作原理
视图显示模型状态,接受数据更新请求,把用户输入数据付给控制器;控制器接受用户请求,调用模型响应用户请求,选择视图显示响应结果;最后模型代表应用程序状态,响应状态查询处理业务流程,通知视图业务状态更新。了解了MVC模式之后我们了解到它的作用主要是使我们的程序独立性更高,更加模块化,各个层独立完成自己的任务,耦合低,一个部分出错后,其它部分不会受到影响,这样我们写出来的程序就更加清晰了。
2.6.1 JSP开发中的MVC模型
JSP网站开发技术标准提供了两种开发模式:一种是JSP+JavaBean开发模式;一种是JSP+Servlet+JavaBean开发模式。
JSP+JavaBean模型图如图2-5所示。
图2-5 JSP+JavaBean模型图
在这种模型中,JSP页面独自响应请求并将处理结果返回给客户,所有的数据通过JavaBean来处理,JSP实现页面的显示。此模型常常会导致页面被嵌入大量的脚本语言或者Java代码段,当处理大型业务时,页面程序将变得异常复杂给开发和维护带来困难。
JSP+Servlet+JavaBean模型图如图2-6所示。
图2-6 JSP+Servlet+JavaBean模型图
Servlet技术是一种采用Java技术来实现CGI功能的一种技术。Servlet是运行在Web服务器上,用来生成Web页面。Servlet技术非常适于服务器端的处理和编程。
在此种开发模式中,JSP技术用来显示页面,该页面中没有任何的商业处理逻辑,通过Servlet技术来完成大量的事物处理工作。Servlet用来处理事务的请求,充当着一个控制者的角色,并负责向客户发送请求,创建JSP需要的Bean和对象,根据用户的请求行为,决定将哪个JSP页面发送给用户。
从上面两种开发模式来说:第二种模式要好些,更适合于团队开发,速度相对较慢,但是可维护性高。
2.6.2 Struts开发中的MVC模型
在以上提到的JSP + JavaBean或 JSP + Servlet+JavaBean也可以完成相应的功能,但Jsp + JavaBean的缺点是Java代码全部嵌套在JSP页面里边,这样一旦出现问题,将会很难从HTML与JAVA混合的页面出找出错误。JSP + Servlet+JavaBean这种模式Servlet虽然可以起到一个控制作用,但Servlet中的代码不够灵活,往往跳转语句是一些硬代码,这样如果以后出现业务逻辑的改变,就需要改变很多的代码,Struts用XML文件保存了会动态改变的一些跳转语句与一些国际化的参数,这样如果程序要改变,只需要简单的改变XML文件即可。Struts帮我们完成了很多重复性的工作,提高我们的工作效率,当然程序也更加健壮。
因此,下面结合Struts的运行过程介绍Struts核心组件的职能和作用来完成MVC三层的开发设计。如图2-7所示,ActionServlet是Struts最核心的组件。在Web容器启动的时候,ActionServlet被初始化,加载struts-config.xml配置文件(这也是为什么当Struts配置文件修改的时候需要重新启动Web容器)。Struts处理请求的过程如下:
(1)当客户端浏览器发起请求到ActionServlet时,ActionServlet首先对请求进行一系列处理:根据请求的路径和配置信息找到对应的Action Bean和Form Bean。
(2)在确定将要调用的Action Bean和对应的 Form Bean后,就将请求中包含的值填充到 Form Bean中(Action可以不关联任何ActionForm,所以这一步是可选的)。在调用Action的execute方法前,ActionServlet还需要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。
(3)然后Struts将请求分发至相应的Action Bean处理,ActionMapping参数、ActionForm参数、requset和response都作为参数传给处理请求的Action Bean和execute方法。
(4)Action调用业务逻辑方法,得到返回值,并返回ActionForward对象。
(5)控制权重新回到ActionServlet,ActionServlet根据Action返回的ActionForward对象转发到相应的JSP页面。
(6)处理结果返回给浏览器。
图2-7 Struts的工作原理
2.7 本章小结
本章主要介绍了系统实现的关键技术,首先从JSP、Servlet、JavaBean、JavaScript编程语言开始入手,紧接着介绍B/S的WEB应用体系结构,最后介绍了MVC三层开发模式技术在JSP与Struts中的运用。
3 系统需求分析
需求分析不仅是软件定义时期的最后一个阶段,而且是软件开发期的第一个阶段,也是关系到软件开发成败的关键步骤。只有通过需求分析才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。本阶段所研究的对象是软件项目的用户要求,必须全面理解用户的各项要求,但
上一篇:
基于Android系统的车载视频机器人设计-毕业设计(论文)任务指导书
下一篇:
试论APP广告在手机中的应用