欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

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

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

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

    第五讲:第五讲:Struts2刘刘 炜炜上海大学计算机学院上海大学计算机学院shu111111什么是框架?l l什么是框架?框架,即framework。其实就是某种应用的半成品,就是一组组件,供开发系统使用,它们相互协作实现某一功能或行为。而且,框架一般是成熟的,不断升级的软件。什么是框架?什么是框架?l l“框架的强大之处不是源自它能让你做什么,而是它不能让你做什么。”(Rickard)。l lRickard解释框架为:框架使混乱的东西变得结构化。l lWeb应用程序框架则鼓励开发人员使用一系列框架所提供的基础类和类库,从而避免杂乱的JSP所造成的混乱。传统传统JSP Web应用紧耦合应用紧耦合Model传统传统JSP Web应用松耦合应用松耦合ModelMVC结构图 Struts简介l lStruts是一个基于Sun J2EE平台的MVC框架,是MVC模式的一种实现。l lStruts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。l lStruts能充分满足应用开发的需求,简单易用,敏捷迅速,颇受关注。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 请求564HTTP 响应XWork231用户的Action(构件在Struts和XWork基础上)请求到达分发器中转换成action command响应在Servlet响应中转换成Web识别的响应StrutsPrepareAndExecuteFilterInterceptorActionResultJsp/html用户请求Struts2内置的一些拦截器或用户自定义拦截器用户编写的action类,类似struts1中的Action类似struts1中的forward响应Struts2处理流程处理流程Struts2的安装的安装l l将将Struts2的的lib文件夹中的,文件夹中的,ognl-3.0,复制到,复制到myWeb的的lib目录下。目录下。l l配置配置web.xmlStruts2应用的开发步骤应用的开发步骤l l1.1.在在在在web.xmlweb.xml文件中定义核心文件中定义核心文件中定义核心文件中定义核心FilterFilter来拦截用户请求。来拦截用户请求。来拦截用户请求。来拦截用户请求。struts2struts2filter-org.apache.struts2.dispatcher.ng.filter.StrutsPrepareclassorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterAndExecuteFilterstruts2struts2/*/*Struts2应用的开发步骤应用的开发步骤l l2.如果需要以如果需要以post的方式提交请求,则定的方式提交请求,则定义包含表单数据的义包含表单数据的jsp页面。如果仅仅是以页面。如果仅仅是以get方式发送请求,则不须这步。方式发送请求,则不须这步。l l3.定义处理用户请求的定义处理用户请求的Action类。这一步类。这一步必不可少,因为必不可少,因为Action类就是类就是MVC中的中的C,即控制器,负责调用,即控制器,负责调用Model里的业务方里的业务方法来处理请求。法来处理请求。Struts2应用的开发步骤应用的开发步骤l l4.在在struts.xml中配置中配置Action,指定哪个请指定哪个请求对应哪个求对应哪个Action进行处理,从而让核心进行处理,从而让核心控制器根据该配置来创建合适的控制器根据该配置来创建合适的Action实实例,并调用该例,并调用该Action的业务控制方法。如:的业务控制方法。如:action name=Struts2应用的开发步骤应用的开发步骤l l5.配置处理结果和物理视图资源之间的对配置处理结果和物理视图资源之间的对应关系。当应关系。当Action处理用户请求结束后,处理用户请求结束后,会返回一个处理结果,需要将返回的逻辑会返回一个处理结果,需要将返回的逻辑视图名与物理视图资源进行关联。视图名与物理视图资源进行关联。action name=!-/login2./login2.jspjsp/strutsdemostrutsdemo/error.jsp/error.jsp/strutsdemostrutsdemo/welcome.jsp/welcome.jspStruts2应用的开发步骤应用的开发步骤l l6.编写视图资源。如果编写视图资源。如果Action需要把一些需要把一些数据传给视图资源,则可以借助于数据传给视图资源,则可以借助于OGNL表达式。表达式。Struts2的流程的流程浏览器StrutsPrepareAndExecuteFilter1.发送请求8.输出响应XxxActionModel组件XxxService3.调用业务方法4.返回业务结果2.调用excute()方法5.返回逻辑视图名JSP7.生成响应内容6.Forward到物理视图Struts2的常规配置的常规配置l lStruts2 的默认配置文件名为的默认配置文件名为struts.xml,该文件应该放在该文件应该放在Web应用的类加载路径下,应用的类加载路径下,通常就是通常就是WEB-INFclasses下。下。l lStruts.xml最大作用就是配置最大作用就是配置Action和请和请求之间的对应关系,并配置逻辑视图名和求之间的对应关系,并配置逻辑视图名和物理视图资源之间的对应关系,此外,还物理视图资源之间的对应关系,此外,还可以进行可以进行Bean配置、配置常量,导入其他配置、配置常量,导入其他配置文件等。配置文件等。常量配置常量配置l lStruts.properties文件管理常量,开发者文件管理常量,开发者可以通过改变这些常量来满足应用的需求。可以通过改变这些常量来满足应用的需求。l lStruts.properties文件解读文件解读l lStruts2配置常量有三种方法:配置常量有三种方法:通过通过通过通过struts.propertiesstruts.properties文件文件文件文件通过通过通过通过struts.xmlstruts.xml文件文件文件文件通过通过通过通过web.xmlweb.xml文件文件文件文件其他可以被其他可以被其他可以被其他可以被struts2struts2加载的配置文件加载的配置文件加载的配置文件加载的配置文件Struts.xmll lStruts.xmlStruts.xml是整个是整个是整个是整个Struts 2Struts 2框架的核心,下面提框架的核心,下面提框架的核心,下面提框架的核心,下面提供一份完整的供一份完整的供一份完整的供一份完整的struts.xmlstruts.xml文件的骨架。文件的骨架。文件的骨架。文件的骨架。l lStruts.xmlStruts.xmll l包含其他配置文件:包含其他配置文件:包含其他配置文件:包含其他配置文件:struts.xmlstruts.xml配置文件可以分配置文件可以分配置文件可以分配置文件可以分解为多个配置文件,然后在解为多个配置文件,然后在解为多个配置文件,然后在解为多个配置文件,然后在struts.xmlstruts.xml中包含其中包含其中包含其中包含其他配置文件。他配置文件。他配置文件。他配置文件。l ll l l l l l实现实现Actionl l对对对对StrutsStruts开发而言,开发而言,开发而言,开发而言,ActionAction是应用的核心,开发者需要提是应用的核心,开发者需要提是应用的核心,开发者需要提是应用的核心,开发者需要提供大量供大量供大量供大量ActionAction类,并在类,并在类,并在类,并在struts.xmlstruts.xml文件中配置文件中配置文件中配置文件中配置ActionAction。ActionAction类里包含了对用户请求的处理逻辑,类里包含了对用户请求的处理逻辑,类里包含了对用户请求的处理逻辑,类里包含了对用户请求的处理逻辑,ActionAction类也类也类也类也被称为业务控制器。被称为业务控制器。被称为业务控制器。被称为业务控制器。l lStruts2Struts2采用了低侵入式的设计,不要求采用了低侵入式的设计,不要求采用了低侵入式的设计,不要求采用了低侵入式的设计,不要求ActionAction类继承任类继承任类继承任类继承任何的何的何的何的StrutsStruts基类,或者实现任何基类,或者实现任何基类,或者实现任何基类,或者实现任何StrutsStruts接口。接口。接口。接口。Struts2Struts2的的的的ActionAction类是一个普通的类是一个普通的类是一个普通的类是一个普通的POJOPOJO(通常包含一个无参数的(通常包含一个无参数的(通常包含一个无参数的(通常包含一个无参数的executeexecute方法),从而有很好的代码复用性。方法),从而有很好的代码复用性。方法),从而有很好的代码复用性。方法),从而有很好的代码复用性。l lStruts2 Struts2 通常采用通常采用通常采用通常采用ActionAction类封装类封装类封装类封装HTTPHTTP请求参数,因此,请求参数,因此,请求参数,因此,请求参数,因此,ActionAction类里还应该包含与请求参数对应的属性,以及类里还应该包含与请求参数对应的属性,以及类里还应该包含与请求参数对应的属性,以及类里还应该包含与请求参数对应的属性,以及settersetter和和和和gettergetter方法。方法。方法。方法。l lActionAction类里的属性,不仅可用于封装请求参数,还可以类里的属性,不仅可用于封装请求参数,还可以类里的属性,不仅可用于封装请求参数,还可以类里的属性,不仅可用于封装请求参数,还可以用于封装处理结果。用于封装处理结果。用于封装处理结果。用于封装处理结果。实现实现Actionl lPrivate String tip;Private String tip;l lPublic String getTip()Public String getTip()l l return tip;return tip;l l l lPublic void setTip(String tip)Public void setTip(String tip)l l this.tip=tip;this.tip=tip;l l l l一旦在一旦在一旦在一旦在ActionAction中设置了中设置了中设置了中设置了tiptip属性的值,就可以在下属性的值,就可以在下属性的值,就可以在下属性的值,就可以在下一个页面中使用一个页面中使用一个页面中使用一个页面中使用Struts2Struts2标签来输出该属性的值:标签来输出该属性的值:标签来输出该属性的值:标签来输出该属性的值:l lAction接口和接口和ActionSupport基类基类l l为了让用户开发的为了让用户开发的为了让用户开发的为了让用户开发的ActionAction类更规范,类更规范,类更规范,类更规范,Struts2Struts2提供了一个提供了一个提供了一个提供了一个ActionAction接口,接口,接口,接口,这个接口定义了这个接口定义了这个接口定义了这个接口定义了Struts2Struts2的的的的ActionAction处理类应该实现的规范。处理类应该实现的规范。处理类应该实现的规范。处理类应该实现的规范。l lPublic interface ActionPublic interface Actionl l public static final String ERROR=“error”;public static final String ERROR=“error”;l l public static final String INPUT=“input”;public static final String INPUT=“input”;l l public static final String SUCCESS=“success”;public static final String SUCCESS=“success”;l l public static final String LOGIN=“login”;public static final String LOGIN=“login”;l l public static final String NONE=“none”;public static final String NONE=“none”;l l public String execute()throws Exception;public String execute()throws Exception;l l l lStruts2Struts2为为为为ActionAction接口提供了一个实现类接口提供了一个实现类接口提供了一个实现类接口提供了一个实现类:ActionSupport:ActionSupport。ActionSupportActionSupport是一个默认的是一个默认的是一个默认的是一个默认的ActionAction实现类,该类里已经提供了许多实现类,该类里已经提供了许多实现类,该类里已经提供了许多实现类,该类里已经提供了许多默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方法、默认的处理用户请求的方法等。我们再实际开发中,继承法、默认的处理用户请求的方法等。我们再实际开发中,继承法、默认的处理用户请求的方法等。我们再实际开发中,继承法、默认的处理用户请求的方法等。我们再实际开发中,继承ActionSupportActionSupport将会大大简化将会大大简化将会大大简化将会大大简化ActionAction类的开发。类的开发。类的开发。类的开发。Action访问访问Servlet APIl lStruts2Struts2的的的的ActionAction没有与任何没有与任何没有与任何没有与任何Servlet APIServlet API耦合,这是一个耦合,这是一个耦合,这是一个耦合,这是一个改良之处,由于不再和改良之处,由于不再和改良之处,由于不再和改良之处,由于不再和Servlet APIServlet API耦合,可以轻松地测耦合,可以轻松地测耦合,可以轻松地测耦合,可以轻松地测试试试试ActionAction。l lStruts2Struts2提供了一个提供了一个提供了一个提供了一个ActionContextActionContext类,可以用来访问类,可以用来访问类,可以用来访问类,可以用来访问Servlet APIServlet API,该类包含的几个常用方法:,该类包含的几个常用方法:,该类包含的几个常用方法:,该类包含的几个常用方法:Object get(Object key):Object get(Object key):返回一个对象属性返回一个对象属性返回一个对象属性返回一个对象属性Map getApplication():Map getApplication():返回一个返回一个返回一个返回一个applicationapplication的的的的MAPMAP对象。对象。对象。对象。Static ActionContext getContext():Static ActionContext getContext():获取系统的获取系统的获取系统的获取系统的ActionContextActionContext实例。实例。实例。实例。Map getParameters():Map getParameters():获取所有的请求参数。获取所有的请求参数。获取所有的请求参数。获取所有的请求参数。Map getSession():Map getSession():返回一个返回一个返回一个返回一个sessionsession的的的的mapmap对象对象对象对象l l实例:实例:实例:实例:LoginAction1.javaLoginAction1.javaAction直接访问直接访问Servlet APIl l虽然虽然Struts2提供了提供了ActionContext来访问来访问servlet api,但不是直接获得,但不是直接获得Servlet api的实例,为此的实例,为此Struts2还提供了以下几个接还提供了以下几个接口口:ServletContextAware:ServletContextAware:实现该接口可以直接实现该接口可以直接实现该接口可以直接实现该接口可以直接访问访问访问访问ServletContextServletContext实例。实例。实例。实例。ServletRequestAwareServletRequestAware:实现该接口可以直:实现该接口可以直:实现该接口可以直:实现该接口可以直接访问用户请求的接访问用户请求的接访问用户请求的接访问用户请求的HttpServletRequestHttpServletRequest实例。实例。实例。实例。ServletResponseAware:ServletResponseAware:实现该接口可以直实现该接口可以直实现该接口可以直实现该接口可以直接访问服务器响应的接访问服务器响应的接访问服务器响应的接访问服务器响应的HttpServletResponseHttpServletResponse实实实实例。例。例。例。l l见见LoginAction2.java使用使用ServletActionContext访问访问Servlet APIl l为了直接访问为了直接访问Servlet api,Struts2还提供还提供了一个了一个ServletActionContext工具类,该工具类,该类提供了几个静态方法:类提供了几个静态方法:Static PageContext getPageContext()Static PageContext getPageContext()Static HttpServletRequest getRequest()Static HttpServletRequest getRequest()Static HttpServletResponse getResponseStatic HttpServletResponse getResponse()()Static ServletContext getServletContext()Static ServletContext getServletContext()l l实例:实例:LoginAction3.java配置配置Actionl l配置配置Action就是让就是让Struts2知道哪个知道哪个Action处理哪个请求,也就是完成用户请求和处理哪个请求,也就是完成用户请求和Action之间的对应关系。之间的对应关系。l lStruts2用包来组织用包来组织Action,每个包就是多,每个包就是多个个Action,多个拦截器,多个拦截器引用,多个拦截器,多个拦截器引用的集合。的集合。配置配置Actionl l配置的属性说明:配置的属性说明:Name:Name:指定报名,是被其他包引用的指定报名,是被其他包引用的指定报名,是被其他包引用的指定报名,是被其他包引用的key;key;Extends:Extends:该属性可选,指定该包继承其他包,该属性可选,指定该包继承其他包,该属性可选,指定该包继承其他包,该属性可选,指定该包继承其他包,可以继承其他包中的可以继承其他包中的可以继承其他包中的可以继承其他包中的actionaction定义,拦截器定义定义,拦截器定义定义,拦截器定义定义,拦截器定义等。等。等。等。Namespace:Namespace:该属性是一个可选属性,定义该该属性是一个可选属性,定义该该属性是一个可选属性,定义该该属性是一个可选属性,定义该包的命名空间。包的命名空间。包的命名空间。包的命名空间。Abstract:Abstract:该属性是一个可选属性,指定该包该属性是一个可选属性,指定该包该属性是一个可选属性,指定该包该属性是一个可选属性,指定该包是否为抽象包是否为抽象包是否为抽象包是否为抽象包配置配置Actionl l在包里封装定义了在包里封装定义了在包里封装定义了在包里封装定义了struts-defaultstruts-default抽象包,该包下抽象包,该包下抽象包,该包下抽象包,该包下定义了大量结果类型定义、拦截器定义、拦截器定义了大量结果类型定义、拦截器定义、拦截器定义了大量结果类型定义、拦截器定义、拦截器定义了大量结果类型定义、拦截器定义、拦截器引用定义等。这些定义是配置普通引用定义等。这些定义是配置普通引用定义等。这些定义是配置普通引用定义等。这些定义是配置普通ActionAction的基础,的基础,的基础,的基础,所以开发者定义的所以开发者定义的所以开发者定义的所以开发者定义的packagepackage通常应该继承通常应该继承通常应该继承通常应该继承struts-struts-defaultdefault包。包。包。包。l lStruts2Struts2之所以提供命名空间的功能,主要是为了之所以提供命名空间的功能,主要是为了之所以提供命名空间的功能,主要是为了之所以提供命名空间的功能,主要是为了处理同一个处理同一个处理同一个处理同一个WebWeb应用中包含同名应用中包含同名应用中包含同名应用中包含同名ActionAction的情形,的情形,的情形,的情形,同一个命名空间不能有同名的同一个命名空间不能有同名的同一个命名空间不能有同名的同一个命名空间不能有同名的Action,Action,不同的命名不同的命名不同的命名不同的命名空间可以有同名的空间可以有同名的空间可以有同名的空间可以有同名的Action.Action.配置配置Actionl l当某个包指定了命名空间后,该包下所有当某个包指定了命名空间后,该包下所有的的Action处理的处理的URL应该是命名空间应该是命名空间+Action名。名。l l命名空间只有一级。命名空间只有一级。l l如:实例如:实例struts_book.xml中的中的getBooks Actionl l该该Action处理的处理的URL为:为:l lhttp:/localhost:8080/myWeb/book/getBooks.actionAction的基本配置的基本配置l l定义定义定义定义ActionAction时,至少需要指定该时,至少需要指定该时,至少需要指定该时,至少需要指定该ActionAction的的的的namename属性,该属性也指定属性,该属性也指定属性,该属性也指定属性,该属性也指定了该了该了该了该ActionAction处理的请求的处理的请求的处理的请求的处理的请求的URLURL。l lActionAction只是一个逻辑控制器,它并不直接对浏览器生成任何响应,只是一个逻辑控制器,它并不直接对浏览器生成任何响应,只是一个逻辑控制器,它并不直接对浏览器生成任何响应,只是一个逻辑控制器,它并不直接对浏览器生成任何响应,ActionAction处理完用户请求后,要指定视图资源呈现给用户。因此,配处理完用户请求后,要指定视图资源呈现给用户。因此,配处理完用户请求后,要指定视图资源呈现给用户。因此,配处理完用户请求后,要指定视图资源呈现给用户。因此,配置置置置ActionAction时应该配置逻辑视图和物理视图之间的对应关系。时应该配置逻辑视图和物理视图之间的对应关系。时应该配置逻辑视图和物理视图之间的对应关系。时应该配置逻辑视图和物理视图之间的对应关系。action name=!-result name=/strutsdemostrutsdemo/struts_login.jsp/struts_login.jsp result name=/strutsdemostrutsdemo/error.jsp/error.jsp result name=/strutsdemostrutsdemo/welcome.jsp/welcome.jspl l虽然虽然虽然虽然ActionAction的的的的namename命名可以非常灵活,但是命名可以非常灵活,但是命名可以非常灵活,但是命名可以非常灵活,但是namename属性不要有属性不要有属性不要有属性不要有(.)(.)和和和和(-(-)。使用使用Action的动态方法调用的动态方法调用l lStruts2提供了包含多个处理逻辑的提供了包含多个处理逻辑的Action。当需要用当需要用Action的不同方法来处理用户请的不同方法来处理用户请求时。采用求时。采用DMI(动态方法调用)来处理请动态方法调用)来处理请求。动态调用是指表单元素的求。动态调用是指表单元素的action并不并不是直接等于某个是直接等于某个Action的名字,而是以如的名字,而是以如下形式来指定表单下形式来指定表单action属性。属性。l lAction=“ActionName!methodName”l l实例实例:strutsdemo2,http:/localhost:8080/myWeb/login.action 指定指定Action的的method属性及使用通配符属性及使用通配符l l对于多请求的处理,对于多请求的处理,对于多请求的处理,对于多请求的处理,Struts2Struts2还提供了一种方法,即将一还提供了一种方法,即将一还提供了一种方法,即将一还提供了一种方法,即将一个个个个actionaction处理类定义为多个逻辑处理类定义为多个逻辑处理类定义为多个逻辑处理类定义为多个逻辑Action,Action,可以将一个可以将一个可以将一个可以将一个ActionAction类配置成多个逻辑类配置成多个逻辑类配置成多个逻辑类配置成多个逻辑ActionAction。形如:。形如:。形如:。形如:action name=l l通过这种方法可以将通过这种方法可以将通过这种方法可以将通过这种方法可以将ActionAction类的每个处理方法都映射为类的每个处理方法都映射为类的每个处理方法都映射为类的每个处理方法都映射为一个逻辑一个逻辑一个逻辑一个逻辑Action,Action,前提是这些方法具有相似的方法签名:前提是这些方法具有相似的方法签名:前提是这些方法具有相似的方法签名:前提是这些方法具有相似的方法签名:参数为空,返回值为参数为空,返回值为参数为空,返回值为参数为空,返回值为StringString。l l实例实例实例实例l lhttp:/localhost:8080/myWeb/login.actionhttp:/localhost:8080/myWeb/login.action,点点点点“注册注册注册注册2”2”通配符的使用(通配符的使用(1)l laction name=l l!-l l/login.jsp/login.jspl l/error.jsp/error.jspl l/welcome.jsp/welcome.jspl ll l表示用户所有的表示用户所有的表示用户所有的表示用户所有的*Action.actionAction.action的请求模式,都由该类来处理。表达的请求模式,都由该类来处理。表达的请求模式,都由该类来处理。表达的请求模式,都由该类来处理。表达式式式式11表示的值就是表示的值就是表示的值就是表示的值就是*。l l例如当用户请求为例如当用户请求为例如当用户请求为例如当用户请求为loginAction.actionloginAction.action时,则调用时,则调用时,则调用时,则调用LoginRegistActionLoginRegistAction类的类的类的类的loginlogin方法。如果请求为方法。如果请求为方法。如果请求为方法。如果请求为registerAction.actionregisterAction.action,则调用,则调用,则调用,则调用regist()regist()方法。方法。方法。方法。通配符的使用(通配符的使用(2)l laction name=l l!-l l/login.jsp/login.jspl l/error.jsp/error.jspl l/welcome.jsp/welcome.jspl ll lClassClass属性用属性用属性用属性用NN形式的表达式。其含义是:如果有形式的表达式。其含义是:如果有形式的表达式。其含义是:如果有形式的表达式。其含义是:如果有URLURL为为为为RegistAction.actionRegistAction.action的请求,将可以匹配的请求,将可以匹配的请求,将可以匹配的请求,将可以匹配*ActionAction模式,交给该模式,交给该模式,交给该模式,交给该ActionAction处理,其中第一个处理,其中第一个处理,其中第一个处理,其中第一个”*”*”的值为的值为的值为的值为Regist,Regist,该该该该ActionAction的处理类为的处理类为的处理类为的处理类为RegistActionRegistAction。如果有。如果有。如果有。如果有URLURL为为为为LoginAction.actionLoginAction.action的请求,该的请求,该的请求,该的请求,该ActionAction的处理类为的处理类为的处理类为的处理类为LoginActionLoginAction。通配符的使用(通配符的使用(3)l l如果有需要,如果有需要,Struts2完全可以在完全可以在class属属性和性和method属性中同时使用属性中同时使用N表达式。表达式。如:如:l ll l只要匹配该模式的请求,都可以被该只要匹配该模式的请求,都可以被该Action处理。如果有处理。如果有URL为为Book_save.action的请求,因为匹配了的请求,因为匹配了*_*模式,且第一个模式,且第一个“*”的值为的值为Book,第,第二个二个“*”为为save,意味着调用,意味着调用action.Book处理类的处理类的save方法来处理请方法来处理请求。求。通配符的使用(通配符的使用(3)l lStruts2Struts2不仅允许在不仅允许在不仅允许在不仅允许在classclass属性、属性、属性、属性、namename属性中使用表达式,属性中使用表达式,属性中使用表达式,属性中使用表达式,还可以在还可以在还可以在还可以在子元素中使用子元素中使用子元素中使用子元素中使用NN表达式。如:表达式。如:表达式。如:表达式。如:l ll l /1.jsp /1.jspl ll lActionAction的名字的名字的名字的名字”*”*”可以匹配任意的可以匹配任意的可以匹配任意的可以匹配任意的ActionAction,所有的请求,所有的请求,所有的请求,所有的请求都可以通过该都可以通过该都可以通过该都可以通过该ActionAction来处理。没有指定来处理。没有指定来处理。没有指定来处理。没有指定classclass属性,则使属性,则使属性,则使属性,则使用用用用ActionSupportActionSupport来作为处理类,而且来作为处理类,而且来作为处理类,而且来作为处理类,而且executeexecute返回返回返回返回successsuccess,即总是直接返回,即总是直接返回,即总是直接返回,即总是直接返回resultresult中指定的中指定的中指定的中指定的jspjsp。上面定。上面定。上面定。上面定义的含义是:如果请求义的含义是:如果请求义的含义是:如果请求义的含义是:如果请求a.actiona.action,则进入,则进入,则进入,则进入a.jspa.jsp页面,如果页面,如果页面,如果页面,如果请求请求请求请求b.actionb.action,则进入,则进入,则进入,则进入b.jspb.jsp页面。页面。页面。页面。通配符的使用(通配符的使用(4)l l关于通配符匹配的优先级:关于通配符匹配的优先级:如果有如果有如果有如果有URLURL为为为为abcAction.actionabcAction.action的请求,如果的请求,如果的请求,如果的请求,如果struts.xmlstruts.xml文件中有名为文件中有名为文件中有名为文件中有名为abcActionabcAction的的的的ActionAction定义,则一定由该定义,则一定由该定义,则一定由该定义,则一定由该ActionAction来处理用户的请求;来处理用户的请求;来处理用户的请求;来处理用户的请求;如果没有名为如果没有名为如果没有名为如果没有名为abcActionabcAction的的的的ActionAction定义,则搜定义,则搜定义,则搜定义,则搜索索索索namename属性值能匹配属性值能匹配属性值能匹配属性值能匹配abcActionabcAction的的的的ActionAction,例如例如例如例如namename为为为为*ActionAction或或或或*,但是顺序是先找到,但是顺序是先找到,但是顺序是先找到,但是顺序是先找到哪个哪个哪个哪个ActionAction就匹配哪个,由匹配成功的那个就匹配哪个,由匹配成功的那个就匹配哪个,由匹配成功的那个就匹配哪个,由匹配成功的那个ActionAction来处理用户请求。来处理用户请求。来处理用户请求。来处理用户请求。配置默认配置默认Actionl lStruts2Struts2支持配置默认支持配置默认支持配置默认支持配置默认Action,Action,当用户请求找不到当用户请求找不到当用户请求找不到当用户请求找不到对应的对应的对应的对应的ActionAction时,系统默认的时,系统默认的时,系统默认的时,系统默认的ActionAction即将处理用即将处理用即将处理用即将处理用户请求。户请求。户请求。户请求。l l默认默认默认默认actionaction通过通过通过通过元素完元素完元素完元素完成。成。成。成。l ldefault-action-ref name=“simpleViewResultAction”/l ll laction name=“simpleViewResultAction”class=“”l l l l配置默认处理类配置默认处理类l l当当不指定不指定class属性,系统默属性,系统默认使用认使用ActionSupport作为作为Action处理类。处理类。l l在在

    注意事项

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

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开