购买

¥30.0

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Struts2框架技术入门

Struts2框架技术入门.ppt

Struts2框架技术入门

烟雨梦兮
2018-10-14 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《Struts2框架技术入门ppt》,可适用于IT/计算机领域

*Web框架技术(StrutsHibernateSpring)*本课程目录第章Struts框架技术入门第章Struts核心组件详解第章Struts的高级组件第章基于Struts的个人信息管理系统项目实训第章Hibernate框架技术入门第章Hibernate核心组件详解第章Hibernate高级组件第章基于StrutsHibernate的项目实训第章Spring框架技术入门第章Spring的AOP框架第章基于SSH的BBS项目实训*第章Struts框架技术入门Struts基础知识Struts的核心组件基于Struts的登录系统实例*Struts基础知识Struts的由来与发展Struts软件包的下载和配置MVC设计模式Struts的工作原理*Struts的由来与发展Struts是整合了当前动态网站技术中Srvlet、JSP、JavaBean、JDBC、XML等相关开发技术基础之上的一种主流Web开发框架是一种基于经典MVC的框架。采用Struts可以简化MVC设计模式的Web应用开发工作很好地实现代码重用使开发人员从繁琐的工作中解脱出来来开发具有强扩展性的Web应用。Struts是JavaWeb项目开发中最经典的Web框架技术受到许多软件开发人员喜爱与追捧是软件企业招聘Java软件人才时要求必备的技能之一。*Struts是Apache软件基金会下Jakarta项目的一部分。从年月开始开发Struts到年月发布Struts版本。有多个开发者参与进来并有数千人参与到讨论组中。到年Struts小组共有个志愿团队。Struts框架的主要架构设计和开发者是CraigRMcClanahan。Craig也是Tomcat的主要架构师。年发布Struts与Struts的体系结构的差别巨大。Struts以WebWork为核心采用拦截器的机制来处理用户的请求所以这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开Struts可以理解为WebWork的更新产品。*Struts基础知识Struts的由来与发展Struts软件包的下载和配置MVC设计模式Struts的工作原理*软件包下载Struts的各版本可在Apache官方网站http:strutsapacheorgdownloadcgi下载。选择下载FullDistribution:strutsallzip。书上使用的是Struts年月发布。*Struts的下载***下载Struts时有以下选项:()FullDistribution:strutsallzip这是Struts的完整下载包内容包括Struts的核心类库、源代码、文档、实例等建议选择该选项。()ExampleApplications:strutsappszip该包只包含Struts的实例在完整版的Struts下载包中已经包含了该选项中所有实例。()EssentialDependenciesOnly:strutslibzip该包只包含Struts的核心类库在完整版的Struts下载包中已经包含了该选项中所有类库。()Documentation:strutsdocszip该包只包含Struts的相关文档包括使用文档、参考手册和API等在完整版的Struts下载包中已经包含了该选项中所有文档。()Source:strutssrczip该包只包含Struts的源代码在完整版的Struts下载包中已经包含了该选项中所有源代码。*Struts软件包中主要文件*()apps文件夹:该文件夹中存放基于Struts的实例应用这些实例对学习者来说是非常有用的资料。()docs文件夹:该文件夹中存放Struts的相关文档StrutsAPI、Struts快速入门等文档内容。()lib文件夹:该文件夹中存放Struts框架的核心类库以及Struts的第三方插件类库。()src文件夹:该文件夹中存放Struts框架的全部源代码。*Struts的配置Struts的lib文件夹中有多个JAR文件。大多数情况下使用Struts开发JavaWeb应用程序并不需要使用到Struts的全部类库因此没有必要把lib文件夹中的类库全部配置到项目中。一般只需配置commonsfileuploadjar、commonsiojar、freemarkerjar、javassistGAjar、ognljar、strutscorejar、xworkcorejar等文件。如果需要使用Struts的更多特性需要配置更多lib文件夹中的JAR文件到项目中。*在MyEclipse中配置Struts在MyEclipse中也已经集成了Struts的插件直接使用即可。要在MyEclipse中重新配置Struts可在创建项目(如项目ch)后单击菜单“MyEclipse”>“ProjectCapabilities”>“AddStrutsCapabilities”如图所示会弹出如图所示的对话框选择Struts后弹出另外一个对话框在该对话框中单击“Next”弹出如图所示对话框在其中可以选择Struts类库完成选择后单击“打开”Struts类库在MyEclipse项目中的配置即完成。配置完成后在项目ch中将自动添加一个Struts的包即StrutsCoreLibraries。如需使用Struts的其它版本可以导入到该包。****Struts基础知识Struts的由来与发展Struts软件包的下载和配置MVC设计模式Struts的工作原理*MVC如图所示是一种目前广泛流行的软件设计模式早在年代IBM就进行了MVC设计模式的研究。近来随着JavaEE的成熟它成为在JavaEE平台上推荐的一种设计模型是广大Java开发者非常感兴趣的设计模型。随着网络应用的快速增加MVC模式对于Web应用的开发无疑是一种非常先进的设计思想无论选择哪种语言无论应用多复杂它都能为理解分析应用模型提供最基本的分析方法为构造产品提供清晰的设计框架为软件工程提供规范的依据。*MVC模式图MVC设计模式概览实现MVC(Model、View、Controller)模式的应用程序由大部分构成:模型:封装应用程序的数据和业务逻辑视图:实现应用程序的信息显示功能控制器:接收来自用户的输入调用模型层响应对应的视图组件POJO(PlainOldJavaObject)JSPServletFilter使用Filter作为控制器的MVC使用Filter作为控制器的好处使用一个过滤器来作为控制器,可以方便地在应用程序里对所有资源(包括静态资源)进行控制访问<urlpattern>*action<urlpattern>Servlet能做的Filter是否都可以完成嗯。Filter能做的Servlet都可以完成吗拦截资源却不是Servlet所擅长的!Filter中有一个FilterChain这个API在Servlet中没有!ServletVSFilter*Struts基础知识Struts的由来与发展Struts软件包的下载和配置MVC设计模式Struts的工作原理**Struts中使用拦截器来处理用户请求从而允许用户的业务控制器Action与Servlet分离。Struts的工作原理如图所示用户请求提交后经过多个拦截器拦截后交给核心控制器FilterDispatcher处理核心控制器读取配置文件strutsxml根据配置文件的信息指定某一个业务控制器Action(POJO类)来处理用户数据业务控制器调用某个业务组件进行处理在处理的过程中可以调用其他模型组件共同完成数据的处理。Action处理完后会返回给核心控制器FilterDispatcher一个处理结果核心控制器根据返回的处理结果读取配置文件strutsxml根据配置文件中的配置决定下一步跳转到哪一个页面。*一个客户请求在Struts框架中处理的过程大概有以下几个步骤:客户提交请求到服务器请求被提交到一系列的过滤器过滤后最后到FilterDispatcherFilterDispatcher是核心控制器是基于Struts中MVC模式的控制器部分FilterDispatcher读取配置文件strutsxml根据配置信息调用某个Action来处理客户请求Action执行完毕返回执行结果根据strutsxml的配置找到对应的返回结果。*第章Struts框架技术入门Struts基础知识Struts的核心组件基于Struts的登录系统实例*Struts的核心组件Struts的控制器组件Struts的模型组件Struts的视图组件*Struts是基于MVC模式的Web框架Struts框架按照MVC的思想主要有控制器层包括核心控制器FilterDispatcher、业务控制器Action模型层包括业务逻辑组件和数据库访问组件视图组件。*Struts的控制器组件在基于MVC的应用程序开发中控制器组件的主要功能是从客户端接受数据、调用模型(JavaBean)、进行数据处理以及决定返回给客户某个视图。Struts的控制器主要有:核心控制器FilterDispatcher和业务控制器Action。*FilterDispatcher控制器FilterDispatcher是一个过滤器是Struts的核心控制器控制着整个Web项目中数据的流向和操作。与Web应用程序整合的MVC框架需要webxml配置文件。基于MVC的Web框架需要在Web应用程序中加载一个核心控制器Struts框架需要加载FilterDispatcher需在webxml中进行配置。除了webxml配置文件配置核心控制器FilterDispatcher外Struts控制数据的操作时还需要Struts本身的配置文件strutsxml。*strutsxml配置文件在Struts中核心的配置文件是strutsxml用户请求提交给核心控制器FilterDispatcher后具体由那个业务控制器Action来完成是strutsxml配置文件中配置的根据配置文件strutsxml中的数据核心控制器FilterDispatcher调用某个业务控制器Action来完成数据的处理处理完数据后把处理结果通过其他对象返回给核心控制器FilterDispatcher核心控制器根据strutsxml配置文件的数据决定下一步的操作。所以Struts中strutsxml是核心配置文件在控制器操作中起到关键作用。*Action控制器Action是Struts的业务控制器可以不实现任何接口或者继承Struts类该Action类是一个基本的Java类具有很高的可重用性。Action中不实现任何业务逻辑只负责组织调度业务模型组件。Struts的Action类具有很多优势:Action类完全是一个POJO(PlainOldJavaObjects)简单的Java对象实际就是普通JavaBean是为了避免和EJB混淆所创造的简称Action具有良好的代码重用性。Action类无需与Servlet关联降低了与Servlet的耦合度所以应用和测试比较简单。Action类的execute()方法仅返回一个字符串作为处理结果该处理结果可传到任何视图或者另外一个Action。*Struts的核心组件Struts的控制器组件Struts的模型组件Struts的视图组件*Struts的模型组件模型组件可以是实现业务逻辑的模块可以是JavaBean、POJO、EJB在实际的开发中对模型组件的区别和定义也是比较模糊的实际上也超出了Struts框架的范围。Struts框架的业务控制器不会对用户请求进行实质的处理用户请求最终由模型组件负责处理业务控制器只是提供处理场合是负责调度的调度器。*不同的开发者有自己的方式来实现模型组件Struts框架的目的是使用Action来调用模型组件。例如一个银行存款的模型组件代码如【例】所示。*【例】Bank模型组件(Bankjava)*【例】中的代码是一个完成某一功能的业务逻辑模块在执行saving(Stringaccounts,Stringmoney)方法时能够通过调用其他类或者直接访问数据库完成存款功能。使用业务控制器Action可以调用该业务逻辑组件在Action的execute()中实现代码如【例】所示。【例】BankSavingAction业务控制器(BankSavingActionjava)*Struts的核心组件Struts的控制器组件Struts的模型组件Struts的视图组件*Struts的视图组件Struts视图组件的构成主要有:HTML、JSP和Struts标签Struts视图组件除了有HTML、JSP、Struts标签外还有模板技术作为视图技术如FreeMarker、Velocity等视图技术。*HTML和JSPHTML和JSP是开发基于Struts视图组件的主要技术。*Struts标签Struts框架提供了功能强大的标签库使用Struts标签库开发视图可以使页面更整洁简化页面输出支持更加复杂而丰富的功能且页面易维护减少代码量和开发时间。*FreemakerFreemaker是一个“模板引擎”是一个基于模板技术的生成文本输出的一个通用工具。它是一个Java的包使用纯Java编写是Java程序员可以使用的类库。本身并不是一个对最终用户的应用程序。但是程序员可以把它应用到他们的产品中。FreeMarker是设计为可以生成Web页面(JSP)。它是基于Servlet遵循MVC模式的应用MVC模式能够使网页设计人员和程序员的耦合减少。每个人都可以做他们擅长的工作网页设计人员可以改变网页的面貌而并不需要程序员的重新编译因为业务逻辑和页面的设计已经被分离开了。模板是不能由复杂的程序片断组成的即便网页设计人员和程序员是一个人分离是有必要的它能使程序更加的灵活和清晰。虽然Freemarker能编程但是它并不是一个编程语言它是为程序显示数据而准备的。Freemarker仅仅是利用模板加上数据生成文本页面。能用来生成任意格式的文本如HTMLXMLJava源码等等。Freemarker并不是一个Web应用程序框架可以说是一个Web应用框架的一个视图组件。Freemarker下载地址为:http:wwwfreemarkerorgindexhtml。*VelocityVelocity是一个开放源吗的“模版引擎”由apacheorg小组负责开发现在最新的版本是Velocity可以到其官方网站http:velocityapacheorg上可以了解Velocity的最新信息。Velocity是一个基于Java的模版引擎。它允许Web页面设计者引用Java代码预定义的方法。Web设计者可以根据MVC模式和Java程序员并行工作这意味着Web设计者可以单独专注于设计良好的站点而程序员则可单独专注于编写底层代码。Velocity将Java代码从Web页面中分离出来使站点在长时间运行后仍然具有很好的可维护性并提供了一个除JSP和PHP之外的可行的被选方案。Velocity可用来从模板产生Web页面SQL以及其他输出。它也可用于一个独立的程序以产生源代码和报告或者作为其他系统的一个集成组件。这个项目完成后Velocity将为应用程序框架提供模板服务。Velocity的模板语言非常简单它并没有复杂的数据类型和语法结构即使没有编程经验的读者也可以轻松地掌握。*第章Struts框架技术入门Struts基础知识Struts的核心组件基于Struts的登录系统实例*基于Struts的登录系统实例使用NetBeans开发项目使用MyEclipse开发项目使用Eclipse开发项目*本节通过使用NetBeans、MyEclipse和Eclipse来开发简单的登录系统从而掌握如何使用它们开发基于Struts的Web项目。使用基于Struts开发主要经过以下步骤:()在webxml中配置核心控制器FilterDispatcher()设计和编写视图组件如使用JSP编写页面()编写视图组件对应的业务控制器组件Action()配置业务控制器Action即修改strutsxml配置文件配置Action()在strutsxml配置文件文件中配置处理结果与对应视图跳转关系。Action调用模型组件(业务逻辑组件)处理后返回处理结果根据处理结果进行下一步页面跳转。页面的下一怎么调转都是事先在strutsxml配置文件中配置好的。*使用NetBeans开发项目项目介绍该项目为登录系统项目有一个登录页面(loginjsp)代码如【例】所示登录页面对应的业务逻辑组件LoginBean类代码如【例】对应的业务控制器LoginAction类代码如【例】所示如果登录成功(用户名、密码正确)跳转到successjsp页面代码如【例】所示如果登录失败(用户名、密码不正确)则重新回到登录页面(loginjsp)。此外还需要配置webxml代码如【例】所示配置strutsxml文件的代码如【例】所示。项目的文件结构如图所示。**在webxml中配置核心控制器FilterDispatcher在使用NetBeans开发基于Struts的Web项目时如果新建项目时在如图所示步骤中选择了“Struts”那么在新建项目的“WEBINF”文件夹下NetBeans会自动创建一个webxml所以使用NetBeans中的Struts插件时webxml中的核心控制器FilterDispatcher是自动配置好的。webxml的代码如【例】所示。如果没有使用该插件新建项目需要程序员自己配置webxml代码如【例】所示。*【例】在webxml中配置核心控制器(webxml)<xmlversion=""encoding=""><webappversion=""xmlns="http:javasuncomxmlnsjavaee"xmlns:xsi="http:wwwworgXMLSchemainstance"xsi:schemaLocation="http:javasuncomxmlnsjavaeehttp:javasuncomxmlnsjavaeewebappxsd"><filter><!配置Struts核心控制器的名称><filtername>struts<filtername><!配置Struts核心控制器的类><filterclass>orgapachestrutsdispatcherFilterDispatcher<filterclass><filter><filtermapping><!Struts控制器的名称><filtername>struts<filtername><!拦截所有URL请求><urlpattern>*<urlpattern><filtermapping>*<!指定默认的会话超时时间间隔以分钟为单位><sessionconfig><sessiontimeout><sessiontimeout><sessionconfig><!配置默认的访问界面><welcomefilelist><welcomefile>exampleHelloWorldjsp<welcomefile><welcomefilelist><webapp>*编写视图组件(JSP页面)编写一个如图所示的登录页面。*【例】登录页面(loginjsp)<pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>基于Struts的登录系统应用<title><head><body><formmethod="post"action="login">用户名:<inputname="userName"type="text"size=""><br>密码:<inputname="password"type="password"size=""><br><inputtype="submit"value="登录"><form><hr><body><html>*【例】登录成功页面(successjsp)<pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>登录成功页面<title><head><body><h>你登录成功欢迎你!<h><body><html>*编写登录页面对应的业务逻辑组件JavaBean登录页面使用的业务逻辑组件LoginBean类代码如【例】。【例】登录页面的业务逻辑组件(LoginBeanjava)packageloginBeanpublicclassLoginBean{privateStringuserNameprivateStringpassWordpublicStringgetUserName(){returnuserName}publicvoidsetUserName(StringuserName){thisuserName=userName}publicStringgetPassWord(){returnpassWord}publicvoidsetPassWord(StringpassWord){thispassWord=passWord}*处理用户登录的方法publicbooleanlogin(StringuserName,StringpassWord){booleanb=falseif(userNameequals("QQ")passWordequals("")){b=truereturnb}else{b=falsereturnb}}}*编写业务控制器Action为了处理视图的业务逻辑一般每个视图都会对应一个业务控制器Action。loginjsp对应的业务控制器如【例】所示的LoginAction类该类就是一个普通的Java类。【例】登录页面(loginjsp)对应的业务控制器(LoginActionjava)packageloginActionimportloginBeanLoginBeanpublicclassLoginAction{privateStringuserNameprivateStringpassWordpublicStringgetUserName(){returnuserName}publicvoidsetUserName(StringuserName){thisuserName=userName}*publicStringgetPassWord(){returnpassWord}publicvoidsetPassWord(StringpassWord){thispassWord=passWord}publicStringexecute()throwsException{LoginBeanlb=newLoginBean()if(lblogin(userName,passWord)){return"success"}else{return"error"}}}**在strutsxml中配置Action业务控制器LoginAction需要在strutsxml中配置只有这样核心控制器才能找到该业务控制器。另外核心控制器根据业务控制器返回的值以及在strutsxml中的配置决定下一步跳转到哪个页面上去。strutsxml的配置代码如【例】中代码所示。*【例】在strutsxml中配置Action(strutsxml)<!DOCTYPEstrutsPUBLIC"ApacheSoftwareFoundationDTDStrutsConfigurationEN""http:strutsapacheorgdtdsstrutsdtd"><!根元素><struts><includefile="examplexml"><packagename="zzf"extends="strutsdefault"><actionname="login"class="chActionLoginAction"><resultname="error">loginloginjsp<result><resultname="success">loginsuccessjsp<result><action><package><struts>*项目部署和运行*基于Struts的登录系统实例使用NetBeans开发项目使用MyEclipse开发项目使用Eclipse开发项目*使用MyEclipse开发项目项目介绍该项目为登录系统项目有一个登录页面(loginjsp)代码如【例】所示登录页面对应的业务逻辑组件是LoginBean类代码如【例】所示对应的业务控制器LoginAction类代码如【例】所示如果登录成功(用户名、密码正确)跳转到successjsp页面代码如【例】所示如果登录失败(用户名、密码不正确)则重新回到登录页面(loginjsp)。此外还需要配置webxml代码如【例】所示配置strutsxml代码如【例】所示。项目的文件结构如图所示。**与NetBeans相似。项目部署和运行使用MyEclipse开发好项目后要先发布项目(项目部署)然后启动服务器最后运行页面。要发布项目可单击如图所示的图标弹出如图所示的界面在其中的“Project”选择要发布的项目然后单击“Add”弹出如图所示的界面选择需要使用的服务器后单击“Finish”再单击“OK”项目发布即完成。******

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/73

¥30.0

立即购买

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利