认识Struts2框架PPT幻灯片课件_第1页
认识Struts2框架PPT幻灯片课件_第2页
认识Struts2框架PPT幻灯片课件_第3页
认识Struts2框架PPT幻灯片课件_第4页
认识Struts2框架PPT幻灯片课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章认识Struts2框架,1,目录,1,2,3,4,Struts2框架,Struts2系统架构,Struts2的基本运行流程,Struts2的控制器和组件,2,6.1,Struts2框架,3,6.1.1Struts2的由来,4,2001年7月,Struts1.0正式发布,成为ApacheJakarta的子项目之一,采用XML定制转向的URL,Action来处理逻辑。2005年的JavaOne大会,Struts开发者和用户讨论,决定基于XWork开发一个新框架,这就是后来的Struts2。Struts2虽然是在Struts1的基础上发展起来的,但它并没有继承Struts1的设计理念。Struts2使用了WebWork的设计理念,并且吸收了Struts1的部分优点,建立了一个兼容WebWork和Struts1的MVC框架。原来使用的开发人员都能够很快过渡到使用Struts2框架进行开发。在使用上,Struts2更接近WebWork的使用习惯,因为Struts2使用了WebWork的设计核心而不是Struts1的设计核心。两个框架的优势得到了互补,让Struts2拥有更广阔的的前景。不仅Struts2自身更加强大,还对其他框架下开发的程序提供了很好的兼容性。,6.1.2Struts2的MVC模式,5,由于Struts2的架构本身就是来自于MVC思想,所以在Struts2的架构中能够找到MVC的影子。在Struts2中,视图层对应视图组件,通常是指JSP页面,也适用于velocity等其他视图显示技术。模型层对应业务逻辑组件,它通常用于实现业务逻辑及与底层数据库的交互等。控制层对应系统核心控制器和业务逻辑控制器。Struts2系统核心控制器StrutsPrepareAndExecuteFilter是一个起过滤作用的类,能根据请求自动调用相应的Action。而业务逻辑控制器是开发者自定义的一系列Action,在Action中负责调用相应的业务逻辑组件来完成调用处理。Strtus2的MVC实现,如图所示。,6.1.3Struts2控制器,6,Struts2的控制器是整个Struts2整个框架的核心,由StrutsPrepareAndExecuteFilter核心控制器和Action业务控制器两个部分组成在Struts2中通过拦截器来处理用户的请求,从而允许用户的业务逻辑控制器和Servlet分离,在处理请求的过程中以用户的业务逻辑控制器为目标,创建一个控制器代理,控制代理回调业务控制器中的execute()方法来处理用户的请求,该方法的返回值决定了Struts2以怎样的视图资源呈现给用户。Struts2的控制器体系概略图,如图所示。,6.1.4Struts2资源的获取,7,Struts2的官方网站/,可下载最新版本的Struts2。在这里以struts2.5.8的版本进行介绍,将struts2.5.8压缩包进行解压缩操作后,文件夹结构包括:apps文件夹;docs文件夹;lib文件夹;src文件夹。Struts-2.5.8框架目录中的lib文件夹下有93个jar文件,Struts2项目所依赖的主要jar包如下:struts2-core-2.5.8.jar、ognl-3.1.12.jar、freemarker-2.3.23.jar、commons-logging-1.1.3.jar、commons-io-2.4.jar、commons-lang3-3.4.jar、javassist-3.20.0-GA.jar、commons-fileupload-1.3.2.jar、log4j-api-2.7.jar。,6.2,Struts2系统架构,8,6.2.1Struts2框架结构,9,Strut2的官方文档里附带了Struts2的系统架构图,展示了Struts2的框架结构中的内部模块以及运行流程,其大量使用拦截器来处理用户请求,这些拦截器组成一个拦截器链,会自动对请求进行一些通用性的功能处理,如图所示。,6.2.2Struts2的核心概念,10,Struts2的核心组件是我们必须要掌握的,这些组件组成了应用程序的功能,也构成了框架本身。FilterDispatcher(StrutsPrepareAndExecuteFilter)Action业务类Result结果Interceptor拦截器ActionContext、值栈与OGNLStruts2标签自动类型转换国际化验证框架,6.3,Struts2的基本运行流程,11,6.3.1用户登录的处理流程,12,采用Struts2框架以后,不再提交给服务器端的JSP或Servlet,下面我们通过使用JSP+Struts2实现用户的登录验证,来讲解Struts2的运行流程。登录功能的Struts2框架的运行流程,如图所示。,6.3.2加载Struts2类库,13,将Struts2.5.8中所涉及的4个基本类库:struts2-core-2.5.8.jar、ognl-3.1.12.jar、freemarker-2.3.23.jar、commons-logging-1.1.3.jar,5个附加类库:commons-io-2.4.jar、commons-lang3-3.4.jar、javassist-3.20.0-GA.jar、commons-fileupload-1.3.2.jar、log4j-api-2.7.jar,1个mysql数据库的驱动包:mysql-connector-java-5.1.42-bin.jar。将以上10个jar包一起复制到restaurant项目下的WebRootWEB-INFlib路径下即可。选择restaurant项目并右击,在弹出的快捷菜单中选择Refresh(刷新)项目,在项目下的WebAppLibraries中可以看见所添加的jar包,这样Struts2包就加载成功了,如图所示。,6.3.3配置web.xml文件加载核心控制器,14,Struts2将核心控制器StrutsPrepareAndExecuteFilter设计成过滤器,是Struts2框架的核心组件,作用于整个Web应用程序,因此需要在web.xml中进行配置。修改项目WebRootWEB-INF路径下的web.xml文件,添加Struts2核心控制器。org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter提示:Struts2.1.3以下版本的核心控制器为org.apache.struts2.dispatcher.FilterDispatcher,Struts2.1.3-2.5之间版本的核心控制器为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。,6.3.4开发视图层页面,15,在restaurant项目的WebRoot路径下新建ch06的文件夹,并在其中新建login.jsp和index.jsp页面,设计登录页面的登录表单和主页面的提示信息。登录页面login.jsp的表单部分的代码。主页面index.jsp主要就是提示信息。,6.3.5开发业务控制器Action,16,对于编程人员来说,使用Struts2框架,主要工作就是编写Action类,Action是由用户定义的业务控制器,在src文件夹下新建包com.restaurant.action,在该包中新建LoginAction类,并继承ActionSupport。Action可以是一个普通的JavaBean,它有两个属性:loginName和loginPwd。Action类变量的命名必须与在login.jsp中文本输入框name属性匹配。在实际开发中,Action类一般都继承自Struts2提供的com.opensymphony.xwork2.ActionSupport类,以便简化开发。,6.3.6配置业务控制器struts.xml,17,编写好Action的代码后,还要进行配置才能让Struts2识别这个LoginAction,在src路径下,新建struts.xml文件(注意位置和大小写),设置包名、action请求名称以及对应的Action类,根据返回结果进行逻辑视图和物理视图之间的映射。最终的struts.xml配置文件内容、所对应的类、视图结构,如图。,6.3.7部署运行项目,18,点击工具栏上的ManageDeployments按钮,在对话框中的Module右侧下拉列表中选择restaurant项目,单击Add按钮,在对话框中选择相应的Tomcat服务器,单击Finish按钮。部署成功后,在浏览器中输入http:/localhost:8080/restaurant/ch06/login.jsp,输入用户名和密码,正确地话,进入登录成功页面。,6.3.8使用Struts2进行登录功能的处理过程,19,通过浏览器,运行登录页面;读取web.xml配置文件,加载Struts2的核心控制器;根据用户提交表单中的Action,在struts.xml配置文件中查找匹配相应的Action配置,;在struts.xml配置文件中,没有指定Action元素的method属性值,系统会调用默认方法execute()来访问数据库完成对客户端的登录请求处理,给出相应的返回字符串;根据返回结果,在struts.xml配置文件中查找相应的映射。,6.4,Struts2的控制器和组件,20,6.4.1核心控制器,21,StrutsPrepareAndExecuteFilter控制器是Struts2框架的核心控制器,该控制器负责拦截所有的用户请求,当用户请求到达时,该控制器会过滤用户的请求,所有请求将被交给Struts2框架处理。当Struts2框架获得了用户请求后,根据请求的名字决定调用哪部分业务逻辑组件,例如,对于login请求,Struts2调用login所对应的LoginAction业务类来处理该请求。,6.4.2业务控制器,22,Action就是Struts2的业务逻辑控制器,负责处理请求并将结果输出给客户端。对开发人员来说,使用Struts2框架,主要的编码工作就是编写Action类,Struts2并不要求编写的Action类必须继承ActionSupport,也无需实现任何Action接口。可以编写一个普通的Java类作为Action类,只要该类含有一个返回字符串的无参execute()方法即可。开发出系统所需要的业务控制器后,还需要配置Struts2的Action,即需要在struts.xml中配置Action的如下三部分:Action中所处理的URL。Action组件所对应的实现类。Action返回的逻辑视图和物理资源之间的对应关系。,6.4.3模型组件,23,对于Struts2框架而言,通常没有为模型组件的实现提供太多的帮助。JavaEE应用中的模型组件,通常指系统的业务逻辑组件。而隐藏在系统的业务逻辑组件下面的,可能还包含了DAO、领域对象等组件。通常,MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。也就是说,业务逻辑控制器不会对用户请求进行任何实际处理,用户请求最终由模型组件负责处理。业务控制器只是中间负责调度的调度器,这也是称Action为业务控制器的原因,如图显示了这种核心控制器调用业务逻辑组件的处理流程。,6.4.4视图组件,24,视图是MVC中一个非常重要的因素,Struts2可以使用HTML、JSP、FreeMarker等多种视图技术。当Action业务类在处理完客户端请求后,返回一个字符串,作为逻辑视图名。逻辑视图并未与任何视图技术关联,仅仅是返回一个字符串。在struts.xml配置文件中。要为Action元素指定系列子元素,每个子元素定义一个逻辑视图和物理视图之间的映射,根据返回的字符串,指向对应的视图组件,将处理结果显示,情况如下:Action向视图组件输出数据信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论