ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:709.78KB ,
资源ID:23139170      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23139170.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第10章 Structs2框架技术.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第10章 Structs2框架技术.docx

1、第10章 Structs2框架技术第10章 Struts2框架技术主要内容 Struts2快速入门 Struts2核心概念 OGNL与值栈 Struts2标签 拦截器 Struts2国际化 Struts2输入校验 Struts2类型转换 Struts2其它常见功能实现Struts是整合了当前动态网站技术中Srvlet、JSP、JavaBean、JDBC、XML等相关开发技术基础之上的一种主流Web开发框架,是一种基于J2EE平台的经典MVC的框架。采用Struts可以简化MVC设计模式的Web应用开发工作,很好地实现代码重用,使开发人员从繁琐的工作中解脱出来,来开发具有强扩展性的Web应用。S

2、truts2是 Java Web项目开发中最经典的Web框架技术,受到许多软件开发人员喜爱与追捧,是软件企业招聘Java软件人才时要求必备的技能之一。Struts是Apache软件基金会下Jakarta项目的一部分。2007年发布Struts2.0,Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并,全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Str

3、uts 2可以理解为WebWork的更新产品。10.1Struts2快速入门Struts是一个优秀的开源MVC框架,可以到 http:/struts.apache.org/下载最新版的Struts以及文档和示例等。本章以下载struts2.2.1.1的Full Distribution版本为例进行介绍。将下载后的压缩文件解压之后,包含以下目录结构。 apps:该目录下存放了一些基于Struts2的简单示例, 大学如struts2-blank.war是一个配置了Struts2的空白 出 Web应用项目。这些示例对于初学者而言非常有用, 社版便于迅速地理解Struts2。 docs:该目录下包含了

4、Struts2的一些相关文档,如教程、Struts2 API文档等,读者在开发Struts2项目时可参考这些文档。 lib:该目录下包括了Struts2的核心类库以及第三方插件类,开发Struts2应用项目的需要的JAR文件均存放在此目录下。 src:该目录下包含了实现Struts2的全部源代码。注意:lib目录下有很多JAR文件,对于基本的Struts2 Web项目至少要: struts2-core-2.2.2.1.jar; xwork-2.2.1.1.jar; ognl-3.0.jar; freemarker-2.3.16.jar; commons-fileupload-1.2.1.jar

5、; commons-io-1.3.2 .jar且勿把Struts2软件包中所有的JAR文件都添加到项目中,因为其中的某些JAR文件依赖于其他的JAR文件(而这些JAR文件不在Struts2软件包中),添加到项目中会造成项目不能运行。Struts2的安装步骤o 复制上述JAR文件至WEB-INF/lib目录下web.xml中配置struts拦截器o struts拦截器内容 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* o 在src目录下创建struts.xml。该文

6、件是Struts2的核心配置文件。 经过以上三步,就可以在Java web中添加了Structs2框架的支持。10.2Structs2简单示例内容:一个支持Struts2框架的Java Web应用项目。在index.jsp页面输入姓名,在hello.jsp页面输出用户姓名。 在Eclipse新建一个支持Struts2框架的Java Web应用项目; 配置web.xml; 创建struts.xml; 创建Action及JSP页面。第一步:创建dynamic web project项目,把Structs2的包放入WEB-INF中的lib中,创建index.jsp第一个Struts简单示例 请输入你

7、的大名: 第二步 创建HelloAction类。package com.jlp.action;/导入ActionSupport类,用户自定义的Struts Action需要继承此类import com.opensymphony.xwork2.ActionSupport;/* HelloAction类,处理Struts2的业务逻辑*/public class HelloAction extends ActionSupport /定义一个私有成员变量name,用于获取表单中对应名称输入域的信息。 private String username; /setter和getter public Stri

8、ng getUsername() return username; public void setUsername(String username) this. username = username; /覆盖ActionSupport类的execute()方法,用于处理业务逻辑,并返回相应结果视图 public String execute() /返回SUCCESS代表的视图 return SUCCESS; 第三步 定义处理结果视图hello.jsp.结果 hello,$username第四步 在Struts.xml中配置Action在src中建立struts.xml文件并写入以下内容 /W

9、EB-INF/pages/hello.jsp 整个文件如下:运行结果:10.1.3 STRUTS2工作流程Struts应用开发流程是按:“请求-响应”式开发的。开发流程:第一步:客户端向Web容器(如Tomcat)发送请求(如请求访问index.jsp)。第二步:请求经过一系列的过滤器的过滤之后,把该请求传递给Struts2的核心过滤器StrutsPrepareAndExecuteFilter。第三步:核心过滤器接收到请求信息之后,会根据请求的URL(如/login/HelloAction)搜索Action的映射信息。第四步:如找到对应的映射信息,则在struts.xml文件中对应定义的Act

10、ion(如HelloAction)被实例化,并且执行该Action实例的execute()方法,处理用户请求信息。此外,如果在struts.xml文件中还定义了被请求Action的一些拦截器,那么该Action实例被调用前后,这些拦截器也会被先后执行。第五步:Action对请求处理完毕以后将返回一个逻辑视图,该逻辑视图将在struts.xml文件的相应元素中寻找对应的物理视图(如在HelloAction中SUCCESS对应于/WEB-INF/page/hello.jsp),并返回给客户端。10.2. Struts2核心概念Struts2框架默认的配置文件为struts.xml,在eclipse

11、开发工具中,直接放在src中。 /WEB-INF/pages/hello.jsp 配置元素名称功能描述include包含其他的XML配置文件constant配置常量信息package包含一系列Action及拦截器配置信息,便于对Action进行统一管理default-action-ref配置默认Actiondefault-interceptor-ref配置默认拦截器,对package范围内所有的Action有效global-results配置全局结果集,对package范围内所有的Action有效interceptors包含一系列拦截器配置信息interceptor配置一个拦截器,一般嵌套在元

12、素内interceptor-stack配置拦截器堆栈信息,一般嵌套在元素内interceptor-ref配置Action应用的拦截器,嵌套在,等元素内action包含与Action操作相关的一系列配置信息result配置Action的结果映射,嵌套在元素之内param配置参数信息,一般嵌套在,等元素内 struts.xml-元素作用:原则上讲,一个Web项目的所有配置都可以放在struts.xml文件中,但随着应用规模的扩大,将直接导致struts.xml文件越来越臃肿,难以维护。解决的方法就是把不同模块的配置信息放在不同的XML文件中,然后在struts.xml文件使用元素把这些XML文件包

13、含在struts.xml中。 struts.xml- 元素作用:使用元素可以定义一些Web应用中使用的常量 struts.xml- 元素作用:Struts2框架的核心组件是 Action和拦截器等,Struts2框架使用包(package)来管理Action和拦截器等。包是多个Action、多个拦截器和多个拦截器引用的集合。使用元素配置包的信息,每个元素定义一个包的配置。 name属性:必选属性,指定该包的名字,是引用该包的唯一标识。 namespace属性:可选属性,定义该包的命名空间。namespace属性值和Action名称组合在一起,在项目中决定了该Action的URL。 extend

14、s属性:可选属性,在Struts2中,包也是可以继承的,extends属性的作用是指定该包是否继承其他的包。包可以继承一个或多个父包的中Action定义、拦截器定义、拦截器栈等配置。 abstract属性:可选属性,若该属性值为“true”表示该包为抽象包,在抽象包中不能有任何Action定义。注意:Struts2的配置文件总是从上到下处理的,所以在struts.xml文件中父包的定义应该在子包的前面。另外,关于namespace属性的使用需要注意以下几点: 元素若没有指定namespace属性,则该包使用默认的命名空间,默认的命名空间总是;若设置namespace属性值为“/”时,即指定了包

15、的命名空间为根命名空间,此时所有根路径下的Action请求都会去这个包中查找对应的资源信息。 若一个元素指定namespace=/ch10,必须注意的是“ch10”前的斜线“/”不能省略,并且该包下所有的Action处理的URL应该是“/ch10/Action名”,其完整的URL为http:/主机地址:端口/上下文路径/ch10/XXXAction.action。 Struts2查找Action的次序为:先在指定的路径下查找Action;如果找不到则会去默认的路径找Action;如果仍找到,则抛出异常。另外,当默认命名空间中存在与根命名空间同名的Action时,根命名空间的配置信息优先级高于默

16、认命名空间中的配置信息。命名空间只有一个级别,例如一个Action的URL为“/a/b/get.action”,则系统将先在“/a/b”的命名空间下查找,如果找不到,就直接到默认命名空间查找get.action , 而不是在“/a”的命名空间下查找。Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action。不同的命名空间可以有同名的Action。在struts.xml配置文件中,可以配置多个元素,但每元素中的namespace的属性值必须是唯一的。 struts.xml- 元素 /WEB-INF/pages/hello.jsp 作用:元素用来配置Action,该

17、元素需嵌套在元素内,它包含如下属性:name属性:必选属性,用来设定Action的名称。class属性:可选属性,指定Action处理类对应的具体路径,若省略该属性,表示使用的是默认Action即ActionSupport类。method属性:可选属性,指定Action中的方法名。converter属性:可选属性,指定Action使用的类型转换器,其值可为true或false,默认为true,即使用类型转换器。例子/web-inf/page/1.jsp在里面的意义:注意:若未配置method属性,则请求会被转发到Action中的execute()方法进行处理。但很多情况下Action可能需要处

18、理多个业务逻辑,那么就需要在Action中定义多个方法以处理不同的业务逻辑,那么在元素中配置method属性,就可以在请求Action时把不同的请求转发给相应的方法进行处理。 struts.xml- 元素作用:当一个Action在指定命名空间和默认命名空间都找不到该Action时,就会抛出一个“HTTP 404”错误信息,此时可使用元素指定一个默认的Action,当配置文件中没有与请求Action匹配的信息时,Struts2框架就会自动调用这个默认的Action去处理。 default-action-ref name=ErrorAction /error/actionError.jsp str

19、uts.xml- 元素作用:用于配置Action的结果映射,既可以配置常规的结果映射,也可以实现动态结果映射,即根据请求动态决定返回哪个视图。常见的映射类型有dispatcher、redirectAction、redirect、plainText等。元素下的主要属性包括:type属性:可选属性,type属性用于指定跳转至结果视图的方式,如省略该属性表示默认的类型为dispatcher。name属性:可选属性,表示逻辑视图的名称,默认为SUCCESS。10.2.2Action详解在struts2框架中,Action负责处理业务逻辑,是整个struts2应用的核心。1. Action类的基本格式A

20、ction类的基本格式:public class XXXAction extends ActionSupport /定义一个私有成员变量name,用于封装HTTP请求参数的属性。 private String name; /setter和getter public String getName() return name; public void setName(String name) this.name = name; /覆盖ActionSupport类的execute()方法,用于处理业务逻辑并返回相应的结果视图 public String execute() /省略具体的业务逻辑 /返

21、回SUCCESS代表的视图 return SUCCESS; /其它方法2. Action接口和ActionSupport类 Action接口和ActionSupport类在com.opensymphony.xwork包中。其中, Action接口定义了5个字符串常量SUCCESSNONEERRORINPUTLOGIN,另外还定义了一个返回字符串类型的execute()方法。 ActionSuport类是一个默认的Action实现类,如果一个Action在struts.xml配置文件的元素中没有指定class属性,那么默认该Action为ActionSupport类。在ActionSupport类中除了实现Action接口之外,该类还增加了获取国际化信息的方法getText()、数据校验的方法validate()、默认的处理用户请求的方法execute()等。3.调用含有多个方法的action在一个Action中集成了多个业务逻辑的方法。先看一个含多个方法的Act

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1