JBuilder2005 Struts深度体验之概述

2016-02-19 13:44 4 1 收藏

下面这个JBuilder2005 Struts深度体验之概述教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - 编程语言 】

Struts是基于Model 2实现的技术框架,Model 2是经典的MVC(Model,View,Control)模型的Web应用变体,这个改变主要由于HTTP协议的无状态性引起的。Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到不同层间松散耦合的效果,提高系统灵活性、复用性和可维护性。在多数情况下,你可以将Model 2与MVC等同起来。
  
  图 1表示一个基于Java技术典型的MVC网络应用,从中可以看出MVC中的各个部分对应于J2EE哪些实现技术。
  
  
  图 1 MVC和J2EE技术
  在利用Model 2之前,我们把所有的表示逻辑和业务逻辑都集中在一起(如我们前两个专题中的login.jsp),有时也称这种应用模式为Model 1,Model 1的主要缺点就是紧耦合,复用性差,维护成本高。
  
  由于Struts就是基于Model2实现的框架,所以它底层的机制也是MVC,我们通过图 2描述Struts的具体实现:
  
  
  图 2 Struts MVC实现
  1.框架初始化
  
  Struts框架总控制器(ActionServlet)完成所有初始化工作。总控制器是一个Servlet,它通过web.XML配置成自动启动的Servlet,读取配置文件(struts-config.xml)的配置信息,为不同的Struts模块初始化相应的ModuleConfig对象。配置文件中的Action映射定义都保存在ActionConfig集合中,配置文件中其他配置信息分别保存在ControlConfig集合、FormBeanConfig集合、ForwardConfig集合和MessageResourcesConfig等集合中。
  
  要非凡指出的是,初始化动作在Web容器启动时自动完成,初始化完成后,它将通过URL匹配映射截获所有以.do结尾的URL请求。
  
  2.客户端发送一个HTTP请求
  
  用户通过提交表单或调用URL向Web应用程序器提交一个请求,请求的数据用HTTP协议上传给Web服务器。
  
  3.总控制器接截获这个请求并实例化Form Bean
  
  控制器接收HTTP请求,并从ActionConfig中找出对应该请求的Action子类,假如没有对应的Action,控制器直接将请求转发给JSP或者静态页面。假如有对应的Action且这个Action有一个相应的Action Form,ActionForm被实例化并用HTTP请求的数据填充其属性,然后保存在Servlet Context中(request或session中),这样它们就可以被其它Action对象或者JSP调用。
  
  此外,还可以在ActionForm填充数据后还可以调用validate()进行数据有效性自检,并且可以返回一个包含所有错误信息的ActionErrors对象,假如ActionErrors不空,总控制器直接将请求返回到入口页面。
  
  4.控制器将请求转交给具体的Action处理
  
  控制器根据配置信息将请求切换到具体的Action,这个Form Bean也一并传给这个Action的execute()方法。
  
  5.Action完成具体的业务逻辑操作
  
  Action很简单,一般只包含一个execute方法,它负责执行相应的业务逻辑,假如需要,它也可能进行相应的数据检查。执行完成之后,返回一个ActionForward对象,控制器通过该ActionForward对象来进行转发工作。
  
  6.Action返回目标响应对象给总控制器
  
  Action根据业务处理的不同结果返回一个目标响应对象给总控制器,这个目标响应对象对应一个具体的JSP页面或另外一个Action。
   
  7.总控制器将HTTP请求转换到目标响应对象中。
  
  总控制器根据业务功能Action返回的目标响应对象,将HTTP请求转换到这个目标响应对象中,一般情况下,它是一个具体的JSP页面。
  
  8.目标响应对象将结果展现给用户
   
  目标响应对象(JSP)将结果页面展现给用户。
  
  客户端发送一个HTTP请求,通过Struts框架最后获得一个HTTP响应,这一过程非常重要,它是理解Struts框架的重点。图 2描述了Struts框架的结构,而图 3通过一个活动图更具体描述接受请求直至返回响应的整个过程:
  
  
  图 3 Struts接受并返回响应的中间过程进入讨论组讨论。

来源:http://www.tulaoshi.com/n/20160219/1605105.html

延伸阅读
Web应用服务器会产生各种事件,如Web容器启动事件、session过期事件、请求到达事件等等。我们已经在《JBuilder 2005实战jsp开发》中阐述了这些事件的接口,事件处理方法使程序对Web应用服务器的控制能力大为提高。 !-- frame contents -- !-- /frame contents -- 在这一节里,我们监听Web容器启动关闭的事件,在事件发生时记录We...
标签: Java JAVA基础
  由于在login.jsp的表单中通过action属性指定switch.jsp为响应的JSP文件,当用户在login.jsp中选定登录用户,输入密码提交表单后,客户端将向服务器发送一个HTTP请求,服务器即调用switch.jsp来响应这个请求。 表单中用户名和密码两组件的数据将通过HTTP请求传给服务器的switch.jsp,服务器将这些信息封装在request对象中传给sw...
标签: Java JAVA基础
在测试用例中通过setUp()、tearDown()创建测试固件,只能使这个测试固件在单个测试用例的不同测试方法中共用,如果有多个测试用例都需要使用相同的测试固件,就需要将测试固件抽取到一个独立的类中。JBuilder提供了3个预定义的测试固件类,它们分别是: ·JDBC测试固件(JDBC Fixture):用于获取数据库连接的测试固件,用...
标签: Java JAVA基础
  用户登录模块程序的结构图如下图所示: 图 1 实例页面流转图 用户在登录页面中录入密码、验证正确后转向欢迎主页面,如果输入的密码错误,导向登录失败页面。这个模块包含6个JSP文件、3个Java类及两张后台表。 6个JSP文件分别为用户登录、页面流转控制、错误处理、登录成功和失败、以及退出系统的处理页面,简单介绍如...
标签: Java JAVA基础
为了便于讲解,拟通过两个简单的业务类引出测试用例,一个是分段函数类,另一个是字符串处理类,在这节里我们先来熟悉这两个业务类。 分段函数类 分段函数Subsection类有两个函数,sign()是一个符号函数,而getValue(int d)函数功能如下: 当d < -2时,值为abs(d); 当-2≤d<2 且d!=0时,值为d*...

经验教程

88

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部