第8单元Struts2框架技术入门_第1页
第8单元Struts2框架技术入门_第2页
第8单元Struts2框架技术入门_第3页
第8单元Struts2框架技术入门_第4页
第8单元Struts2框架技术入门_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8Struts 2 8Struts 2 框架技术框架技术入门入门Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦单元描述单元描述网络给人们带来了一个缤纷绚丽的世界,那么上网浏览的网页是用什么语言编写的呢?这些页面,主要是用HTML语言编写。HTML是英语“Hypertext Marked Language”的缩写,即“超文本标记语言”,它不是编程语言,是一种用来制作超文本文档的简单描述性标记语言。本单元的主要任务就是通过任务需求了解HTML的基础知识。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦单元目标单元目标

2、了解Struts 2的发展历史;了解Struts 2的体系结构;熟悉Struts 2框架技术的工作原理;理解Struts 2的配置;能够使用Struts 2框架技术实现简单应用程序。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.1任务任务1引入性案例引入性案例任务描述及任务目标:任务描述及任务目标:使用现有技术完成用户登录系统的开发。该案例要求在登录界面上输入用户名和密码,单击登录按钮后,如果用户输入的用户名和密码与系统指定的用户名和密码相同,则进入欢迎页面,表明登录成功,并在欢迎页面上显示用户名,否则显示登录失败。Java EEJava EE框架技

3、术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.1.1解决方案解决方案(1)创建视图页面:login.jsp、success.jsp和error.jsp;(2)创建资源信息文件:Aperties; (3)创建数据模型:User.java;(4)创建Action:LoginAction.java;(5)创建常量文件:Constant.java;Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.1.1解决方案解决方案(6)为解决中文乱码问题,创建过滤器Servelt:CharacterEncodingFilter.java

4、;(7)配置validation.xml;(8)配置struts-config.xml;(9)配置web.xml;(10)发布工程。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.1.2具体实现具体实现1创建视图页面视图页面login.jsp、success.jsp2创建资源信息文件3创建数据模型4创建Action5创建常量文件Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.1.2具体实现具体实现6创建过滤器Servelt7配置validation.xml;8配置struts-config.xml9配置web.

5、xml10发布工程。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.1.3分析不足之处分析不足之处该案例使用Struts 1技术实现了用户登录的功能。尽管使用了Struts 1框架但是仍然存在不足之处。在在Action类中,类中,Struts 1要求要求Action类是面向抽象类编程而类是面向抽象类编程而不是面向接口编程。不是面向接口编程。Struts 1过分依赖于过分依赖于Servlet,Action类依赖于类依赖于Servlet API。所有的所有的ActionForm必须扩展必须扩展基类。其他的基类。其他的JavaBean不能不能作作Action

6、Form,需要需要创建多创建多余的类捕获输入。余的类捕获输入。尽管尽管DynaActionForm替代替代ActionForm,但是依然需要,但是依然需要在配置文件中重新描述已经在配置文件中重新描述已经存在的存在的JavaBean。有没有一种好的方有没有一种好的方法,来解决这些问法,来解决这些问题呢?题呢?Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.1.3分析不足之处分析不足之处采用基于MVC体系结构的成熟性框架Struts 2,就能有效的解决上述问题,提高开发效率。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:

7、赵彦8.2任务任务2Struts 2简介简介任务描述及任务目标:任务描述及任务目标:和Struts 1一样,Struts 2仍然是一个MVC框架,作用也类似。但是使用Struts 1架构开发的系统不能升级为Struts 2架构,需要重新实现,因为Struts 1与Struts 2有本质的区别。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.2.1Struts 2的发展历史的发展历史Apache Struts是一个用来开发Java Web应用的开源框架。最初的创始人是Craig R. McClanahan,之后Apache软件基金会于2002年接管了该项

8、目。Struts提供了一个非常优秀的架构使得组织基于HTML格式与Java代码的JSP与Servlet应用开发变得非常简单。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.2.2Struts 2与与WebWork 2、Struts 1的关系的关系根据Struts 2官方网站的介绍,Struts 2就是WebWork 2,WebWork 2就是Struts 2。Struts 2可以看做是借Struts的名气推广的WebWork框架。课本181页表8-1给出了Struts 1与Struts 2的主要区别。Java EEJava EE框架技术进阶式教程框架技

9、术进阶式教程 作者:赵彦作者:赵彦8.3任务任务3Struts 2的体系结构的体系结构任务描述及任务目标:任务描述及任务目标:Struts 2的体系结构与Struts 1的体系结构有非常大的差别,这是因为Struts 2使用了WebWork框架技术,不是沿用Struts 1的核心技术,因此Struts 2看起来更像WebWork。Struts 2与Struts 1最大的不同是Struts 2使用了大量的拦截器来处理用户请求,从而将业务逻辑控制器和Servlet 、API分离。该任务将重点讲述Struts 2的体系结构及工作机制。Java EEJava EE框架技术进阶式教程框架技术进阶式教程

10、作者:赵彦作者:赵彦8.3.2Struts 2的体系结构的体系结构Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Struts 2的工作机制的工作机制 “.action”结尾的请求,Struts 2框架会拦截处理,具体步骤如下:(1)客户端浏览器发送请求,客户端会初始化一个指向Servlet容器;Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Struts 2的工作机制的工作机制(2)请求要经过一系列的过滤器(Filter;Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦

11、作者:赵彦8.3.3Struts 2的工作机制的工作机制(3)接着核心控制器FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定是否调用Action,以及调用哪个Action;Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Struts 2的工作机制的工作机制(4)如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy;Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Str

12、uts 2的工作机制的工作机制(5)ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Struts 2的工作机制的工作机制(6)ActionProxy创建一个ActionInvocation的实例。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Struts 2的工作机制的工作机制(7)ActionInvocation实例使用命名模式来调用,在调用Action的execute方法之前,S

13、truts 2会调用一系列的拦截器以提供一些通用的功能,如workflow、校验或文件上传等功能。这些拦截器的组合被称为拦截器链。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Struts 2的工作机制的工作机制(8)在调用完拦截器链之后,Struts 2会调用Action的execute方法。在execute方法中就会执行用户的相关操作,如执行某种数据库操作,处理业务逻辑等。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.3.3Struts 2的工作机制的工作机制(9)一旦Action执行完毕,Act

14、ionInvocation负责根据struts.xml中的配置找到相应的返回结果。将处理结果信息返回到浏览器,这些结果可以是HTML页面、JSP页面、图像,也可以是其他的任何Web资源。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.4任务任务4Struts 2的配置的配置任务描述:任务描述:与Struts 2相关的配置文件有好几个,常用的有web.xml、perties、struts.xml等。web.xml中配置了Struts 2的分发器Filter。struts.xml配置了Struts 2的A

15、perties配置了Struts 2的一些属性,例如Struts 2的后缀、上传文件大小、上传文件夹等信息。任务目标:任务目标:了解Struts 2的配置文件,并掌握Struts 2的基本配置。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.4.1web.xml的配置的配置FilterDispatcher是一个Servlet过滤器,它是整个Web应用的配置项,以下是一个FilterDispatcher的例子。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.4.2perties的配置的配置在开

16、发环境中,往往要修改一下几个属性。(1)struts.i18n.reload(2)struts.devMode(3)struts.configuration.xml.reload(4)struts2.url.http.port(5)struts.multipart.saveDir(6)struts.action.extension=action(7)struts.configeration.filesJava EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.4.3struts.xml的配置的配置struts.xml是Struts 2的核心配置文件,主要用于配置和

17、开发人员编写的Action、JSP、拦截器等,另外perties中的配置也可以配置在struts.xml中。具体配置如下。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.4.4package的配置的配置Struts 2中的包可以扩展另外的包,从而“继承”原有包的所有定义,并可以添加自己包特有的配置,以及修改原有包的部分配置,从这一点上看,Struts 2中的包更像Java中的类。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.4.5命名空间的配置命名空间的配置元素的namespace属性可以

18、将包中的action配置为不同的名称空间。当Struts 2接收到一个请求的时候,它会将请求的URL分为namespace和action名字两部分。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.5任务任务5进阶式案例进阶式案例第一个第一个Struts 2程序程序任务描述:任务描述:根据Struts 2框架的工作原理和基本思想,对引入性案例进行修改,完成基于Struts 2框架的登录系统的开发。运行效果和引入性案例相同,如图8-1、8-2所示。任务目标:任务目标:通过该任务,读者可以充分理解Struts 2相对于Struts 1的优势所在。Java EEJava EE框架技术进阶式教程框架技术进阶式教程 作者:赵彦作者:赵彦8.4.1解决方案解决方案(1)创建视图页面:login.jsp、success.jsp、error.jsp;(2)创建Action:LoginAction.java;(3)为解决中文乱码问题,创建过滤器Servelt:CharacterEncodingFilter.java;(4)配置web

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论