基于J2EE架构的企业级组件开发技术-Stru.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于J2EE架构的企业级组件开发技术-Stru.ppt》由会员分享,可在线阅读,更多相关《基于J2EE架构的企业级组件开发技术-Stru.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五讲:第五讲:Struts2刘刘 炜炜上海大学计算机学院上海大学计算机学院shu111111什么是框架?l l什么是框架?框架,即framework。其实就是某种应用的半成品,就是一组组件,供开发系统使用,它们相互协作实现某一功能或行为。而且,框架一般是成熟的,不断升级的软件。什么是框架?什么是框架?l l“框架的强大之处不是源自它能让你做什么,而是它不能让你做什么。”(Rickard)。l lRickard解释框架为:框架使混乱的东西变得结构化。l lWeb应用程序框架则鼓励开发人员使用一系列框架所提供的基础类和类库,从而避免杂乱的JSP所造成的混乱。传统传统JSP Web应用紧耦合应用紧
2、耦合Model传统传统JSP Web应用松耦合应用松耦合ModelMVC结构图 Struts简介l lStruts是一个基于Sun J2EE平台的MVC框架,是MVC模式的一种实现。l lStruts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。l lStruts能充分满足应用开发的需求,简单易用,敏捷迅速,颇受关注。Struts的结构业务逻辑:业务逻辑更新模型的状态,并帮助控制应用程序的流程。就 Struts 而言,业务逻辑是由 Service类完成的。Service 类封装了具体的处理过程,调用业务逻辑模块,并将响应提交给合适的视图组件以产生响应。Struts的结构V
3、iew(视图):视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息只有标记。标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。Struts的结构控制类:(1)将客户请求映射到相应的Action类,如果该类第一次收到请求,服务器将实例化该类。(2)调用Action实例的exectue()方法。(3)exectue()方法返回一个result code说明执行结果的String。result code 并非一定对应一个将被执行的result(如JSP页面、Servlet或另一个Action),尽管通常如此。Xwork和和Struts2之间交互图之间交
4、互图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
5、将将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
6、.ng.filter.StrutsPrepareAndExecuteFilterAndExecuteFilterstruts2struts2/*/*Struts2应用的开发步骤应用的开发步骤l l2.如果需要以如果需要以post的方式提交请求,则定的方式提交请求,则定义包含表单数据的义包含表单数据的jsp页面。如果仅仅是以页面。如果仅仅是以get方式发送请求,则不须这步。方式发送请求,则不须这步。l l3.定义处理用户请求的定义处理用户请求的Action类。这一步类。这一步必不可少,因为必不可少,因为Action类就是类就是MVC中的中的C,即控制器,负责调用,即控制器,负责调用Model里的
7、业务方里的业务方法来处理请求。法来处理请求。Struts2应用的开发步骤应用的开发步骤l l4.在在struts.xml中配置中配置Action,指定哪个请指定哪个请求对应哪个求对应哪个Action进行处理,从而让核心进行处理,从而让核心控制器根据该配置来创建合适的控制器根据该配置来创建合适的Action实实例,并调用该例,并调用该Action的业务控制方法。如:的业务控制方法。如:action name=Struts2应用的开发步骤应用的开发步骤l l5.配置处理结果和物理视图资源之间的对配置处理结果和物理视图资源之间的对应关系。当应关系。当Action处理用户请求结束后,处理用户请求结束后
8、,会返回一个处理结果,需要将返回的逻辑会返回一个处理结果,需要将返回的逻辑视图名与物理视图资源进行关联。视图名与物理视图资源进行关联。action name=!-/login2./login2.jspjsp/strutsdemostrutsdemo/error.jsp/error.jsp/strutsdemostrutsdemo/welcome.jsp/welcome.jspStruts2应用的开发步骤应用的开发步骤l l6.编写视图资源。如果编写视图资源。如果Action需要把一些需要把一些数据传给视图资源,则可以借助于数据传给视图资源,则可以借助于OGNL表达式。表达式。Struts2的流
9、程的流程浏览器StrutsPrepareAndExecuteFilter1.发送请求8.输出响应XxxActionModel组件XxxService3.调用业务方法4.返回业务结果2.调用excute()方法5.返回逻辑视图名JSP7.生成响应内容6.Forward到物理视图Struts2的常规配置的常规配置l lStruts2 的默认配置文件名为的默认配置文件名为struts.xml,该文件应该放在该文件应该放在Web应用的类加载路径下,应用的类加载路径下,通常就是通常就是WEB-INFclasses下。下。l lStruts.xml最大作用就是配置最大作用就是配置Action和请和请求之间
10、的对应关系,并配置逻辑视图名和求之间的对应关系,并配置逻辑视图名和物理视图资源之间的对应关系,此外,还物理视图资源之间的对应关系,此外,还可以进行可以进行Bean配置、配置常量,导入其他配置、配置常量,导入其他配置文件等。配置文件等。常量配置常量配置l lStruts.properties文件管理常量,开发者文件管理常量,开发者可以通过改变这些常量来满足应用的需求。可以通过改变这些常量来满足应用的需求。l lStruts.properties文件解读文件解读l lStruts2配置常量有三种方法:配置常量有三种方法:通过通过通过通过struts.propertiesstruts.propert
11、ies文件文件文件文件通过通过通过通过struts.xmlstruts.xml文件文件文件文件通过通过通过通过web.xmlweb.xml文件文件文件文件其他可以被其他可以被其他可以被其他可以被struts2struts2加载的配置文件加载的配置文件加载的配置文件加载的配置文件Struts.xmll lStruts.xmlStruts.xml是整个是整个是整个是整个Struts 2Struts 2框架的核心,下面提框架的核心,下面提框架的核心,下面提框架的核心,下面提供一份完整的供一份完整的供一份完整的供一份完整的struts.xmlstruts.xml文件的骨架。文件的骨架。文件的骨架。文件
12、的骨架。l lStruts.xmlStruts.xmll l包含其他配置文件:包含其他配置文件:包含其他配置文件:包含其他配置文件:struts.xmlstruts.xml配置文件可以分配置文件可以分配置文件可以分配置文件可以分解为多个配置文件,然后在解为多个配置文件,然后在解为多个配置文件,然后在解为多个配置文件,然后在struts.xmlstruts.xml中包含其中包含其中包含其中包含其他配置文件。他配置文件。他配置文件。他配置文件。l ll l l l l l实现实现Actionl l对对对对StrutsStruts开发而言,开发而言,开发而言,开发而言,ActionAction是应用
13、的核心,开发者需要提是应用的核心,开发者需要提是应用的核心,开发者需要提是应用的核心,开发者需要提供大量供大量供大量供大量ActionAction类,并在类,并在类,并在类,并在struts.xmlstruts.xml文件中配置文件中配置文件中配置文件中配置ActionAction。ActionAction类里包含了对用户请求的处理逻辑,类里包含了对用户请求的处理逻辑,类里包含了对用户请求的处理逻辑,类里包含了对用户请求的处理逻辑,ActionAction类也类也类也类也被称为业务控制器。被称为业务控制器。被称为业务控制器。被称为业务控制器。l lStruts2Struts2采用了低侵入式的设
14、计,不要求采用了低侵入式的设计,不要求采用了低侵入式的设计,不要求采用了低侵入式的设计,不要求ActionAction类继承任类继承任类继承任类继承任何的何的何的何的StrutsStruts基类,或者实现任何基类,或者实现任何基类,或者实现任何基类,或者实现任何StrutsStruts接口。接口。接口。接口。Struts2Struts2的的的的ActionAction类是一个普通的类是一个普通的类是一个普通的类是一个普通的POJOPOJO(通常包含一个无参数的(通常包含一个无参数的(通常包含一个无参数的(通常包含一个无参数的executeexecute方法),从而有很好的代码复用性。方法),从
15、而有很好的代码复用性。方法),从而有很好的代码复用性。方法),从而有很好的代码复用性。l lStruts2 Struts2 通常采用通常采用通常采用通常采用ActionAction类封装类封装类封装类封装HTTPHTTP请求参数,因此,请求参数,因此,请求参数,因此,请求参数,因此,ActionAction类里还应该包含与请求参数对应的属性,以及类里还应该包含与请求参数对应的属性,以及类里还应该包含与请求参数对应的属性,以及类里还应该包含与请求参数对应的属性,以及settersetter和和和和gettergetter方法。方法。方法。方法。l lActionAction类里的属性,不仅可用于
16、封装请求参数,还可以类里的属性,不仅可用于封装请求参数,还可以类里的属性,不仅可用于封装请求参数,还可以类里的属性,不仅可用于封装请求参数,还可以用于封装处理结果。用于封装处理结果。用于封装处理结果。用于封装处理结果。实现实现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)
17、l l this.tip=tip;this.tip=tip;l l l l一旦在一旦在一旦在一旦在ActionAction中设置了中设置了中设置了中设置了tiptip属性的值,就可以在下属性的值,就可以在下属性的值,就可以在下属性的值,就可以在下一个页面中使用一个页面中使用一个页面中使用一个页面中使用Struts2Struts2标签来输出该属性的值:标签来输出该属性的值:标签来输出该属性的值:标签来输出该属性的值:l lAction接口和接口和ActionSupport基类基类l l为了让用户开发的为了让用户开发的为了让用户开发的为了让用户开发的ActionAction类更规范,类更规范,类更
18、规范,类更规范,Struts2Struts2提供了一个提供了一个提供了一个提供了一个ActionAction接口,接口,接口,接口,这个接口定义了这个接口定义了这个接口定义了这个接口定义了Struts2Struts2的的的的ActionAction处理类应该实现的规范。处理类应该实现的规范。处理类应该实现的规范。处理类应该实现的规范。l lPublic interface ActionPublic interface Actionl l public static final String ERROR=“error”;public static final String ERROR=“erro
19、r”;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
20、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是一个默认的是一个默认的是一个默认的是一个默认的ActionAct
21、ion实现类,该类里已经提供了许多实现类,该类里已经提供了许多实现类,该类里已经提供了许多实现类,该类里已经提供了许多默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方法、默认的处理用户请求的方法等。我们再实际开发中,继承法、默认的处理用户请求的方法等。我们再实际开发中,继承法、默认的处理用户请求的方法等。我们再实际开发中,继承法、默认的处理用户请求的方法等。我们再实际开发中,继承ActionSupport
22、ActionSupport将会大大简化将会大大简化将会大大简化将会大大简化ActionAction类的开发。类的开发。类的开发。类的开发。Action访问访问Servlet APIl lStruts2Struts2的的的的ActionAction没有与任何没有与任何没有与任何没有与任何Servlet APIServlet API耦合,这是一个耦合,这是一个耦合,这是一个耦合,这是一个改良之处,由于不再和改良之处,由于不再和改良之处,由于不再和改良之处,由于不再和Servlet APIServlet API耦合,可以轻松地测耦合,可以轻松地测耦合,可以轻松地测耦合,可以轻松地测试试试试Actio
23、nAction。l lStruts2Struts2提供了一个提供了一个提供了一个提供了一个ActionContextActionContext类,可以用来访问类,可以用来访问类,可以用来访问类,可以用来访问Servlet APIServlet API,该类包含的几个常用方法:,该类包含的几个常用方法:,该类包含的几个常用方法:,该类包含的几个常用方法:Object get(Object key):Object get(Object key):返回一个对象属性返回一个对象属性返回一个对象属性返回一个对象属性Map getApplication():Map getApplication():返回一
24、个返回一个返回一个返回一个applicationapplication的的的的MAPMAP对象。对象。对象。对象。Static ActionContext getContext():Static ActionContext getContext():获取系统的获取系统的获取系统的获取系统的ActionContextActionContext实例。实例。实例。实例。Map getParameters():Map getParameters():获取所有的请求参数。获取所有的请求参数。获取所有的请求参数。获取所有的请求参数。Map getSession():Map getSession():返回一
25、个返回一个返回一个返回一个sessionsession的的的的mapmap对象对象对象对象l l实例:实例:实例:实例:LoginAction1.javaLoginAction1.javaAction直接访问直接访问Servlet APIl l虽然虽然Struts2提供了提供了ActionContext来访问来访问servlet api,但不是直接获得,但不是直接获得Servlet api的实例,为此的实例,为此Struts2还提供了以下几个接还提供了以下几个接口口:ServletContextAware:ServletContextAware:实现该接口可以直接实现该接口可以直接实现该接口可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 J2EE 架构 企业级 组件 开发 技术 Stru
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内