基于J2EE架构的企业级组件开发技术-Stru.ppt
《基于J2EE架构的企业级组件开发技术-Stru.ppt》由会员分享,可在线阅读,更多相关《基于J2EE架构的企业级组件开发技术-Stru.ppt(45页珍藏版)》请在三一办公上搜索。
1、第五讲:Struts2,刘 炜上海大学计算机学院shu111111,什么是框架?,什么是框架?框架,即framework。其实就是某种应用的半成品,就是一组组件,供开发系统使用,它们相互协作实现某一功能或行为。而且,框架一般是成熟的,不断升级的软件。,什么是框架?,“框架的强大之处不是源自它能让你做什么,而是它不能让你做什么。”(Rickard)。Rickard解释框架为:框架使混乱的东西变得结构化。Web应用程序框架则鼓励开发人员使用一系列框架所提供的基础类和类库,从而避免杂乱的JSP所造成的混乱。,传统JSP Web应用紧耦合Model,传统JSP Web应用松耦合Model,MVC结构图
2、,Struts简介,Struts是一个基于Sun J2EE平台的MVC框架,是MVC模式的一种实现。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts能充分满足应用开发的需求,简单易用,敏捷迅速,颇受关注。,Struts的结构,业务逻辑:业务逻辑更新模型的状态,并帮助控制应用程序的流程。就 Struts 而言,业务逻辑是由 Service类完成的。Service 类封装了具体的处理过程,调用业务逻辑模块,并将响应提交给合适的视图组件以产生响应。,Struts的结构,View(视图):视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型
3、信息只有标记。标记是使 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,H
4、TTP 响应,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,复制
5、到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里的业务方法来处理请求。,
6、Struts2应用的开发步骤,4.在struts.xml中配置Action,指定哪个请求对应哪个Action进行处理,从而让核心控制器根据该配置来创建合适的Action实例,并调用该Action的业务控制方法。如:,Struts2应用的开发步骤,5.配置处理结果和物理视图资源之间的对应关系。当Action处理用户请求结束后,会返回一个处理结果,需要将返回的逻辑视图名与物理视图资源进行关联。/login2.jsp/strutsdemo/error.jsp/strutsdemo/welcome.jsp,Struts2应用的开发步骤,6.编写视图资源。如果Action需要把一些数据传给视图资源,则可
7、以借助于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和请求之间的对应关系,并配置逻辑视图名和物理视图
8、资源之间的对应关系,此外,还可以进行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配置文件可以分解为多个配
9、置文件,然后在struts.xml中包含其他配置文件。,实现Action,对Struts开发而言,Action是应用的核心,开发者需要提供大量Action类,并在struts.xml文件中配置Action。Action类里包含了对用户请求的处理逻辑,Action类也被称为业务控制器。Struts2采用了低侵入式的设计,不要求Action类继承任何的Struts基类,或者实现任何Struts接口。Struts2的Action类是一个普通的POJO(通常包含一个无参数的execute方法),从而有很好的代码复用性。Struts2 通常采用Action类封装HTTP请求参数,因此,Action类里还
10、应该包含与请求参数对应的属性,以及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接口,这个接口定义了St
11、ruts2的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;Struts
12、2为Action接口提供了一个实现类:ActionSupport。ActionSupport是一个默认的Action实现类,该类里已经提供了许多默认方法,这些默认方法包括获取国际化信息的方法、数据校验的方法、默认的处理用户请求的方法等。我们再实际开发中,继承ActionSupport将会大大简化Action类的开发。,Action访问Servlet API,Struts2的Action没有与任何Servlet API耦合,这是一个改良之处,由于不再和Servlet API耦合,可以轻松地测试Action。Struts2提供了一个ActionContext类,可以用来访问Servlet API,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 J2EE 架构 企业级 组件 开发 技术 Stru
链接地址:https://www.31ppt.com/p-6559735.html