欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    基于J2EE架构的企业级组件开发技术-Stru.ppt

    • 资源ID:6559735       资源大小:459.50KB        全文页数:45页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于J2EE架构的企业级组件开发技术-Stru.ppt

    第五讲:Struts2,刘 炜上海大学计算机学院shu111111,什么是框架?,什么是框架?框架,即framework。其实就是某种应用的半成品,就是一组组件,供开发系统使用,它们相互协作实现某一功能或行为。而且,框架一般是成熟的,不断升级的软件。,什么是框架?,“框架的强大之处不是源自它能让你做什么,而是它不能让你做什么。”(Rickard)。Rickard解释框架为:框架使混乱的东西变得结构化。Web应用程序框架则鼓励开发人员使用一系列框架所提供的基础类和类库,从而避免杂乱的JSP所造成的混乱。,传统JSP Web应用紧耦合Model,传统JSP Web应用松耦合Model,MVC结构图,Struts简介,Struts是一个基于Sun J2EE平台的MVC框架,是MVC模式的一种实现。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts能充分满足应用开发的需求,简单易用,敏捷迅速,颇受关注。,Struts的结构,业务逻辑:业务逻辑更新模型的状态,并帮助控制应用程序的流程。就 Struts 而言,业务逻辑是由 Service类完成的。Service 类封装了具体的处理过程,调用业务逻辑模块,并将响应提交给合适的视图组件以产生响应。,Struts的结构,View(视图):视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。,Struts的结构,控制类:(1)将客户请求映射到相应的Action类,如果该类第一次收到请求,服务器将实例化该类。(2)调用Action实例的exectue()方法。(3)exectue()方法返回一个result code说明执行结果的String。result code 并非一定对应一个将被执行的result(如JSP页面、Servlet或另一个Action),尽管通常如此。,Xwork和Struts2之间交互图,Struts,Servlet分发器,Servlet响应,HTTP 请求,5,6,4,HTTP 响应,XWork,2,3,1,用户的Action(构件在Struts和XWork基础上),请求到达分发器中转换成action command,响应在Servlet响应中转换成Web识别的响应,StrutsPrepareAndExecuteFilter,Interceptor,Action,Result,Jsp/html,用户请求,Struts2内置的一些拦截器或用户自定义拦截器,用户编写的action类,类似struts1中的Action,类似struts1中的forward,响应,Struts2处理流程,Struts2的安装,将Struts2的lib文件夹中的,ognl-3.0,复制到myWeb的lib目录下。配置web.xml,Struts2应用的开发步骤,1.在web.xml文件中定义核心Filter来拦截用户请求。struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*,Struts2应用的开发步骤,2.如果需要以post的方式提交请求,则定义包含表单数据的jsp页面。如果仅仅是以get方式发送请求,则不须这步。3.定义处理用户请求的Action类。这一步必不可少,因为Action类就是MVC中的C,即控制器,负责调用Model里的业务方法来处理请求。,Struts2应用的开发步骤,4.在struts.xml中配置Action,指定哪个请求对应哪个Action进行处理,从而让核心控制器根据该配置来创建合适的Action实例,并调用该Action的业务控制方法。如:,Struts2应用的开发步骤,5.配置处理结果和物理视图资源之间的对应关系。当Action处理用户请求结束后,会返回一个处理结果,需要将返回的逻辑视图名与物理视图资源进行关联。/login2.jsp/strutsdemo/error.jsp/strutsdemo/welcome.jsp,Struts2应用的开发步骤,6.编写视图资源。如果Action需要把一些数据传给视图资源,则可以借助于OGNL表达式。,Struts2的流程,浏览器,StrutsPrepareAndExecuteFilter,1.发送请求,8.输出响应,XxxAction,Model组件XxxService,3.调用业务方法,4.返回业务结果,2.调用excute()方法,5.返回逻辑视图名,JSP,7.生成响应内容,6.Forward到物理视图,Struts2的常规配置,Struts2 的默认配置文件名为struts.xml,该文件应该放在Web应用的类加载路径下,通常就是WEB-INFclasses下。Struts.xml最大作用就是配置Action和请求之间的对应关系,并配置逻辑视图名和物理视图资源之间的对应关系,此外,还可以进行Bean配置、配置常量,导入其他配置文件等。,常量配置,Struts.properties文件管理常量,开发者可以通过改变这些常量来满足应用的需求。Struts.properties文件解读Struts2配置常量有三种方法:通过struts.properties文件通过struts.xml文件通过web.xml文件其他可以被struts2加载的配置文件,Struts.xml,Struts.xml是整个Struts 2框架的核心,下面提供一份完整的struts.xml文件的骨架。Struts.xml包含其他配置文件:struts.xml配置文件可以分解为多个配置文件,然后在struts.xml中包含其他配置文件。,实现Action,对Struts开发而言,Action是应用的核心,开发者需要提供大量Action类,并在struts.xml文件中配置Action。Action类里包含了对用户请求的处理逻辑,Action类也被称为业务控制器。Struts2采用了低侵入式的设计,不要求Action类继承任何的Struts基类,或者实现任何Struts接口。Struts2的Action类是一个普通的POJO(通常包含一个无参数的execute方法),从而有很好的代码复用性。Struts2 通常采用Action类封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应的属性,以及setter和getter方法。Action类里的属性,不仅可用于封装请求参数,还可以用于封装处理结果。,实现Action,Private String tip;Public String getTip()return tip;Public void setTip(String tip)this.tip=tip;一旦在Action中设置了tip属性的值,就可以在下一个页面中使用Struts2标签来输出该属性的值:,Action接口和ActionSupport基类,为了让用户开发的Action类更规范,Struts2提供了一个Action接口,这个接口定义了Struts2的Action处理类应该实现的规范。Public interface Action public static final String ERROR=“error”;public static final String INPUT=“input”;public static final String SUCCESS=“success”;public static final String LOGIN=“login”;public static final String NONE=“none”;public String execute()throws Exception;Struts2为Action接口提供了一个实现类:ActionSupport。ActionSupport是一个默认的Action实现类,该类里已经提供了许多默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方法、默认的处理用户请求的方法等。我们再实际开发中,继承ActionSupport将会大大简化Action类的开发。,Action访问Servlet API,Struts2的Action没有与任何Servlet API耦合,这是一个改良之处,由于不再和Servlet API耦合,可以轻松地测试Action。Struts2提供了一个ActionContext类,可以用来访问Servlet API,该类包含的几个常用方法:Object get(Object key):返回一个对象属性Map getApplication():返回一个application的MAP对象。Static ActionContext getContext():获取系统的ActionContext实例。Map getParameters():获取所有的请求参数。Map getSession():返回一个session的map对象实例:LoginAction1.java,Action直接访问Servlet API,虽然Struts2提供了ActionContext来访问servlet api,但不是直接获得Servlet api的实例,为此Struts2还提供了以下几个接口:ServletContextAware:实现该接口可以直接访问ServletContext实例。ServletRequestAware:实现该接口可以直接访问用户请求的HttpServletRequest实例。ServletResponseAware:实现该接口可以直接访问服务器响应的HttpServletResponse实例。见LoginAction2.java,使用ServletActionContext访问Servlet API,为了直接访问Servlet api,Struts2还提供了一个ServletActionContext工具类,该类提供了几个静态方法:Static PageContext getPageContext()Static HttpServletRequest getRequest()Static HttpServletResponse getResponse()Static ServletContext getServletContext()实例:LoginAction3.java,配置Action,配置Action就是让Struts2知道哪个Action处理哪个请求,也就是完成用户请求和Action之间的对应关系。Struts2用包来组织Action,每个包就是多个Action,多个拦截器,多个拦截器引用的集合。,配置Action,配置的属性说明:Name:指定报名,是被其他包引用的key;Extends:该属性可选,指定该包继承其他包,可以继承其他包中的action定义,拦截器定义等。Namespace:该属性是一个可选属性,定义该包的命名空间。Abstract:该属性是一个可选属性,指定该包是否为抽象包,配置Action,在包里封装定义了struts-default抽象包,该包下定义了大量结果类型定义、拦截器定义、拦截器引用定义等。这些定义是配置普通Action的基础,所以开发者定义的package通常应该继承struts-default包。Struts2之所以提供命名空间的功能,主要是为了处理同一个Web应用中包含同名Action的情形,同一个命名空间不能有同名的Action,不同的命名空间可以有同名的Action.,配置Action,当某个包指定了命名空间后,该包下所有的Action处理的URL应该是命名空间+Action名。命名空间只有一级。如:实例struts_book.xml中的getBooks Action该Action处理的URL为:http:/localhost:8080/myWeb/book/getBooks.action,Action的基本配置,定义Action时,至少需要指定该Action的name属性,该属性也指定了该Action处理的请求的URL。Action只是一个逻辑控制器,它并不直接对浏览器生成任何响应,Action处理完用户请求后,要指定视图资源呈现给用户。因此,配置Action时应该配置逻辑视图和物理视图之间的对应关系。/strutsdemo/struts_login.jsp/strutsdemo/error.jsp/strutsdemo/welcome.jsp虽然Action的name命名可以非常灵活,但是name属性不要有(.)和(-)。,使用Action的动态方法调用,Struts2提供了包含多个处理逻辑的Action。当需要用Action的不同方法来处理用户请求时。采用DMI(动态方法调用)来处理请求。动态调用是指表单元素的action并不是直接等于某个Action的名字,而是以如下形式来指定表单action属性。Action=“ActionName!methodName”实例:strutsdemo2,http:/localhost:8080/myWeb/login.action,指定Action的method属性及使用通配符,对于多请求的处理,Struts2还提供了一种方法,即将一个action处理类定义为多个逻辑Action,可以将一个Action类配置成多个逻辑Action。形如:通过这种方法可以将Action类的每个处理方法都映射为一个逻辑Action,前提是这些方法具有相似的方法签名:参数为空,返回值为String。实例http:/localhost:8080/myWeb/login.action,点“注册2”,通配符的使用(1),/login.jsp/error.jsp/welcome.jsp表示用户所有的*Action.action的请求模式,都由该类来处理。表达式1表示的值就是*。例如当用户请求为loginAction.action时,则调用LoginRegistAction类的login方法。如果请求为registerAction.action,则调用regist()方法。,通配符的使用(2),/login.jsp/error.jsp/welcome.jspClass属性用N形式的表达式。其含义是:如果有URL为RegistAction.action的请求,将可以匹配*Action模式,交给该Action处理,其中第一个”*”的值为Regist,该Action的处理类为RegistAction。如果有URL为LoginAction.action的请求,该Action的处理类为LoginAction。,通配符的使用(3),如果有需要,Struts2完全可以在class属性和method属性中同时使用N表达式。如:只要匹配该模式的请求,都可以被该Action处理。如果有URL为Book_save.action的请求,因为匹配了*_*模式,且第一个“*”的值为Book,第二个“*”为save,意味着调用action.Book处理类的save方法来处理请求。,通配符的使用(3),Struts2不仅允许在class属性、name属性中使用表达式,还可以在子元素中使用N表达式。如:/1.jspAction的名字”*”可以匹配任意的Action,所有的请求都可以通过该Action来处理。没有指定class属性,则使用ActionSupport来作为处理类,而且execute返回success,即总是直接返回result中指定的jsp。上面定义的含义是:如果请求a.action,则进入a.jsp页面,如果请求b.action,则进入b.jsp页面。,通配符的使用(4),关于通配符匹配的优先级:如果有URL为abcAction.action的请求,如果struts.xml文件中有名为abcAction的Action定义,则一定由该Action来处理用户的请求;如果没有名为abcAction的Action定义,则搜索name属性值能匹配abcAction的Action,例如name为*Action或*,但是顺序是先找到哪个Action就匹配哪个,由匹配成功的那个Action来处理用户请求。,配置默认Action,Struts2支持配置默认Action,当用户请求找不到对应的Action时,系统默认的Action即将处理用户请求。默认action通过元素完成。,配置默认处理类,当不指定class属性,系统默认使用ActionSupport作为Action处理类。在struts-default.xml有定义:,配置处理结果,当Action处理用户请求结束后,控制器应该使用哪个视图资源生成响应,由元素决定。结果配置就是告诉Struts2框架,当Action处理结束时,系统下一步做什么。由那个视图来显示处理结果。Struts2根据所在位置不同,提供了两种结果:局部结果:将作为的子元素进行配置;全局结果:将作为的子元素进行配置。的配置由name和type组成,name为逻辑视图名,type为结果类型。形如:/strutsdemo2/welcome.jspName的默认值为success,type为Struts2的默认结果类型,一般为dispatcher。,Struts2支持的结果类型,Struts2默认提供了一系列的结果类型。,课外学习,Struts2的异常处理使用Struts2的国际化使用Struts2的标签库Struts的OGNL表达式使用Struts2进行输入校验使用Struts2控制上传文件和下载文件Struts2的拦截器机制Struts2对Ajax的支持,

    注意事项

    本文(基于J2EE架构的企业级组件开发技术-Stru.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开