ImageVerifierCode 换一换
你正在下载:

struts2.docx

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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

struts2.docx

1、struts21strust2框架来历简介: WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web框架。(同时也是一个成熟的基于Web的MVC框架) MVC:Model View Controller, model是模型,view是视图,controller是控制器,是一种框架模式。 随着WebWork框架的发展,衍生出了strust2框架,因此strust2框架是WebWork的升级,而不是一个全新的框架,因此稳点性、性能等方面都有很好的保证,而且也同时吸收了struts1框架和WebWork俩者的优点. 所以strust2框架也是一个基于Web的M

2、VC框架 注意:strust2框架并不是struts1框架的延续或者升级,俩者有着很大的不同2web项目中的三层架构(和MVC是俩个完全不同的架构)1. 表示层(Struts2框架就是工作在这个地方)2. 业务逻辑层(service层,处理业务逻辑,比如判断用户名是否存在、密码是否正确、权限是否拥有、账号是否被冻结、账号是否异常、用户积分是否到达操作要求等等,多为一些执行某一个操作条件的判断)3. 数据访问层(dao层,专门处理和数据库进行交换的事情,jdbc/hibernate就在这里使用) 在项目中,这些不同的分层的表现形式,其实就是在我们自己建的不同的package中写上各自分层中所使用

3、的java类.比如在项目中我们建了三个package,三个package中java类的作用分别为表示层的代码、业务逻辑层代码、数据访问层代码。 注意:可以理解为,MVC架构是这里说描述的三层架构的一部分,即:三层架构中的表示层可以使用mvc架构的框架来实现,例如使用struts2框架.3使用struts2框架的好处(为什么要使用struts2框架) 减少编程人员代码的编写,使代码更加简洁明了,缩短开发时间,增加开发效率.4struts2框架引入到web项目中 首先使用Eclipse/MyEclipse中建一个web项目. 1.把struts2相关jar包引入到项目中。 2.把struts2的配

4、置文件直接放到src下面,名字要叫做struts.xml(运行时配置文件会被框架自动读取)。 注意:如果struts.xml文件中不能自动提示出标签,把相应的dtd文件配置上去。 3.在web.xml文件中配置struts2框架的过滤器 这个过滤器的作用:拦截struts2框架中的action。 注意:如果不配置这个filter,struts2框架就不能够工作。 第一种filter的配置: struts2框架的2.0版本以下配置的方式 struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* 第二种filter配置: s

5、truts2框架的2.0版本以上配置的方式 同时2.0版本以上的也可以使用第一种方式. 这个过滤器类是2.0版本以上新增的类. struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 特别注意:项目的环境要求 tomcat所在的路径中要求没有空格、中文、特殊符号.如果有的话启动tomcat时候有可能报错,同时还要注意tomcat最好使用tomcat6版本以及JDK使用JDK6版本的,所建立的web项目版本最好是J2EE5.0(因为在比较新的MyEclipse中允许建立J2E

6、E6.0的版本,但是不要建立J2EE6.0的版本项目) (不要使用最新的,新的软件就是会有新的bug,特别是在和其他不是最新版本的软件结合使用的时候)5struts2框架中的Action struts2框架中有一种java类叫做Action,这种说法就像J2EE项目中有一种java类加Servlet.(人们的生活中有一种人的职业叫警察) struts2框架底层还是封装了Servlet的相关内容而实现出来的.只不过struts2框架除了servlet的功能以外还扩展出了很多其他的功能,同时还大大简化了以前在servlet中繁琐的操作. 在struts2框架中有一种类就是用代替以前我们在web项目

7、中所使用到的servlet,那么这种类,在struts2框架中被称为Action. 所以Action其实也是一种java类,比servlet功能更加强大的java类,同时还比servlet中的操作简单.6为什么Action会有比servlet强大的功能以及简洁的操作 因为我们在web.xml文件中配置了struts2框架中专门的过滤器,用作拦截访问action的请求,拦截住之后,struts2框架就可以给Action添加很多丰富的功能了.7如何写一个struts2框架中的Action 三种方式: 1.只需要类中有一个固定的方法: public String execute() return .

8、 不需要实现或者继承任何接口或者父类。 注意: execute方法一定要返回String类型的对象,每一个字符串都可以对应一个跳转的页面.(字符串是可以自己随便定义的,字符串对应哪一个跳转的页面也是自己定义,在struts.xml文件中定义) 2.实现指定的一个接口:com.opensymphony.xwork2.Action 这个接口中只有一个抽象方法 public abstract String execute()throws Exception; 同时还有5个String类型的静态属性:ERROR SUCCESS INPUT NONE LOGIN public static final

9、String SUCCESS = success; public static final String NONE = none; public static final String ERROR = error; public static final String INPUT = input; public static final String LOGIN = login; 3.继承一个指定的父类:com.opensymphony.xwork2.ActionSupport 注意:这种是我们之后一直使用的方式。8像之前写完servlet类一样,写完action类后需要在struts.xml

10、文件中进行配置. 在struts.xml配置action的目的和作用:通知struts2框架我们写的这个类是一个Action,将来struts2框架中要给这个类创建对象,调用方法以及这个Action加入更多丰富的功能。 例如: /index.jsp /success.jsp /error.jsp 配置中标签及其属性的介绍: :一个struts.xml文件中可以配置多个标签,一个标签里面可以配置多个标签,一个标签里面可以配置多个。 装的包控制action跳转的。 name=test表示给当前package起一个名字为test,作用:1.唯一标识当前这个package。2.方便package与pa

11、ckage之间通过这个名字来实现继承的关系.(像类和类之间的继承一样,要通过父类的名字来继承) extends=struts-default 表示当前这个package继承了另外一个名字叫做struts-default的package,这个package在struts2的核心jar包中的struts-default.xml文件中定义的,里面定义了很默认的配置. 注意:我们在struts2中定义的所有package,都会是直接或者间接的继承了struts-default这个package.(像java中所有类都是直接或间接的继承了Object类一样) namespace=/test 表示当前pa

12、ckage的命名空间为/test,将来这个package里面的所有的action在被访问的时候,路径里面都要加上这个命名空间. 配置中标签属性及其子标签介绍: name=test1表示当前配置这个action的名字为test1,这个名字是随便起的,可以和action类的名字相同或者不同.同时将来浏览器中的地址栏里面就是要出现这个名字来访问当前这个action类 class=.表示当前配置的action对应的是哪一个java类,我们可以配置一个action,但是这个action可以没有对应任何java类。就像上面配置的MyTest的例子. 标签表示将来这个action访问完了之后有哪些跳转. /

13、error.jsp 表示当前这个action如果返回的字符串是myError,就那么页面就跳转到/error.jsp中 注意:每一个action被访问完之后都会有一个字符串类型的返回值,即使访问一个每一个任何java类对应action的时候,这个action也会默认返回字符串:success /index.jsp 等价于 /index.jsp 标签中的name属性默认值就是success 9特殊的action配置:使用通配符来配置 使用前提:原本需要配送的多个action名字或者类的名字是有一定规律的.例如:原来需要配置这样三个action: /successCh1.jsp /errorCh1

14、.jsp /successCh2.jsp /errorCh2.jsp /successCh3.jsp /errorCh3.jsp 这时候,我们就可以使用通配符配置一个action来代替这个三个action: /success1.jsp /error1.jsp 1代表的时候前面name属性中所出现的第一个*号 如果有第二个*号,可以用2来表示。 test*就是将来在浏览器中输入的这个action名字,如果输入的时候test1,那么这个*号就代表1,如果输入的是testlogin,那么这个*号就是代表login. 注意:如果原本需要配置的多个action没有非常明显的规律,那么就不要用这种方式来配

15、置了.10action的特点及其访问 特点: servlet是线程不安全的,因为servlet是单例。 struts2框架中的action是线程安全的,因为每次访问都会创建一个新的Action对象.所有在action里面可以随便的定义成员变量(只有成员变量才有线程安全的问题) 访问: (strut2框架的版本不同默认情况有所不同) 默认情况下,访问action的时候,使用namespace/actionName.action或者namespace/actionName就可以访问的到. 例如: /index.jsp http:/ip地址:端口号/项目名字/test/test1.action 或者

16、 http:/ip地址:端口号/项目名字/test/test1 访问成功页面就会跳转到index.jsp页面了 但是由于不加任何后缀名也可以访问到这个action,这样容易和其他资源的访问产生冲突,比如servlet的访问(本来是访问项目的servlet的,但是Struts2框架却当成了这是访问action的请求来处理).所以我们需要配置一下,把action访问规定成,只能使用后缀名.action或者是.do 或者是其他形式来访问. /可以使用.action或者.do来访问,多种后缀时用逗号分隔 /只能使用.action 11在struts.xml文件中配置struts2框架的属性.(之后使用

17、到会陆续加入新的属性) 作用:修改完struts.xml配置文件后不需要重新启动服务器. 指定是否使用开发模式。可选的值为true和false,默认值为false。当设置为true时,struts2将对开发者更为友好,这包括: 1)struts.i18n.reload = true /加载资源包 2)struts.configuraion.xml.reload = true/自动加载配置文件 3)将各种调试或者可忽略的问题报告为错误 注意:设置这个属性的时候,tomcat所在的路径中要求没有空格、中文、特殊符号.如果有的话启动tomcat时候会报错,同时还要注意tomcat最好使用tomcat

18、6版本以及JDK使用JDK6版本的 作用:定义访问action的是使用什么后缀名 12访问action的时候,action中方法的调用 1.默认情况下,访问action的时候会调用action中的execute方法,这个方法执行完返回一个字符串,然后根据字符串进行跳转. 2.可以在标签里面加上一个method属性,来指明将来访问这个action的时候会调用哪一个方法. 例如: 注意:俩个不同名字的action可以对应的是相同的一个java类. 这样使用test1和test2俩个不同名字的action就是访问到同一个类中的俩个不同的方法:login和regist方法. 但是login方法和reg

19、ister方法必须和execute方法类似的,都是返回String的值. 3.地址栏中动态指定要调用的方法 例如: /index.jsp 类A里面有俩个方法:register login 默认情况下地址栏中通过MyTest.action来访问这个action会访问到它的execute方法,同时我们还可以在地址栏中动态的指定要访问的方法: MyTest!login.action 这样就能访问到名字为MyTest的action对应类A中的login方法了. http:/ip地址:端口号/项目名字/test/MyTest!login.action13action执行完之后的简单跳转(未完待续) /i

20、ndex1.jsp /index2.jsp /index3.jsp 表示执行完名字为MyTest的action的execute方法后,如果返回的字符success则跳转到index1.jsp,如果返回的字符error则跳转到index2.jsp,如果返回的字符mytest则跳转到index3.jsp 注意: 1.中names属性默认值为success。 2.这里的/index1.jsp中的/表示:http:/ip地址:端口号/项目名字/ 或者我们可以认为这个/表示的WebRoot或者WebContext下面的页面.14action中如何接受页面传过来的参数(未完待续) 第一种情况: 例如: 通

21、过页面要把id=1 name=tom age=20这三个参数传给action 1.action里面定义三个成员变量id name age,这个三个变量的名字一定要和所传变量的名字一致. 2.提供get/set方法 3.将来页面把这三个参数传过来的时候,struts2框架会自动的帮我们把这个三个参数值放action中的三个属性里面.(同时还做了类型的转换) 注意:这个工作其实是由defaultStack这个拦截器栈里面的拦截器来完成了. 传值完成之后,我们只要在execute方法中去直接使用就可以了,不需要做其他事情. 第二种情况: 在接收到页面传值的时候,还可以让struts2框架直接帮我们把

22、这些接收到的值封装到一个javabean对象里面. 1.action中定义一个User类型的变量user,User类中有三属性值,id name age,同时User类中还有get/set方法 2.action中给这个user属性提供get/set方法 3.页面向action传值的时候,参数的名字要写成user.id=1 user.name=tom user.age=20 将来接收到这个参数值以后,struts2框架会帮我们去创建一个User对象,并且把所传参数的三个值封装到对象的三个属性里面,最后把这个封装好的对象放到action的user属性中15action中跳转的方式 . name属性

23、指的是跳转的名字(默认值success),也就是action返回的字符串 type属性指的是跳转的类型(默认值dispatcher),常用到的跳转类型有已下四种: dispatcher 从一个action里面服务器内部跳转到一个页面中.这个是type属性的默认值. chain 从一个action里面服务器内部跳转到另一个action中. 1.同一个package下面的action跳转: /test下面的action跳转到/test下面的action methodTest1 或者: methodTest1 /test 2.不同的俩个package下面的action跳转 /test下面的action跳转到/user下面的action mytest param na

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

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