Struts2-PPT

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章struts2Struts2诞生背景Struts2的诞生源于OpenSynphony的著名Web框架WebWork,和Struts1一样,WebWork也是主流的Web框架之一。由于年轻的缘故,WebWork的技术先进程度(如简单快速地开发)要优于Struts1,但Struts1却具有更广泛的客户群。2005年,双方终于决定合作开发下一代的Web框架,Struts2于是诞生。从技术层面讲,Struts2采用了WebWork的核心技术而与Struts1完全不兼容。使用Struts2实现登录使用开发的5个步骤向工程添加struts2.0库文件在web.xml中配置Struts2.0的Filter实现业务类添加Struts组件1、创建Action2、在src目录下创建struts配置文件3、添加jsp页面调试运行完成的项目12354使用Struts2实现登录在web.xml中配置Struts2.0的Filterfilterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mappingFilterDispatcher类似于Struts1的ActionServlet。FilterDispatcher是Struts2提供的过滤器,它将截获所有请求。针对形如“*.action”的请求,Struts2最终将调用合适的action组件实现业务流程处理使用Struts2实现登录实现业务类使用Struts2实现登录创建Action默认情况下,Action的execute方法用于处理业务流程。该方法应返回一个字符串参数,与相应action配置的result元素对应,表示应转向的页面地址。Action中自定义的属性使用Struts2实现登录与strut1.X中Action区别Struts2的Action不再需要继承Struts提供的类,Struts2的Action可以是一个普通的Java类。与Struts1不同,Struts2的Action类可以不需要ActionForm为其传送表单数据,Struts2的Action类可以通过自己属性获得表单数据。Struts1的Action以单实例的方式工作,而Struts2会为每次请求创建新的Action实例(非单例),不存在线程安全的问题。使用Struts2实现登录在src目录下创建struts配置文件struts.xml一系列action、interceptor等组件的集合Action的名字处理user.action请求相当于struts1中的forward作用使用Struts2实现登录编写jsp页面JSP页面直接从Action中获取属性值请求地址Name与action中的属性名一致从action中获取提示信息使用Struts2实现登录调试运行演示示例:基于Struts2实现登录小结使用Struts开发步骤是什么?1、添加Struts2库文件2、配置web.xml文件3、开发业务类4、开发Action组件5、创建(修改)配置文件struts.xml文件,配置Action6、开发JSP页面7、调试运行Struts2体系结构Struts2体系结构Struts2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件•核心控制器:FilterDispatcher–FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个filter运行在web应用,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求•业务控制器–业务控制器组件就是用户实现Action类的实例•Struts2的模型组件–JavaEE应用里的模型组件,通常指系统的业务逻辑组件,而隐藏在系统的业务逻辑组件下面的可能还包含Dao、领域对象等组件•Struts2视图组件–Struts2能使用JSP、FreeMarker、Velocity等作为视图技术核心控制器FilterDispatcher与StrutsPrepareAndExecuteFilterFilterDispatcher是早期struts2的过滤器struts2.1.3后都使用StrutsPrepareAndExecuteFilterStrutsPrepareAndExecuteFilterStrutsPrepareFilterStrutsExecuteFilterstruts-default.xml文件说明struts-default.xml文件是struts2框架默认加载的配置文件。它定义struts2一些核心的bean和拦截器。这些拦截器是以key-value对的形式配置在struts-default.xml中,其中name是拦截器名字,就是后面使用该拦截器的引用点,value则指定拦截器的实现类Struts.xml文件详解核心配置文件struts.xml的作用:配置请求和Action之间的对应关系,并匹配逻辑视图(在Action中返回的String值)名和物理视图资源(如自己写的JSP页面等)之间的对应关系.配置常量,导入其它配置文件.Struts2配置文件是以“struts”命名的.xml文件,是struts2框架的核心配置文件。这个文件主要负责管理struts2框架业务控制器Action。它必须创建在src的根目录下,即编译后,必须在classes根目录下。它需要遵守DTD的规范(最新的是struts-2.1.7.dtd)。Struts.xml文件详解?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=struts.i18n.reloadvalue=false/constantname=struts.devModevalue=true/constantname=struts.configuration.xml.reloadvalue=false/includefile=struts-chat.xml/packagename=skillextends=struts-defaultnamespace=/skillactionname=showcaseresultshowcase.jsp/result/actionactionname=editclass=org.apache.struts2.showcase.action.SkillActionresult/empmanager/editSkill.jsp/result/actionactionname=saveclass=org.apache.struts2.showcase.action.SkillActionmethod=saveresultname=input/empmanager/editSkill.jsp/resultresulttype=redirectedit.action?skillName=${currentSkill.name}/result/action/package/strutsStruts.xml文件详解include加载子配置文件【即多配置文件-include子节点】Struts2框架的核心配置文件就是struts.xml配置文件,该文件主要负责管理Struts2框架的业务控制器Action。在默认情况下,Struts2框架将自动加载放在WEB-INF/classes路径下的struts.xml文件。为了避免随着应用规模的增加,而导致的struts.xml文件过于庞大,臃肿,从而是该文件的可读性下降。我们可以将一个struts.xml配置文件分解成多个配置文件,然后在struts.xml文件中包含其他配置文件。!--通过include元素导入其他元素--includefile=example.xml/Package配置【包配置-package子节点】Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。使用package可以将逻辑上相关的一组Action,Result,Intercepter等组件分为一组,Package有些像对象,可以继承其他的Package,也可以被其他package继承,甚至可以定义抽象的Package。Package的可以使用的属性:name:必填,指定包的名字,该名字是该包被其他包引用的key。extends:可选,指定该包继承其他包.继承其他包,可以继承其他包中的Action定义、拦截器定义等。namespace:可选,定义该包的命名空间。abstract:可选,它指定该包是否是一个抽象包。抽象包不能包含Action定义。Struts.xml文件详解Namespace配置【命名空间配置】Struts2以命名空间的方式来管理Action,同一个命名空间里不能有同名的Action,不同的命名空间里可以有同名的Action。Struts2不支持为单独的Action设置命名空间,而是通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。Namespace将action分成逻辑上的不同模块,每一个模块有自己独立的前缀。使用namespace可以有效的避免action重名的冲突,例如每一个package都可以有自己独立的Menu和Helpaction,但是事项方式各有不同。Struts2标签带有namespace选项,可以根据namespace的不同向服务器提交不同的package的action的请求。“/”表示根namespace,所有直接在应用程序上下文环境下的请求(Context)都在这个package中查找。“”表示默认namespace,当所有的namespace中都找不到的时候就在这个namespace中寻找.Constant配置【常量配置-Constant子节点】Constant节点定义了Struts2框架的大量属性,开发者可以通过改变这些属性来满足应用的需求。Constant节点包含了系列的key-value对象,每个key就是一个Struts2属性,该key对应的value就是一个Struts2属性值。struts.devMode•该属性设置Struts2应用是否使用开发模式。如果设置该属性为true,则可以在应用出错时显示更多、更友好的出错提示。该属性只接受true和flase两个值,该属性的默认值是false。通常,应用在开发阶段,将该属性设置为true,当进入产品发布阶段后,则该属性设置为false。struts.multipart.maxSize•该属性指定Struts2文件上传中整个请求内容允许的最大字节数。struts.configuration.xml.reload•该属性设置当struts.xml文件改变后,系统是否自动重新加载该文件。该属性的默认值是false。Struts.xml文件详解Struts2支持的处理结果类型一个提交到服务器的处理通常可以分为两个阶段,第一个阶段查询服务器状态(查询或者更新数据库),第二个阶段选择一个合适的结果页面其返回给用户(这里要讲的Result的内容)。Struts2提供

1 / 79
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功