Struts原理、开发及项目实施
- 格式:doc
- 大小:63.50 KB
- 文档页数:8
Struts的原理和优点.Struts工作原理MVC即Model—View—Controller的缩写,是一种常用的设计模式。
MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
MVC的工作原理,如下图1所示:Struts 是MVC的一种实现,它将Servlet和JSP 标记(属于J2EE 规范)用作实现的一部分。
Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展.Struts的工作原理,视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。
ActionServlet是一个通用的控制组件。
这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。
它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。
另外控制组件也负责用相应的请求参数填充Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。
动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。
最后动作类把控制权传给后续的JSP 文件,后者生成视图。
所有这些控制逻辑利用Struts-config.xml文件来配置。
模型:模型以一个或多个java bean的形式存在。
这些bean分为三类:Action Form、Action、JavaBean or EJB.Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。
Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。
基于Struts Hibernate Spring架构的软件开发摘要:近年来,随着信息技术应用于各行各业,尤其是企业信息化建设的不断发展,构建了基于Web的技术系统之上。
对于当今复杂多变的市场环境,发展壮大信息技术需要考虑他的伸缩性强、扩展性好、重用性高和易维护、易管理的特点,使得Web技术发展成为现当代的热点。
Struts Hibernate Spring三大框架(SSH)主要应用于大型项目。
只有大项目才能体现出SSH的优势。
关键词:Struts Hibernate Spring 构架软件开发随着信息技术的发展需要,构建基于Web的应用系统的需求,从而使Struts Hibernate Spring结构结合,形成对Web的新应用。
1 Struts Hibernate Spring原理概述Struts就是一个MVC模式的框架,它就是将业务代码与视图代码分离,有效地优化系统结构,提高系统的扩展性,降低系统复杂度与维护难度。
Hibernate是一个对象关系数据库映射工具,通过Hibernate的使用,能够很好地解决面向对象编程语言与关系数据库一起使用可能带来的种种麻烦,使得程序设计人员可以减少对关系数据模型的依赖,致力于业务逻辑的开发。
Spring框架的使用将J2EE层次结构中的业务层分离为业务逻辑层和数据持久层,这样业务逻辑便交给Spring处理,而数据访问则交给Hibernate处理,使得层次结构更加清晰。
1.1 StrutsStruts在MVC模块中本原来就是负责将用户数据传入业务层,以及将业务层处理的结果返回给用户,此系统属于较简单Web应用,主要作用在于在用户视图中使用get,set方法来方便地获取关联对象。
1.2 SpringSpring Framework最主要的作用在于与Hibernate的无缝链接,虽然Spring 对Hibernate提供了90%以上的封装,使我们不必去关心Session 的建立,关闭,以及事务使我们能够专心的关注业务逻辑。
1. Struts的工作原理在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。
每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。
2. Struts优点与缺点Struts是开源软件,使开发者能更深入的了解其内部实现机制。
Struts 优点:业界"标准"(很多成功案例),学习资源丰富。
Struts的优点主要集中体现在两个方面:Taglib和页面导航。
a、利用Struts提供的taglib可以大大节约开发时间。
b、维护扩展比较方便。
通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。
c、表现与逻辑分离d、表单验证解决了请求数据的验证问题,增强了系统健壮性。
e、便于团队开发Struts缺点:a、大量的使用标签,对于初学者难度较大。
b、ActionForms使用不便、无法进行单元测试(StrutsTestCase只能用于集成)3. Struts提供了几个标签库?都是什么标签库?Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。
HTML 标签用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单Bean 标签在访问JavaBeans 及其属性,以及定义一个新的bean 时使用Logic 标签管理条件产生的输出和对象集产生的循环Template 标签随着Tiles框架包的出现,此标记已开始减少使用Nested 标签增强对其他的Struts 标签的嵌套使用的能力< Html:form>, < html:submit>, < Html:button>, <Html:text>, <Html:select><logic:iterate>, <logic:forward>, <logic:redirect>, <logic:iterate>, <logic:present>,<logic:empty> ... 参考:struts Logic标签说明<bean:write>, <bean:message>, <bean:parameter>, <bean:size>4. Tiles框架是什么?Tiles框架为创建Web页面提供了一种模板机制,它能将网页的布局和内容分离5.谈谈HashMap和Hashtable的区别。
1.什么是Struts1基于MVC的轻量级,WEB应用框架2.struts1工作原理a> 初始化: struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.b> 发送请求: 用户提交表单或通过URL向WEB服务器提供请求,请求的数据用HTTP协议传给WEB服务器.c> form填充: Struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中d> 派发请求: 控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给Action的excute()方法e> 处理业务: Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象.服务器通过ActionForward对象进行转发工作f> 返回响应: Action将业务处理的不同结果返回一个目标相应对象给总控制器g> 查找响应: 总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面h> 响应用户: 目标响应对象将结果传递给资源对象,将结果展现给用户struts1原理图:3.开发指南准备工作:1>到/下载struts的安装文件struts-1.3.10-all.zip2>解压struts-1.3.10-all.zip3>创建一个web project,并将上步中解压的lib文件下的jar包引进去4>配置web文件5>新建struts-config.xml6>创建数据库(mysql4. 项目开发4.1 页面制作index.jsp4.2 在struts-config.xml中需要修改4.3 创建com.javakc.struts1.action.StudentAction 业务类4.4 创建com.javakc.struts1.action.StudentForm类1)继承org.apache.struts.action.ActionForm类2)属性名要和表单中的属性名一一对应,并生成其对应的getter、setter方法4.5 在StudentAction中处理提交的请求1) 通过form表单或超链接可以将用户的请求提交到服务器进行处理,在系统架构中,服务器处理用户请求的场地就是StudentAction类的execute方法.4.6 在student_info.jsp中展示数据。
struts的工作原理Struts是一个基于Java的开源Web应用程序框架,它遵循了MVC(Model-View-Controller)设计模式,用于简化Web应用程序的开辟过程。
Struts的工作原理涉及到请求的处理、控制流程以及数据流动等方面。
下面将详细介绍Struts的工作原理。
1. 请求处理:当用户在浏览器中输入URL并发送请求时,请求首先到达Web服务器。
Web服务器根据URL的映射规则将请求转发给Struts框架。
2. 控制流程:Struts框架通过一个核心控制器(Controller)来管理请求的处理流程。
核心控制器是一个Servlet,它负责接收请求并将其分发给相应的Action处理。
3. Action处理:Action是Struts框架的核心组件之一,负责处理具体的业务逻辑。
每一个Action对应一个特定的请求,它接收请求参数、执行相应的业务逻辑,并返回结果。
4. 数据流动:在Struts框架中,数据的流动遵循MVC设计模式。
当请求到达Action时,Action会根据请求参数获取所需的数据,并将其存储在一个称为ActionForm的JavaBean中。
5. 视图呈现:视图(View)负责将处理结果展示给用户。
在Struts框架中,通常使用JSP (JavaServer Pages)作为视图技术。
Action会将处理结果传递给JSP,然后JSP负责将结果呈现给用户。
6. 结果返回:在Action处理完成后,它会返回一个结果对象给核心控制器。
结果对象包含了下一步要执行的操作,比如跳转到另一个页面或者返回错误信息。
7. 响应生成:核心控制器根据结果对象中的指示,生成相应的响应并返回给Web服务器。
Web服务器将响应发送给浏览器,最终用户可以看到处理结果。
总结:Struts框架的工作原理可以概括为:用户发送请求到Web服务器,Web服务器将请求转发给Struts框架的核心控制器,核心控制器将请求分发给相应的Action进行处理,Action处理完成后将结果返回给核心控制器,核心控制器根据结果生成响应并返回给Web服务器,最终用户可以看到处理结果。
struts1工作原理Struts1工作原理1. 什么是Struts1Struts1是一个开源的Java Web应用框架,用于开发MVC (Model-View-Controller)模式的Web应用程序。
它提供了一种结构化的方式来组织、管理和处理Web应用程序的请求和响应。
2. MVC模式简介什么是MVC模式MVC模式是一种软件设计模式,用于将一个应用程序的逻辑分为三个独立的部分:模型(Model)、视图(View)和控制器(Controller)。
每个部分都有不同的职责,有助于实现应用程序的解耦和可重用性。
MVC模式在Struts1中的应用在Struts1中,模型(Model)负责处理业务逻辑和数据,视图(View)负责表示用户界面,而控制器(Controller)负责协调模型和视图之间的交互。
3. Struts1的工作原理Struts1的工作原理可以分为以下几个步骤:配置Struts1环境首先,需要在Web应用程序的配置文件中配置Struts1环境。
通常使用一个名为``的文件来定义应用程序的相关设置,例如控制器的映射和配置文件路径等。
客户端发送请求当客户端发送一个请求时,请求会被发送到Web服务器。
通常,请求的URL中会包含一个特定的后缀,用于指示该请求需要由Struts1来处理。
Struts1的Front Controller接收请求Struts1的Front Controller是一个核心组件,它负责接收所有的请求。
当一个请求到达时,Front Controller会根据配置文件中的映射规则,将请求路由到相应的Action。
Action处理请求一旦请求被路由到相应的Action,Action就会开始处理该请求。
它会根据请求的参数和业务逻辑的需要,执行相应的操作。
例如,从数据库中获取数据、处理用户输入、调用其他模块等。
Action返回结果一旦Action完成了请求的处理,它会生成一个结果对象并将其返回给Struts1的Front Controller。
struts2漏洞原理
Struts2是一种基于Java的开源Web应用框架,它可以帮助开发者快速开发和部署复杂的Web应用程序。
然而,由于Struts2存在一些严重的安全缺陷,攻击者可以利用这些漏洞实施各种攻击,包括远程执行代码、SQL注入和命令注入等。
其中,Struts2远程执行代码漏洞是最为臭名昭著的漏洞之一,该漏洞存在于struts2框架的核心代码里,并且可以通过网络访问执行任意代码,从而导致服务器被完全控制。
攻击者通常通过构造恶意的请求来利用这个漏洞,例如在HTTP请求的头部或参数中插入特殊的代码片段,从而触发struts2的漏洞。
攻击者可以利用这个漏洞执行任意代码,包括删除文件、修改数据、窃取数据等操作。
其原因是,Struts2应用程序在接收到HTTP请求时,会将请求参数转换成Java 对象,并使用一种名为OGNL(Object-Graph Navigation Language)的表达式语言来解析这些对象。
攻击者可以在HTTP请求中注入恶意的OGNL表达式,使其在服务器上执行任意代码。
此外,Struts2还存在一些其他的安全漏洞,包括文件读取漏洞、XSS漏洞和跨站请求伪造(CSRF)漏洞等。
这些漏洞可以通过错误的配置、不安全的代码实现和其他不当的安全实践而导致。
因此,为保障应用程序的安全稳定运行,使用
Struts2开发Web应用程序的开发者需要注意代码的安全性和其他防御性措施的实现。
struts框架详细介绍Struts是一个开源的Java Web应用程序开发框架,可以帮助开发者构建可扩展的、高性能的Web应用程序。
它遵循了Model-View-Controller(MVC)设计模式,通过将业务逻辑、表示逻辑和用户交互进行分离,使得应用程序更易于开发、测试和维护。
下面是关于Struts框架的详细介绍。
1.MVC设计模式:Struts采用了MVC设计模式,将应用程序的不同组成部分进行分离。
- Model层负责处理数据和业务逻辑。
在Struts中,开发者可以使用JavaBean、EJB、Hibernate等技术作为Model层的实现。
- View层负责展示数据和用户界面。
Struts提供了JSP(JavaServer Pages)作为主要的View技术,也可以使用Velocity、Freemarker等模板引擎。
- Controller层负责接收用户请求、处理业务逻辑以及将结果返回给View层。
Struts的Controller层使用ActionServlet来处理请求,它根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
2.核心组件:Struts由以下几个核心组件组成:- ActionServlet:负责接收和处理来自客户端的请求,并根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
- Action类:实现了业务逻辑的处理,接收请求和返回结果。
开发者需要继承Action类,并覆写其中的execute(方法来实现自定义的业务逻辑。
- ActionForm:用于封装请求参数并传递给Action类进行处理。
ActionForm可以与表单元素进行绑定,从而方便地获取和验证用户输入。
- ActionMapping:配置文件中的一项规则,用于将请求URL映射到具体的Action类和方法。
- ActionForward:配置文件中的一项规则,用于指定请求处理完成后需要跳转到的页面。
Struts教程本教程将介绍Struts的基本概念和核心组件,以及如何使用Struts开发Web应用程序。
一、Struts概述1. 模型(Model):模型表示应用程序的数据和业务逻辑。
在Struts中,模型通常由Java类组成,用于处理数据操作和业务逻辑的实现。
2. 视图(View):视图是用户界面的呈现,通常是JSP(JavaServer Pages)文件。
它负责将数据呈现给用户,并处理用户输入。
3. 控制器(Controller):控制器负责处理用户请求,并将其分派给适当的模型和视图。
在Struts中,控制器由Action类实现,它根据请求的URL路径和参数执行相应的业务逻辑。
二、Struts的基本原理1.客户端发送HTTP请求到服务器。
2. 服务器的Servlet容器接收到请求,并将其分派给Struts的ActionServlet。
3. ActionServlet根据请求的URL路径找到相应的Action类。
4. Action类执行业务逻辑,并将业务结果存储在模型中。
5. Action类调用适当的视图呈现模型数据。
6.视图生成HTML页面并将其返回给客户端。
三、Struts的核心组件1. Action:Action是一个Java类,用于处理用户请求和执行业务逻辑。
它包含了不同的方法,如初始化、数据校验和处理逻辑等。
2. ActionForm:ActionForm是一个JavaBean,用于封装和验证用户输入的数据。
它通常与JSP页面的表单相对应,并且可以通过XML配置文件进行验证。
3. ActionMapping:ActionMapping用于将URL路径和参数映射到正确的Action类。
通过配置XML文件,开发人员可以指定不同URL路径的映射关系。
4. ActionServlet:ActionServlet是整个框架的核心控制器,负责接收客户端请求并将其分派给正确的Action类。
5. Struts配置文件:Struts配置文件是一个XML文件,用于配置整个应用程序的所有映射关系和其他设置。
Struts原理、开发及项目实施Holen 2002-9-121、摘要2、关键词3、Framework4、Struts的起源5、Struts工作原理6、Struts安装7、一个实例8、Struts优缺点9、Struts项目实施经验10、总结11、参考文献1、摘要本文主要讲述了Struts(以Struts1.0.2为例)的工作原理,安装以及配置方面的问题。
然后结合一个实例,详细讨论了Struts在实际开发过程中的应用,最后提供一些在开发过程中积累的经验,供大家参考。
2、关键词Struts、MVC、J2EE、Tiles、Framework3、FrameworkFramework即架构(框架),这里指软件的架构方式,为什么要提Framework呢?请允许我从J2EE讲起。
J2EE体系包括JSP、Servlet、EJB、WEB SERVICE等多项技术。
这些技术的出现给电子商务时代的WEB应用开发提供了一个非常有竞争力的选择。
怎样把这些技术组合起来,形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的步骤。
此步骤一般主要由架构设计师完成,设计师将根据项目需求,对J2EE体系中的各处技术进行筛选取舍,并考虑到开发过程中的角色分工、后期的运行维护,以及系统扩展性等诸多因素,建立系统的架构。
一个成功的软件需要有一个成功的架构,但软件架构的建立是一个复杂而又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而总是尽量重用以前的架构,或开发出尽量通用的架构方案,Struts就是其中之一,Struts是流行的基于J2EE的架构方案,其他常用的基于J2EE的架构方案还有Turbine、RealMothods等。
4、Struts的起源Struts最早是作为Apache Jakarta项目的组成部分问世运做。
项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术水准。
当前最高发行版本为Struts1.0.2,可以到/Struts下载。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
它的目的是为了帮助你减少在运用MVC设计模型来开发Web应用的时间。
你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
5、Struts工作原理MVC即Model-View-Controller的缩写,是一种常用的设计模式。
MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
MVC的工作原理,如下图1所示:图1Struts 是MVC的一种实现,它将Servlet和JSP标记(属于J2EE 规范)用作实现的一部分。
Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。
Struts 的工作原理,如下图2所示:图2控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。
ActionServlet是一个通用的控制组件。
这个控制组件提供了处理所有发送到Struts的HTTP 请求的入口点。
它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。
另外控制组件也负责用相应的请求参数填充Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。
动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。
最后动作类把控制权传给后续的JSP 文件,后者生成视图。
所有这些控制逻辑利用Struts-config.xml文件来配置。
视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP标签库:Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。
模型:模型以一个或多个java bean的形式存在。
这些bean分为三类:Action Form、Action、JavaBean or EJB。
Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。
Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB 等。
流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。
每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。
核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。
这在后面还会详细讨论。
6、Struts安装Struts的安装比较简单,下面的以Tomcat 4.0.4为例,讲述安装过程。
首先请到/Struts下载Struts,建议使用release版,现在最高版本为1.0.2,下载后得到的是一个ZIP文件。
将ZIP包解开,可以看到这个目录:lib和webapps,webapps下有一些W AR文件。
假设你的Tomcat装在c:\Tomcat下,则将那些W AR文件拷贝到C:\Tomcat\webapps,重新启动Tomcat即可。
打开浏览器,在地址栏中输入:http://localhost:8080/Struts-example/index.jsp,若能见到“powered by Struts”的深蓝色图标,即说明成功了。
这是Struts自带的一个例子,附有详细的说明文档,可以做为初学者的入门教程。
另外,Struts还提供了一系统实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息等。
7、一个实例一个用户注册系统,用户通过网页输入相关信息:注册ID号,密码,EMAIL,若注册成功,则返回成功提示信息,反之出现注册失败提示信息。
以下是相关文件的部分核心代码。
项目建立:正式开发前,需要在Tocmat(我的tomcat装在c:\tomcat)中建立此项目。
比较快的一种建立方式为:在C:\tomcat\webapps下新建目录test,再将C:\tomcat\webapps\struts-example下的WEB-INF目录拷贝到test目录下,然后将test\WEB-INF下的src和classes目录清空,以及struts-config.xml文件中内容清空即可。
这样,我们需要的Struts类包及相关的配置文件就都齐了。
开发时,将JSP文件放在test目录下,Java原文件放在test\WEB-INF\src下,编译后的类文件放在test\WEB-INF\classes下。
注册页面:reguser.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib uri="/WEB-INF/Struts-bean.tld" prefix="bean" %><%@ taglib uri="/WEB-INF/Struts-html.tld" prefix="html" %><html:html locale="true"><head><title>RegUser</title><html:base/></head><body bgcolor="white"><html:errors/><html:form action="/regUserAction" focus="logname"><table border="0" width="100%"><tr><th align="right">Logname:</th><td align="left"><html:text property="logname" size="20" maxlength="20"/></td></tr><tr><th align="right">Password:</th><td align="left"><html:password property="password" size="20" maxlength="20"/></td></tr><tr><th align="right">E-mail:</th><td align="left"><html:password property="email" size="30" maxlength="50"/></td></tr><tr><td align="right"><html:submit property="submit" value="Submit"/></td><td align="left"><html:reset/></td></tr></table></html:form></body></html:html>此JSP页面不同于普通的JSP页,因为它大量运用了taglib,这些taglib对初学者而言,可能难于掌握,可这却是Struts的精华之一。