Struts2权威指南总结3:Struts2基础

By | 05月09日
Advertisement

1,struts1的mvc实现:

Struts1是世界上最古老的mvc框架,出现于2001年。由ActionServlet作为核心API。

Struts1使用ActionForm接受请求参数。

2,WebWork

WebWork以ServletDispatcher为核心。使用ServletDispatcher处理用户的所有请求,它是整个WebWork框架的核心控制器。

WebWork的Action与Struts2类似,都可以继承基类ActionSupport,以便于实现一些功能。WebWork的Action就是一个普通的POJO。

WebWork以xwork.xml为配置文件。在配置xwork.xml之前,要先在web.xml中配置核心控制器ServletDispatcher(与struts2的核心Filter类似)。

配置如下:

Struts2权威指南总结3:Struts2基础

配置后,web应用会自动加载webwork框架。并加载WEB-INF/classes下的xwork.xml文件

Xwork.xml配置文件配置:

Struts2权威指南总结3:Struts2基础

实际上webwork可以包含两个配置文件,还有一个webwork.properties配置文件,这个文件是标准的属性文件,有一系列的key/value组成,通常配置一些常量,与struts2的struts.properties类似。以下是webwork.properties文件的配置示例:

Struts2权威指南总结3:Struts2基础

Webwork同样也支持通过在Action的同一目录下放校验文件进行校验,这些都与struts2非常类似。

3,struts2的三大组成部分:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。这三个组件里,struts2提供了核心控制器FilterDispatcher,用户需要实现业务控制器和业务逻辑组件。

4,FilterDispatcher:运行在WEB应用中,拦截所有的用户请求,如果用户请求以action结尾,该请求将被转入struts2框架处理。获取*.action后,根据前面*的部分确定使用哪个业务逻辑组件。

Struts2的Action都被定义在struts.xml中。

5,struts2用于处理用户请求的Action实例,并不是用户实现的业务控制器,而是Action代理,因为用户实现的业务控制器没有与Servlet API耦合,显然无法处理用户请求。

Struts2通过拦截器将用户的请求参数解析出来,传入到Action中,并回调Action的execute方法处理用户的请求。这时AOP面向切面编程思想的体现。

我理解的Struts2 AOP模型:可以将Action AOP整体看成一个类,其实类似于环绕增强,拦截器就是增强的方法。类似于InvocationHandler中的invoke方法,invoke方法可以在目标方法的前后实现增强功能。这里的Action的业务逻辑方法就相当于目标类的需要实现增强的方法,拦截器就相当于环绕增强的代码。

Struts2权威指南总结3:Struts2基础

6,JavaEE里的模型组件,通常是指系统的业务逻辑组件。

7,struts2改变了struts1只能使用JSP作为视图组件的现状,struts2可以使用模板技术,如FreeMarker,Velocity作为视图技术。

Action返回的仅仅是视图名称,并未与视图技术产生关联,需要在struts.xml中配置result来与视图技术产生关联。如果不指定type属性,则默认使用JSP视图资源。

如果需要使用其他视图技术,可以在配置result时指定响应的type属性,例如:如果使用FreeMarker,则指定type为freemarker的type属性。

8,struts2框架的运行流程非常类似于webwork的运行流程。Struts2其实就是webwork2.2的升级版。

9,给struts2配置核心控制器,在web.xml中配置。

Struts2权威指南总结3:Struts2基础

可以为filter配置初始化参数。通过<init-param>指定。有特殊意义的三个初始化参数:

l Config:是一个以英文逗号隔开的字符串,每个字符串都是一个xml配置文件的位置,struts2框架将自动加载指定的配置文件。

l actionPackage:是一个以英文逗号隔开的字符串,每个字符串都是一个包空间,struts2将扫描这些包空间下的Action类。

l configProviders:如果用户需要实现自己的ConfigurationProvider类,用户可以提供一个或多个实现了ConfigurationProvider接口的类,然后将这些类的类名设置成该属性的值,多个类名之间以英文逗号隔开。

也可以通过这个<init-param>指定struts2常量。

10,如果servlet是2.3以前的规范,则web应用不会自动加载struts2框架的标签文件,因此必须在web.xml中手动配置加载struts2标签库。

Struts2权威指南总结3:Struts2基础

通过<taglib-location>定义了struts2标签库配置文件的物理位置,因此必须手动复制struts2的标签库定义文件,复制到web应用的WEB-INF目录下。

11,struts.xml的配置一旦多起来,就不容易管理,最好将其分开管理,可以设置一个中心配置文件,在中心配置文件中导入从配置文件,通过<include>标签可以完成。

Struts2权威指南总结3:Struts2基础

12,struts-default.xml文件中的定义。

定义了默认包空间:struts-default.

定义引用的默认拦截器栈:defaultStack.

13,struts2框架提供了一种类似Eclipse的扩展方式,允许用可插拔的方式来安装插件。例如spring插件,提供了一个类似struts2-xxx-plugin.jar的文件,这个文件就是插件安装文件。只要将该文件放在WEB-INF的lib目录下,struts2框架将会自动加载该框架。

由此可知,如果我们要开发自己的struts2插件,只需要将开发的插件放到命名为struts2-xxx-plugin.jar的jar包中,将这个jar包放到WEB-INF/lib下即可。Struts2框架就会自动去加载这个插件。

14,在struts.properties中可以定义一些struts2的常量属性,但一般我们在struts.xml中定义即可,通过<constant>标签即可实现。示例:

Struts2权威指南总结3:Struts2基础

15,struts.xml文档结构:

Struts2权威指南总结3:Struts2基础

Struts2权威指南总结3:Struts2基础

Struts2权威指南总结3:Struts2基础

Struts2权威指南总结3:Struts2基础

16,strtus.xml的dtd约束:

Struts2权威指南总结3:Struts2基础

Similar Posts:

  • 3.[Struts2权威指南笔记]整合Spring

    1.Struts2插件 Struts2通过提供各种插件,用于与大部分流程的J2EE框架进行整合. 插件概述 Struts2的插件是一个JAR文件,这个JAR文件可以用于扩展.改变或者添加Struts2的功能.每个Struts2的插件JAR都包含一个名为struts-plugin.xml的配置文件,struts-plugin.xml文件的内容与普通的struts.xml文件内容完全相同. 当把这个包含struts-plugin.xml文件的JAR文件复制到Web应用中时,Struts2会自动加载该

  • Struts2权威指南笔记

    Struts2权威指南笔记 1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也很有效,由于它把不通的模型和不同的视图组合在一起,完成不同的请求 ⑤ Mvc更符合软件工程化管理的精神 2.Struts2框架的大致处理流程: ① 浏览器发送请求,如请求/mypage.action ② 核心控制器FilterDispatcher根据请求决定调用合适的Action ③ Webwork

  • Struts2权威指南--基于WebWork核心的MVC开发源码

    <<Struts2权威指南--基于WebWork核心的MVC开发>>源码

  • struts2权威指南 aop实现原理 笔误代码

    关键字:struts2 ,aop实现原理 最近在学习李刚老师的struts2权威指南 ,从书的内容上看感觉李刚老师有丰富的开发经验. 不过在学习到213页关于aop拦截器的实现原理代码中,感觉有个笔误的地方! 拦截器的实现原理JDK的动态代理 /** * 因为Dog 动态代理只能对实现了接口的实例来生成代理 * @author Administrator * */ public interface Dog { public void info(); public void run(); } pu

  • 《struts2权威指南》学习笔记之struts2之文件下载

    对于服务器上的英文名的文件,可以方便的使用<a href=""/></a>进行下载,但如果是中文文件名的文件,如果使用<a href="中.jpg"></a> 就会出现连接上的乱码(如%4e%54%79),为了解决这个问题,struts2通过一个文件下载拦截器支持中文命名文件的下载 首先编写web.xml <?xml version="1.0" encoding="UTF-8&quo

  • 《struts2权威指南》学习笔记之struts2整合Spring

    整合Spring,换句话说,也就是让spring的IOC功能为我们的struts action注入逻辑组件 首先需要加载struts2-spring-plugin-2.0.6.jar这个包,这个是关键,他可以帮我们把struts2和spring仅仅整合在一起 首先是web.xml <?xml version="1.0" encoding="utf-8"?> <web-app version="2.4" xmlns="h

  • 《struts2权威指南》学习笔记之struts2 ajax标签

    div标签用于在页面上生成一个div元素,但这个div元素内容不是静态内容,而是从服务器上获取数据,为了让该div能够取得服务器上的数据,必须为div标签指定一个href属性,这个href属性必须是一个action,该action负责生成该div的内容 因为div是一个ajax标签,因此要为这个标签增加theme="ajax"属性 web.xml <?xml version="1.0" encoding="GBK"?> <web

  • struts2权威指南-略说struts1、webwork、struts2

    所谓Model1,就是jsp大行其道的时代. Model1可以开发小规模项目. 局限性: 混有view和controler两种角色,将控制逻辑和表现逻辑混杂在一起,重用性低,增加应用扩展度和维护性. 一个设计模式提供一种提炼子系统或软件系统中的组件或者他们之间的关系的纲要设计.设计模式描述普遍存在的在相互通信的组件中重复出现的结构,解决一般性的设计问题. Struts1是世界上第一个发布的MVC框架. Struts1,控制器是它的核心.有两个控制器:核心控制器(ActionServlet),业务

  • http权威指南 第一部分(基础)

    http使用的是可靠的数据传输,因此即使数据从地球一端传递到另外一端也能保证数据的正确性.对于开发人员来说这是一件好事,因为就不必担心数据完整性的问题了.http属于应用层的协议,在使用http的时候无需担心网络细节,因为联网的细节都交给了它更低一层的TCP/IP因特网传输协议. URI.URL.URN URI称作统一资源标识符,URL为统一资源定位符,URN为统一资源名.其中URI包含了URL和URN.但是目前URN还处于试验阶段,未大范围使用,所以可以理解为URI就是URL了. URL是根据

  • Puppet权威指南

    <Puppet权威指南> 基本信息 作者: 王冬生 丛书名: Linux/Unix技术丛书 出版社:机械工业出版社 ISBN:9787111485988 上架时间:2014-12-25 出版日期:2015 年1月 开本:16开 版次:1-1 内容简介 计算机书籍 自动化运维领域的重磅之作,Puppet领域权威的.系统的.有深度的.极具企业实战价值的著作.腾讯高级运维工程师撰写,获得了来自腾讯.百度.阿里巴巴.新浪等多家世界级互联网企业的总监级运维专家的高度认可和联袂推荐. 工欲善其事,必先利其

Tags: