Struts2已经推出了稳定的版本,其先进的架构和设计思想,随着时间的推移,相信会有越来越多的人开始使用struts2原有的人气,加上采用了WebWork的设计架构,Struts2必将成为最为流行的Web开发框架之一。
struts2_学习笔记
本文向大家简单介绍一下MyEclipse8.5开发环境配置中SVN安装问题
1.以下属于struts2的控制器组件是: A.Action B.ActionForm C.ActionServlet D.dispatchAction 2.以下属于struts2的体系结构的是:(多选) A.struts2控制器组件 B.struts2配置文件 C.FilterDispathcer D.Action
Apache Struts2是一个为企业级应用打造的优秀的、可扩展的WEB框架,该框架旨在充分精简应用程序的开发周期,从而减少创建、发布直到应用所花费的时间。<br> Apache Struts2原本就是举世闻名的Webwork2,在各自经历几年的发展之后,Struts和WebWork社区决定合二为一,也就是今天的Struts2。<br> Struts是一个基于Model2的MVC框架,为应用程序的WEB层提供了良好的结构严谨的实现。Struts发展较早,早期的Struts1.X已被很多J2EE程序员熟悉,经过多年来的发展,这支队伍变得越来越大,很多企业级应用程序都是基于Struts开发的。<br> Struts2与Struts1.X已经不能再放到一起比较,虽然都是对MVC架构模式的实现,本质却完全不同。Struts2的前身是WebWork,其实现方式和功能都要优于Struts1.X,但是,Struts先入为主,很多应用程序都基于Struts,其生命力和普及度使得WebWork落于下风。随着新思想和新架构的不断涌入,特别是WEB2.0被大量提及,Struts1.x显然无法跟上日新月异的变化,在很多应用上显得力不从心,最终催生了Struts2.0。可以说Struts2.0是为变而变。<br> 很大程度上,Struts2.0无法避开投机取巧的嫌疑。不过,借助Struts的名声,加上WebWork构建良好的框架,二者取长补短,确实不失为一种黄金组合和一种绝佳的宣传方式。
一、准备工作及实例1.解压struts-2.1.6-all.zipapps目录:struts2自带的例子程序docs目录:官方文档。lib目录:存放所有jar文件。Src目录:源文%件存放地2.六个基本包struts2-core-2.1.6.jar:开发的核心类库freemarker-2.3.13.jar:struts2的UI标签的模板使用freemarker编写commons-logging-1.0.4.jar:日志包ognl-2.6.11.jar:对象图导航语言,通过它来读写对象属性xwork-2.1.2.jar:xwork类库,struts2在其上进行构建commons-fileupload-1.2.1.jar:文件上传组件。
OGNL表达式只有给user.xxx传值,它才会自动构造,想初始化model,第一是可以自己NEW,第二就是传递参数进去,但这时候必须保持参数为空的构造方法在model中F:访问值栈中的action的普通属
1在MyEclipse中新建web工程 2在struts-2.2.1.1-all\struts-2.2.1.1解压struts2-blank.war( 最基础的示例程序 ) 3进入struts-2.2.1.1\apps\struts2-blank\WEB-INF\classes下把struts.xml拷到web工程的src下面,因为工程编译完它默认就把src下的文件放到class文件下面。
Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品,相反,构建在WebWork基础之上的Struts2是一个运行稳定、性能优异、设计成熟的WEB框架。
jqGrid的文档,要想生成一个jqGrid,最直接的方法就是:$("#grid_id").jqGrid(options);也就是通过选择符得到一个table的jQuery对象,然后调用jqGrid(options),得到一个jqGrid对象。重点就在传入的option选项上了,通过这些选项可以得到各种各样的Grid表格。
Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。
struts2的拦截器只能够控制*.action,其他的jsp文件等会被忽略,所以通过struts2的拦截器实现权限控制有一定的缺陷。我们可以通过编写一个filter来控制其他请求的权限。
大部分时候,Web应用不允许浏览者自由上传,尤其不能允许上传可执行性文件——因为可能是病毒程序。通常,我们可以允许浏览者上传图片,上传压缩文件等;除此之外,还必须对浏览者上传的文件大小进行限制。因此必须在文件上传中进行文件过滤。 从上面的Action中可以看出,Action内有两个方法分别用于获取文件类型和文件大小,为了实现文件过滤,完全可以通过判断这两个方法的返回值来实现文件过滤。 为了让上面的Action增加文件过滤的功能
Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 Struts 2 Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。 Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期。堆栈能够根据需要和不同的Action一起使用。
本章讲述Struts2的工作原理。 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验,那么千万不要想当然地以为这一章可以跳过。实际上Struts1.x与Struts2并无我们想象的血缘关系。虽然Struts2的开发小组极力保留Struts1.x的习惯,但因为Struts2的核心设计完全改变,从思想到设计到工作流程,都有了很大的不同。 Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不是一个不成熟的产品。
Struts2.0 配置文件属性的详细介绍
struts2利用拦截器和注解进行权限控制
OGNL表达式简介OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,OGNL是一个开源项目,读者可以访问其官方站点www.ognl.org以获得源代码和相关资料。OGNL是一种功能强大的EL(ExpressionLanguage,表达式语言),可以通过简单的表达式来访问Java对象中的属性,而不是直接调用对象的获取和设置方法可以提供许多应用。
Struts2远程执行漏洞详解。概述:Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
为什么需要ModelDriven 所谓ModelDriven,意思是直接把实体类当成页面数据的收集对象。比如,有实体类User如下: 假如要写一个Action,用来添加User。