×

struts1工作原理

struts1工作原理(Struts1的工作原理)

admin admin 发表于2023-02-10 20:34:20 浏览43 评论0

抢沙发发表评论

本文目录

Struts1的工作原理


客户端发送请求(Http Request),被struts1的核心控件器ActionServlet接收,ActionServlet根据struts-config.xml里的映射关系找到对就的Action,若找不到就返回500错误到JSP页面。若有就Action里的 excute()方法里执行相应的逻辑操作,比如调用Model层的方法,然后通过ActionForward,跳转到对应的输出页面

sturts2的原理是什么,和struts1有什么不同请说的简明易懂一点语言尽量跟下文差不多易懂


struts1多了actionform,struts2只有action。
对于struts2,:①jsp页面----》②struts.xml------》 ③action类
①action类----》②struts.xml------》③jsp页面
1.jsp页面中form表单《from action=“xxx“》中的内容提交,
2.struts.xml中的action 《action name=“xxx“ class=“oooAction.class“ method=“oooAction.class中的方法()“》
3.oooAction.class这个类得到提交的内容。(这个类的方法()处理一些逻辑,返回String 类型,如“success” “error”),这个String被传到struts2,.xml 《action》《result name=“success“》/success.jsp,就带内容跳到success.jsp页面了。
通俗的说struts2是这么工作的。至于为什么会按照这个流程走,是struts2自己控制的,其间涉及到拦截器。等你先会用了在了解不迟。

struts框架的设计原理是什么


Struts是MVC的一种实现,它很好地结合了jsp、Java
Servlet、Java
Bean等技术,工作原理如下。1.控制在Struts中,ActionServlet起着一个控制层(controller)的作用。ActionServlet是一个通用的控制组件,这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点,它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也可以负责用相应的请求参数填充ActionForm(通常称为FormBean),并传给动作类(通常称为ActionBean)。动作类实现核心商业逻辑,它可以访问Java
bean或EJB。所有这些控制逻辑利用Strut-config.xml文件来配置。2.视图主要是由jsp来控制页面输出。它接收到Action
Form中的数据,利用html、taglib、bean、logic等显示数据。3.样式在Struts中,主要存在3种bean,分别是:Action、ActionForm\EJB\或者Java
Bean。ActionForm用来封装客户请求信息,Action取得ActionForm中的数据,再由EJB或者Java
Bean进行处理。样式图如图3.3所示。4.Struts框架的工作机制ActionServlet将request转发给RequestProcessor类进行处理。RequestProcessor类根据提交过来的url,如*.do,从ActionMapping类中得到相对应的ActionForm类和Action类。然后将request的参数对应到ActionForm类中,进行validate()验证。如果验证成功,则调用Action的perform()方法来执行Action,最终返回到ActionFoward类。如果验证失败,则调用ActionErrors类。
一句两句也说不清楚,我这边有本关于struts电子书,你邮箱留一下我发给你吧

Struts运行原理


处理过程由5个基本步骤组成:
(1)由客户端浏览器产生一个请求。
(2)请求被ActionServlet(控制器)接收后,ActionServlet在web.xml文件中找到《url-pattern》为.do
的《servlet-mapping》。然后,ActionServlet调用服务,将客户端浏览器提交的表单数据存放到
ActionForm中;并在struts-config.xml文件中找到对应的Action,将处理过程交给Action。
(3)Action执行相应的业务逻辑。它首先创建一个业务处理实例,并接收所有要处理的数据,然后调用
函数execute()来实现业务逻辑。最后,把处理的结果通过mapping.findForward()函数返回给
ActionServlet
(4)ActionServlet接收到Action处理的结果后,在struts-config.xml文件的《action-mapping》中找到
相应的名字和处理路径,选择调用哪一个处理视图来显示Action的处理结果。
《5》当ActionServlet把Action的处理结果传送到指定的视图中,所有的请求个处理过程就完成了。
简单来说,上述过程可以概括如下:
一个请求提交给ActionServlet,ActionServlet会寻找相应的Form和Action。首先将提交的
request对象映射到Form中,然后将Form传递给Action进行处理。Action得到Form后,按照XML文件(包
括web.xml和struts-config.xml)中的mapping,找到对应的处理Action;Action调用execute()方法进
行处理,然后返回一个forward-url(相应视图)给ActionServlet,ActionServlet将处理结果通过相应
的视图返回给客户端。
Struts是appache开发的一开源的mvc实现框架。mvc由三部分组成,分别为l。 model主要用来处理业务
逻辑,主
model-view-crotrl。
model主要用来处理业务逻辑,主要用JaveBean,Ejb实现。
view主要用来jsp来实现,作用是提交表单,接受返回参数。 Struts是appache开发的一开
crotro主要用来逻辑判断,用servlet实现。
Struts运行原理:分别为 model-view-crotr
1.首先由用户提交请求到*.do
2.如果有必要则用actionForm封装数据
3.然后交给Servlet,由Servlet读取相应actionForm和action类分别为 model-view-crotr
4.如果有必要,则先由actionForm验证数据的有效性。如果有误,则跑到错误页中。
5.如果数据验证通过,则把actionForm交由action类进行验证。
6.根据action返回的结果,传递给servlet.源的mvc实现框架。mvc由三部分组成,
7.servlet根据配置文件,跳转到相应的视图层。
8.视图层呈现给用户结果。

struts1与struts2的区别


先说一下struts2的工作流程:
核心控制器FilterDispatcher是Struts 2框架的基础,包含了框架内部的控制流程和处理机制。
业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件
的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本相同,所以说Struts 2是
WebWork的升级版本。Struts 2框架按照模块来划分,可以分为Servlet Filters、Struts核心模
块、拦截器和用户实现部分。Struts 2框架结构图如图3.1所示。
一个请求在Struts 2框架中的处理大概分为以下几个步骤。
客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入

Struts1的底层用什么实现的


struts原理其实就是一个Servlet,只不过有一个中央处理器在配置文件里面,
客户端的请求先通过web.xml配置文件里面 找到ActionServlet来处理,ActionServlet会根据你的请求来分配具体的Action来处理你,处理完了以后,然后转发页面,显示数据,就这一系列操作。

Struts1和struts2及servlet的区别


struts1和struts2都是基于MVC的开源框架,不过从配置都实现都是完全不同的两个框架。
struts1是在01年左右发布的,一出来就很受欢迎,经过很长时间的发展,有很好的稳定性,现在企业中都还有很多企业在用;缺点就是它实在是太老了,对后来发展的其他框架比如spring,freemarker的支持都不太好。
struts2则是集合了webwork和struts1的优点的核心为webwork的开源框架,它有自己的AOP库,同其他的框架可以很好的兼容。学过struts1的人都知道,struts1是直接依赖于servlet的API的,这样导致了类之间耦合度过高,需要修改的时候甚至会牵扯到视图层,这个是struts2比struts1明显要好的地方。
至于servlet呢,是J2EE的核心技术的一部分,struts1、struts2什么的都是以它为基础的。简单的说,它是服务器端负责处理客户端发送过来的请求并产生回应的一个控制器。如果你有心向J2EE发展,servlet的知识是一定要掌握的。至于其余的什么框架,只要清楚原理,要入门都很简单。

struts的工作原理是什么


  Struts2工作流程:

  1.客户端(Client)向Action发用一个请求(Request)

  2.Container通过web.xml映射请求,并获得控制器(Controller)的名字

  3.容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter

  4. 控制器(Controller)通过ActionMapper获得Action的信息

  5.控制器(Controller)调用ActionProxy

  6.ActionProxy读取struts.xml文件获取action和interceptor stack的信息。

  7.ActionProxy把request请求传递给ActionInvocation

  8.ActionInvocation依次调用action和interceptor

  9. 根据action的配置信息,产生result

  10.Result信息返回给ActionInvocation

  11.产生一个HttpServletResponse响应

  12.产生的响应行为发送给客服端。


struts1和struts2和springMVC的区别和介绍


struts1
Struts1 工作流程
1 ActionServlet接收由浏览器发出的请求后,检索和请求匹配的ActionMapping对象。如果不存在,返回请求无效的信息。
2 检索和请求匹配的ActionForm对象。如果不存在,就创建一个。把提交的表单中的数据保存在ActionForm对象中
3 根据配置信息决定是否进行校验。如果是,就进行校验。如果通过校验,进行下一步
4 ActionServlet根据ActionMapping对象包含的信息决定把请求转发给哪个Action。如果这个Action的对象不存在,就创建一个,然后调用它的excute方法
5 Action的excute方法返回一个ActionForward对象。ActionServlet把请求转发给ActionForward指定的JSP。
6 ActionFoward对象指定的JSP生成动态网页,返回给浏览器
struts2
struts2是webwork升级版,跟struts1没有关系。struts1和servlet耦合度高,各层之间耦合度高,单元测试困难,表示层技术单一,而struts2没有和servlet耦合,更容易测试,支持更多表示层技术。
struts2工作流程
1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求。
2) 这个请求经过一系列的过滤器(Filter)。
3) 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action。
4) 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。
5) ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。
6) ActionProxy创建一个ActionInvocation的实例。
7) ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8) 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。
Struts2的核心就是拦截器。Struts.xml中所有的package都要extends=“struts-default“。同理与所有的Java类都要extends自Object一样。struts-default.xml里面就是要做以上事情。
springmvc
1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。
2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.
3.DispatcherServlet将请求提交到目标Controller
4.Controller进行业务逻辑处理后,会返回一个ModelAndView
5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象
6.视图对象负责渲染返回给客户端。
struts1与struts2的比较
1、struts1要求Action类继承一个抽象基类,而不是接口,struts2继承ActionSupport类或者实现Action接口。
2、struts1是单例模式的,Action资源必须是线程安全的或同步的,会有线程安全问题,struts2为每一个请求都实例化一个对象,不存在线程安全问题。
3、struts1依赖servlet API 因为execute方法的参数有