JBuilder2005 Struts深度体验之概述

zZ__沉默

zZ__沉默

2016-02-19 13:44

下面这个JBuilder2005 Struts深度体验之概述教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!
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接受并返回响应的中间过程进入讨论组讨论。
展开更多 50%)
分享

猜你喜欢

JBuilder2005 Struts深度体验之概述

编程语言 网络编程
JBuilder2005 Struts深度体验之概述

JBuilder2005 Struts深度体验之升级

编程语言 网络编程
JBuilder2005 Struts深度体验之升级

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JBuilder2005单元测试体验之测试配置

Java JAVA基础
JBuilder2005单元测试体验之测试配置

JBuilder2005 Servlet开发之自启动

编程语言 网络编程
JBuilder2005 Servlet开发之自启动

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JBuilder2005实现重构之杂项重构

编程语言 网络编程
JBuilder2005实现重构之杂项重构

JBuilder2005实现重构

Web开发
JBuilder2005实现重构

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Win7快捷键学问大 丢进回收站Ctrl+D键搞定

Win7快捷键学问大 丢进回收站Ctrl+D键搞定

jQuery MD5加密实现代码

jQuery MD5加密实现代码
下拉加载更多内容 ↓