第1章Struts2框架技术入门-ok_第1页
第1章Struts2框架技术入门-ok_第2页
第1章Struts2框架技术入门-ok_第3页
第1章Struts2框架技术入门-ok_第4页
第1章Struts2框架技术入门-ok_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

2023/1/151梅花香自苦寒来!2023/1/152

|海有|壁无|一份耕耘。

|纳容|立欲|一分收获。

|百乃|千则|岂能事事如意,但求无愧于心。

|川大|仞刚|把微笑留给世界,让世界因你微笑!3JavaEE网络程序设计

《Web框架技术(Struts2+Hibernate+Spring3)

教程》

清华大学出版社教材订购Web框架技术(Struts2+Hibernate+Spring3)教程作

者:张志峰等编著出

社:清华大学出版社出版时间:2013-5-1ISBN:97873023194504联系方式主讲教师:张文军,博士,副教授QQ:354296713voicefromfriend@Mobile究方向:物联网技术、基于群智计算的大数据计算模型、基于Flex与SSH的富互联网企业级Web技术、信息系统以及嵌入式测控技术。主要讲授的专业课程(20余门)《J2EE网络程序设计》、《专业新技术讲座》(双语)、《WEB设计架构》、《富互联网技术》(双语)、《网络程序设计》(双语)、《动态网站设计》、《线性代数》、《计算机专业英语》、《电路原理与模拟电子技术》、《数字电路》、《微机原理与汇编语言》、《微机组装与维护》、《局域网组建与管理》、《Windows程序设计》、《Java语言与面向对象的程序设计》、《C++面向对象的程序设计》、《数据库技术》、《计算机技术基础》以及《信息系统开发与管理》等。JSP—MVCStruts—ReplaceCM:Servlet+JavaBean7JDBC--DataBaseObject—SQL—Record8HibernateObject—Record:ORM9Struts-Spring-Hibernate1011本课程目录第1章Struts2框架技术入门第2章Struts2核心组件详解第3章Struts2的高级组件第4章基于Struts2的个人信息管理系统项目实训第5章Hibernate框架技术入门第6章Hibernate核心组件详解第7章Hibernate高级组件第8章基于Struts2+Hibernate的项目实训第9章Spring3框架技术入门第10章Spring3的AOP框架第11章基于SSH的BBS项目实训12第1章Struts2框架技术入门1.1Struts2基础知识1.2Struts2的核心组件1.3基于Struts2的登录系统实例131.1Struts2基础知识1.1.1Struts2的由来与发展1.1.2Struts2软件包的下载和配置1.1.3MVC设计模式1.1.4Struts2的工作原理141.1.1Struts2的由来与发展Struts是整合了当前动态网站技术中Srvlet、JSP、JavaBean、JDBC、XML等相关开发技术基础之上的一种主流Web开发框架,是一种基于经典MVC的框架。采用Struts可以简化MVC设计模式的Web应用开发工作,很好地实现代码重用,使开发人员从繁琐的工作中解脱出来,来开发具有强扩展性的Web应用。Struts2是JavaWeb项目开发中最经典的Web框架技术,受到许多软件开发人员喜爱与追捧,是软件企业招聘Java软件人才时要求必备的技能之一。15Struts是Apache软件基金会下Jakarta项目的一部分。除Struts之外,Apache基金会还有其他优秀的开源产品,如Tomcat。2000年CraigR.McClanahan先生贡献了他编写的JSPModel2架构之ApplicationFramework原始程序代码给Apache基金会,成为ApacheJakarta计划StrutsFramework前身,从2000年5月开始开发Struts,到2001年6月发布Struts1.0版本。有30多个开发者参与进来,并有数千人参与到讨论组中。Struts代码基础由一个志愿的团队来管理。到2002年,Struts小组共有9个志愿团队。Struts框架的主要架构设计和开发者是CraigR.McClanahan。Craig也是Tomcat4的主要架构师。16经过六年多的发展,Struts1已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。市场占有率很高,拥有丰富的开发人群,几乎已经成为了事实上的工业标准。但是随着时间的流逝,技术的进步,Struts1的局限性也越来越多地暴露出来,并且制约了Struts1的继续发展。对于Struts1框架而言,由于与JSP、Servlet耦合非常紧密,因而导致了一些严重的问题。首先,Struts1支持的表现层技术单一。由于Struts1出现的年代比较早,那个时候没有FreeMarker、Velocity等技术,因此它不可能与这些视图层的模版技术进行整合。其次,Struts1与ServletAPI的严重耦合,使应用难于测试。最后,Struts1代码严重依赖于Struts1API,属于侵入性框架。从目前的技术层面上看,出现了许多与Struts1竞争的视图层框架,比如JSF、Tapestry和SpringMVC等。这些框架由于出现的年代比较近,应用了最新的设计理念,同时也从Struts1中吸取了经验,克服了很多不足。这些框架的出现也促进了Struts的发展。目前,Struts已经分化成了两个框架:第一个是在传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2;另外一个就是Struts1。Struts2虽然是在Struts1的基础上发展起来的,但是实质上是以WebWork为核心的。172007年发布Struts2.0,Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并,全新的Struts2框架。其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。因此Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。181.1Struts2基础知识1.1.1Struts2的由来与发展1.1.2Struts2软件包的下载和配置1.1.3MVC设计模式1.1.4Struts2的工作原理19本书使用的是Struts,2012年8月发布。201.软件包下载Struts的各版本可在Apache官方网站/download.cgi下载。要在Apache官方网站下载Struts,可打开如图1-1所示的下载页面;单击图1-1左侧的Struts(GA),出现如图1-2所示的下载页面;在图1-2中单击DownloadNow,出现如图1-3所示的页面。在图1-3页面中选择下载FullDistribution:struts--all.zip。21Struts2的下载222324下载Struts2时有以下选项:(1)FullDistribution:struts--all.zip这是Struts2的完整下载包,内容包括Struts2的核心类库、源代码、文档、实例等,建议选择该选项。(2)ExampleApplications:struts--apps.zip该包只包含Struts2的实例,在完整版的Struts2下载包中已经包含了该选项中所有实例。(3)EssentialDependenciesOnly:struts--lib.zip该包只包含Struts2的核心类库,在完整版的Struts2下载包中已经包含了该选项中所有类库。(4)Documentation:struts--docs.zip该包只包含Struts2的相关文档,包括使用文档、参考手册和API等,在完整版的Struts2下载包中已经包含了该选项中所有文档。(5)Source:struts--src.zip该包只包含Struts2的源代码,在完整版的Struts2下载包中已经包含了该选项中所有源代码。252.Struts2软件包中主要文件26(1)apps文件夹:该文件夹中存放基于Struts2的实例应用,这些实例对学习者来说是非常有用的资料。(2)docs文件夹:该文件夹中存放Struts2的相关文档,Struts2API、Struts2快速入门等文档内容。(3)lib文件夹:该文件夹中存放Struts2框架的核心类库以及Struts2的第三方插件类库。(4)src文件夹:该文件夹中存放Struts2框架的全部源代码。273.Struts2的配置Struts的lib文件夹中有80多个JAR文件。大多数情况下,使用Struts2开发JavaWeb应用程序并不需要使用到Struts2的全部类库,因此没有必要把lib文件夹中的类库全部配置到项目中。一般只需配置commons-fileupload-1.2.2.jar、commons-io-2.0.1.jar、freemarker-2.3.19.jar、javassist-3.11.0.GA.jar、ognl-3.0.5.jar、struts2-core-.jar、xwork-core-.jar等文件。如果需要使用Struts2的更多特性,需要配置更多lib文件夹中的JAR文件到项目中。28(1)在NetBeans7.2中安装Struts2插件①NetBeans7.2中集成了Struts1.3.10,如果需要在NetBeans7.2中使用Struts2,可以安装Struts2插件,该插件下载地址是:,如图1-5中所示。单击图1-5所示页面中的Plugins,出现如图1-6所示的页面,在其中选择需要的Struts2插件。293031②在图1-6所示页面中单击Struts2SupportRepackforNB7.0+Xwork,出现如图1-7所示的页面,选择支持NetBeans7.2的插件,单击该页面中的Download进行下载。3233③安装插件。下载的插件是名为1345230225_nbstruts2-suite-1.3.4-for-7.2的zip文件。首先解压缩该文件,然后单击NetBeans7.2菜单栏中“工具”->“插件”,弹出如图1-8所示的对话框。3435④在图1-8所示的对话框中单击“已下载”->“添加插件”,弹出如图1-9所示的“添加插件”对话框,找到下载插件(需先解压缩插件文件)所在的位置,如图1-9所示,选定后单击“打开”,在弹出的对话框中单击“安装”,Struts2插件即安装完成,最后重新启动NetBeans7.2。3637本书使用的工具是:JDK7、NetBeans7.2、MyEclipse10.6、Eclipse4.2、Tomcat7。如需使用这些工具可在其官方网站下载。有关JDK、NetBeans、MyEclipse、Eclipse、Tomcat的下载、安装、配置和使用请参考相关资料或者参考作者编写的《Java程序设计与项目实训教程》(清华大学出版社)、《JSP程序设计与项目实训教程》(清华大学出版社)、《JSP程序设计技术教程》(清华大学出版社)。双击打开NetBeans7.2,出现如图1-10所示的NetBeans7.2主界面。可以使用菜单项对IDE进行设置与使用。(2)使用NetBeans7.2新建Struts2项目3839404142434445备注:本书使用的Struts2是最新版本Struts2.3.4,安装的插件中集成的也是Struts2.3.4。如果要使用其它版本的Struts2,可以重新自行配置。46(3)在NetBeans7.2中配置Struts2方法①:首先删除图1-15所示“库”中原有的Struts2类库,然后在项目名称ch01上右击,接下来在如图1-16所示的右键菜单中单击“属性”,并在随后弹出的对话框中选择“库”->“添加JAR/文件夹(F)”,通过浏览找到要配置的Struts2类库所在位置,如图1-17所示,最后单击“打开”,Struts2类库配置即完成。474849方法②:在项目的“库”上右击,在如图1-18所示的右键菜单中可以单击“添加JAR/文件夹”,在弹出的对话框中选择“库”->“添加JAR/文件夹(F)”,找到Struts2类库所在位置;也可以单击“添加库”,出现如图1-19所示对话框,单击其中的“创建”会弹出如图1-20所示对话框,然后在“库名称”中为要添加的库命名为“Struts2.3.4”,再单击“确定”,将弹出如图1-21所示的“定制库”对话框,最后单击“添加JAR/文件夹(F)”找到Struts2类库的所在位置。5051525354(4)在MyEclipse中配置Struts2(4)在MyEclipse10.6中也已经集成了Struts2的插件,直接使用即可。要在MyEclipse10.6中重新配置Struts2,可在创建项目(如项目ch01)后,单击菜单“MyEclipse”->“ProjectCapabilities”->“AddStrutsCapabilities”,如图1-22所示,会弹出如图1-23所示的对话框,选择Struts2.1后弹出另外一个对话框,在该对话框中单击“Next”,弹出如图1-24所示对话框,在其中可以选择Struts2类库,完成选择后单击“打开”,Struts2类库在MyEclipse项目中的配置即完成。配置完成后,在项目ch01中将自动添加一个Struts2的包,即Struts2CoreLibraries。如需使用Struts2的其它版本,可以导入到该包。55565758(5)在Eclipse4.2中配置Struts2Struts2在Eclipse中的配置和在MyEclipse10.6中的配置相似,这里不再赘述。591.1Struts2基础知识1.1.1Struts2的由来与发展1.1.2Struts2软件包的下载和配置1.1.3MVC设计模式1.1.4Struts2的工作原理60MVC,如图1-25所示,是一种目前广泛流行的软件设计模式,早在70年代,IBM就进行了MVC设计模式的研究。近来,随着JavaEE的成熟,它成为在JavaEE平台上推荐的一种设计模型,是广大Java开发者非常感兴趣的设计模型。随着网络应用的快速增加,MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论选择哪种语言,无论应用多复杂,它都能为理解分析应用模型提供最基本的分析方法,为构造产品提供清晰的设计框架,为软件工程提供规范的依据。61MVC模式图模型视图控制器状态查询通知改变状态改变视图选择用户请求方法调用事件621.模型(Model)Model部分包括业务逻辑层和数据库访问层。在JavaWeb应用程序中,业务逻辑层一般由JavaBean或EJB构建。Model部分就是业务流程或状态的处理以及业务规则的制定。业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的组件。MVC并没有提供模型的设计方法,而只提供给用户应该组织管理这些模型,以便于模型的重构和提高重用性。2.视图(View)在JavaWeb应用程序中,View部分一般用JSP、Flex和HTML构建,也可以是XHTML、XML、Applet和JavaScript。客户在View部分提交请求,在业务逻辑层处理后,把处理结果又返回给View部分显示出来。因此,View部分也是JavaWeb应程序的用户界面。一个Web项目可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理以及响应用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理由模型负责。3.控制(Controller)Controller部分由Servlet组成。当用户请求从View部分传过来时,Controller把该请求发给适当的业务逻辑组件处理;请求处理完成后,又返回给Controller。Controller再把处理结果转发给适当的View组件显示或者调用Model。因此,Controller在视图层与业务逻辑层之间起到了桥梁作用,控制了两者之间的数据流向。模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其他依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,使显示得到及时更新。63MVC设计模式工作流程是:用户的请求(V)提交给控制器(C);控制器接受到用户请求后根据用户的具体需求,调用相应的JavaBean或者EJB(M部分)来进行处理用户的请求;控制器调用M处理完数据后,根据处理结果进行下一步的调转,如跳转到另外一个页面或者其他Servlet。641.1Struts2基础知识1.1.1Struts2的由来与发展1.1.2Struts2软件包的下载和配置1.1.3MVC设计模式1.1.4Struts2的工作原理65调用指定某个Action返回处理结果HTTP视图(JSP)控制器FilterDispatcher拦截器1拦截器2拦截器3Action模型JavaBeansstruts.xml获取配置信息66Struts2中使用拦截器来处理用户请求,从而允许用户的业务控制器Action与Servlet分离。Struts2的工作原理如图1-26所示:用户请求提交后经过多个拦截器拦截后交给核心控制器FilterDispatcher处理,核心控制器读取配置文件struts.xml,根据配置文件的信息指定某一个业务控制器Action(POJO类)来处理用户数据,业务控制器调用某个业务组件DAO进行处理,在处理的过程中可以调用其他模型组件共同完成数据的处理。Action处理完后会返回给核心控制器FilterDispatcher一个处理结果result,核心控制器根据返回的处理结果读取配置文件struts.xml,根据配置文件中的配置,决定下一步跳转到哪一个页面JSP显示信息。67一个客户请求在Struts2框架中处理的过程大概有以下几个步骤:客户提交请求到服务器;请求被提交到一系列的过滤器过滤后最后到FilterDispatcher;FilterDispatcher是核心控制器(Struts的Jar文件),是基于Struts2中MVC模式的控制器部分;FilterDispatcher读取配置文件struts.xml,根据配置信息调用某个Action中的方法(通常为execute)来处理客户请求;Action执行完毕,返回执行结果,根据struts.xml的配置找到对应的返回结果result,决定跳转到哪个JSP视图显示处理信息。68第1章Struts2框架技术入门1.1Struts2基础知识1.2Struts2的核心组件1.3基于Struts2的登录系统实例691.2Struts2的核心组件1.2.1Struts2的控制器组件1.2.2Struts2的模型组件1.2.3Struts2的视图组件70Struts2是基于MVC模式的Web框架,Struts2框架按照MVC的思想主要有:控制器层,包括核心控制器FilterDispatcher;业务控制器Action—JavaClass;模型层DAO,包括业务逻辑组件和数据库访问组件;视图组件。711.2.1Struts2的控制器组件在基于MVC的应用程序开发中控制器组件的主要功能是,从客户端接受数据、调用模型(JavaBean)、进行数据处理以及决定返回给客户某个视图。Struts2的控制器主要有:核心控制器FilterDispatcher业务控制器Action。721.FilterDispatcher控制器FilterDispatcher是一个过滤器,是Struts2的核心控制器,控制着整个Web项目中数据的流向和操作。与Web应用程序整合的MVC框架需要web.xml配置文件。基于MVC的Web框架需要在Web应用程序中加载一个核心控制器,Struts2框架需要加载FilterDispatcher,需在web.xml中进行配置。除了web.xml配置文件配置核心控制器FilterDispatcher外;Struts2控制数据的操作时,还需要Struts2本身的配置文件struts.xml。732.struts.xml配置文件在Struts2中核心的配置文件是struts.xml,用户请求提交给核心控制器FilterDispatcher后,具体由哪个业务控制器Action来完成,是struts.xml配置文件中配置的,根据配置文件struts.xml中的配置数据,核心控制器FilterDispatcher调用某个业务控制器Action来完成数据的处理,处理完数据后把处理结果result通过其他对象返回给核心控制器FilterDispatcher,核心控制器根据struts.xml配置文件的数据,决定下一步的操作。所以Struts2中struts.xml是核心配置文件,在控制器操作中起到关键作用。743.Action控制器Action是Struts2的业务控制器,可以不实现任何接口或者继承Struts2类,该Action类是一个基本的Java类,具有很高的可重用性。Action中本身不实现任何业务逻辑,只负责组织调度业务模型组件。Struts2的Action类具有很多优势:Action类完全是一个POJO(PlainOldJavaObjects)简单的Java对象,实际就是普通JavaBean,是为了避免和EJB混淆所创造的简称,Action具有良好的代码重用性。Action类无需与Servlet关联,降低了与Servlet的耦合度,所以应用和测试比较简单。Action类的execute()方法仅返回一个字符串作为处理结果result,该处理结果可传到任何视图或者另外一个Action—由Struts.xml中的配置数据决定。751.2Struts2的核心组件1.2.1Struts2的控制器组件1.2.2Struts2的模型组件1.2.3Struts2的视图组件761.2.2Struts2的模型组件模型组件可以是实现业务逻辑的模块,可以是JavaBean、POJO、EJB,在实际的开发中,对模型组件的区别和定义也是比较模糊的,实际上也超出了Struts2框架的范围。Struts2框架的业务控制器不会对用户请求进行实质的处理,用户请求最终由模型组件负责处理,业务控制器Action只是提供处理场合,是负责调度的调度器。77不同的开发者有自己的方式来实现模型组件,Struts2框架的目的是使用Action来调用模型组件。例如一个银行存款的模型组件,代码如【例1-1】所示。78【例1-1】Bank模型组件(Bank.java)79【例1-1】中的代码是一个完成某一功能的业务逻辑模块,在执行saving(Stringaccounts,Stringmoney)方法时能够通过调用其他类或者直接访问数据库完成存款功能。使用业务控制器Action可以调用该业务逻辑组件在Action的execute()中实现,代码如【例1-2】所示。【例1-2】BankSavingAction业务控制器(BankSavingAction.java)801.2Struts2的核心组件1.2.1Struts2的控制器组件1.2.2Struts2的模型组件1.2.3Struts2的视图组件811.2.3Struts2的视图组件Struts2视图组件除了有HTML、JSP、Struts2标签外,还有模板技术作为视图技术,如FreeMarker、Velocity等视图技术。821.HTML和JSPHTML和JSP是开发基于Struts2视图组件的主要技术。832.Struts2标签Struts2框架提供了功能强大的标签库,使用Struts2标签库开发视图,可以使页面更整洁,简化页面输出,支持更加复杂而丰富的功能且页面易维护,减少代码量和开发时间。843.FreemakerFreemaker是一个“模板引擎”,是一个基于模板技术的生成文本输出的一个通用工具。它是一个Java的包,使用纯Java编写,是Java程序员可以使用的类库。本身并不是一个对最终用户的应用程序。但是,程序员可以把它应用到他们的产品中。FreeMarker是设计为可以生成Web页面(JSP)。它是基于Servlet遵循MVC模式的应用,MVC模式能够使网页设计人员和程序员的耦合减少。每个人都可以做他们擅长的工作,网页设计人员可以改变网页的面貌,而并不需要程序员的重新编译,因为业务逻辑和页面的设计已经被分离开了。模板是不能由复杂的程序片断组成的,即便网页设计人员和程序员是一个人,分离是有必要的,它能使程序更加的灵活和清晰。虽然Freemarker能编程,但是它并不是一个编程语言,它是为程序显示数据而准备的。Freemarker仅仅是利用模板加上数据生成文本页面。能用来生成任意格式的文本,如HTML,XML,Java源码等等。Freemarker并不是一个Web应用程序框架,可以说是一个Web应用框架的一个视图组件。Freemarker下载地址为:/index.html。854.VelocityVelocity是一个开放源吗的“模版引擎”,由小组负责开发,现在最新的版本是Velocity1.7,可以到其官方网站/上可以了解Velocity的最新信息。Velocity是一个基于Java的模版引擎。它允许Web页面设计者引用Java代码预定义的方法。Web设计者可以根据MVC模式和Java程序员并行工作,这意味着Web设计者可以单独专注于设计良好的站点,而程序员则可单独专注于编写底层代码。Velocity将Java代码从Web页面中分离出来,使站点在长时间运行后仍然具有很好的可维护性,并提供了一个除JSP和PHP之外的可行的被选方案。Velocity可用来从模板产生Web页面,SQL以及其他输出。它也可用于一个独立的程序以产生源代码和报告,或者作为其他系统的一个集成组件。这个项目完成后,Velocity将为应用程序框架提供模板服务。Velocity的模板语言非常简单,它并没有复杂的数据类型和语法结构,即使没有编程经验的读者也可以轻松地掌握。86第1章Struts2框架技术入门1.1Struts2基础知识1.2Struts2的核心组件1.3基于Struts2的登录系统实例871.3基于Struts2的登录系统实例1.3.1使用NetBeans7开发项目1.3.2使用MyEclipse10开发项目1.3.3使用Eclipse开发项目88本节通过使用NetBeans7、MyEclipse9和Eclipse来开发简单的登录系统,从而掌握如何使用它们开发基于Struts2的Web项目。使用基于Struts2开发主要经过以下步骤:(1)在web.xml中配置核心控制器FilterDispatcher;(2)设计和编写视图组件,如使用JSP编写页面;(3)编写视图组件对应的业务控制器组件Action;(4)配置业务控制器Action,即修改struts.xml配置文件,配置Action;(5)在struts.xml配置文件中配置处理结果与对应视图跳转关系。Action调用模型组件(业务逻辑组件)处理后返回处理结果,根据处理结果进行下一步页面跳转。页面的下一怎么调转都是事先在struts.xml配置文件中配置好的。891.3.1使用NetBeans7开发项目1.项目介绍该项目为登录系统,项目有一个登录页面(login.jsp),代码如【例1-4】所示;登录页面对应的业务逻辑组件LoginBean类代码如【例1-6】,对应的业务控制器LoginAction类,代码如【例1-7】所示;如果登录成功(用户名、密码正确)跳转到success.jsp页面,代码如【例1-5】所示;如果登录失败(用户名、密码不正确)则重新回到登录页面(login.jsp)。此外还需要配置web.xml,代码如【例1-3】所示;配置struts.xml文件的代码如【例1-8】所示。项目的文件结构如图1-27所示。90912.在web.xml中配置核心控制器FilterDispatcher在使用NetBeans7.2开发基于Struts2的Web项目时,如果新建项目时在如图1-14所示步骤中选择了“Struts2”,那么在新建项目的“WEB-INF”文件夹下,NetBeans7.2会自动创建一个web.xml,所以使用NetBeans7.2中的Struts2插件时,web.xml中的核心控制器FilterDispatcher是自动配置好的。web.xml的代码如【例1-3】所示。如果没有使用该插件新建项目,需要程序员自己配置web.xml,代码如【例1-3】所示。92【例1-3】在web.xml中配置核心控制器(web.xml)<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="3.0"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"><filter><!--配置Struts2核心控制器的名称--><filter-name>struts2</filter-name> <!--配置Struts2核心控制器的类--><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping> <!--Struts2控制器的名称--><filter-name>struts2</filter-name> <!--拦截所有URL请求--><url-pattern>/*</url-pattern></filter-mapping>93 <!--指定默认的会话超时时间间隔,以分钟为单位--><session-config><session-timeout>30</session-timeout></session-config> <!--配置默认的访问界面--><welcome-file-list><welcome-file>example/HelloWorld.jsp</welcome-file></welcome-file-list></web-app>943.编写视图组件(JSP页面)编写一个如图1-28所示的登录页面。95【例1-4】登录页面(login.jsp)<%@pagecontentType="text/html"pageEncoding="UTF-8"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>基于Struts2的登录系统应用</title></head><body><formmethod="post"action="login">

用户名:<inputname="userName"type="text"size="24"><br>

密码:<inputname="password"type="password"size="26"><br><inputtype="submit"value="登录"></form><hr></body></html>96【例1-5】登录成功页面(success.jsp)<%@pagecontentType="text/html"pageEncoding="UTF-8"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>登录成功页面</title></head><body><h1>你登录成功,欢迎你!</h1></body></html>974.编写登录页面对应的业务逻辑组件JavaBean登录页面使用的业务逻辑组件LoginBean类,代码如【例1-6】。【例1-6】登录页面的业务逻辑组件(LoginBean.java)packageloginBean;publicclassLoginBean{privateStringuserName;privateStringpassWord;publicStringgetUserName(){returnuserName;}publicvoidsetUserName(StringuserName){this.userName=userName;}publicStringgetPassWord(){returnpassWord;}publicvoidsetPassWord(StringpassWord){this.passWord=passWord;}98//处理用户登录的方法

publicbooleanlogin(StringuserName,StringpassWord){booleanb=false;if(userName.equals("QQ")&&passWord.equals("123")){b=true;returnb; } else{b=false;returnb; }}}995.编写业务控制器Action为了处理视图的业务逻辑,一般每个视图都会对应一个业务控制器Action。login.jsp对应的业务控制器如【例1-7】所示的LoginAction类,该类就是一个普通的Java类。【例1-7】登录页面(login.jsp)对应的业务控制器(LoginAction.java)packageloginAction;importloginBean.LoginBean;publicclassLoginAction{privateStringuserName;privateStringpassWord;publicStringgetUserName(){returnuserName;}publicvoidsetUserName(StringuserName){this.userName=userName;}100publicStringgetPassWord(){returnpassWord;}publicvoidsetPassWord(StringpassWord){this.passWord=passWord;}

publicStringexecute()throwsException{LoginBeanlb=newLoginBean();if(lb.login(userName,passWord)) {return"success"; } else{return"error"; }}}1016.在struts.xml中配置Action业务控制器LoginAction需要在struts.xml中配置,只有这样核心控制器才能找到该业务控制器。另外,核心控制

温馨提示

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

评论

0/150

提交评论