struts2和struts1认识

struts2和struts1认识

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

1.Struts 2基本流程

Struts 2框架本身可以大致分3部分:核心控制器FilterDispatcher、业务总监Action与用户实现企业业务逻辑组件。

核心控制器FilterDispatcher是Struts 2框架的基础。包括了框架内部的控制流程和处理机制。业务控制器Action和业务逻辑组件是须要用户来自己实现的。用户在开发Action和业务逻辑组件的同一时候,还须要编写相关的配置文件,供核心控制器FilterDispatcher来使用。 Struts 2的工作流程相对于Struts 1要简单,与WebWork框架基本同样,所以说Struts 2是WebWork的升级版本号。

基本简要流程例如以下:

1、client浏览器发出HTTP请求。

2、依据web.xml配置,该请求被FilterDispatcher接收。

3、依据struts.xml配置。找到须要调用的Action类和方法,并通过IoC方式。将值注入给Aciton。

4、Action调用业务逻辑组件处理业务逻辑,这一步包括表单验证。

5、Action运行完成,依据struts.xml中的配置找到相应的返回结果result,并跳转到相应页面。

6、返回HTTP响应到client浏览器。

 

2.核心控制器:FilterDispatcher

 FilterDispatcher是Struts 2框架的核心控制器。该控制器作为一个Filter执行在Web应用中,它负责拦截全部的用户请求。当用户请求到达时,该Filter会过滤用户请求。

假设用户请求以action结尾,该请求将被转入Struts 2框架处理。

Struts 2框架获得了*.action请求后,将依据*.action请求的前面部分决定调用哪个业务逻辑组件,比如。对于login.action请求。Struts 2调用名为login的Action来处理该请求。

 Struts 2应用中的Action都被定义在struts.xml文件里。在该文件里定义Action时,定义了该Action的name属性和class属性。当中name属性决定了该Action处理哪个用户请求,而class属性决定了该Action的实现类。

 Struts 2用于处理用户请求的Action实例,并非用户实现的业务控制器。而是Action代理——由于用户实现的业务控制器并没有与Servlet API耦合,显然无法处理用户请求。

而Struts 2框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求參数解析出来,传入到Action中,并回调Action 的execute方法来处理用户请求。

 显然。上面的处理过程是典型的AOP(面向切面编程)处理方式。

用户实现的Action类不过Struts 2的Action代理的代理目标。

用户实现的业务控制器(Action)则包括了对用户请求的处理。用户的请求数据包括在 HttpServletRequest对象里,而用户的Action类无需訪问HttpServletRequest对象。

拦截器负责将 HttpServletRequest里的请求数据解析出来。并传给业务逻辑组件Action实例。

3.业务控制器

  业务控制器组件就是用户实现Action类的实例。Action类里通常包括了一个execute方法,该方法返回一个字符串——该字符串就是一个逻辑视图名。当业务控制器处理完用户请求后,依据处理结果不同。execute方法返回不同字符串   ——每一个字符串相应一个视图名。

 程序猿开发出系统所须要的业务控制器后,还须要配置Struts 2的Action。即须要配置Action的例如以下三个部分定义:

 —  Action所处理的URL。

 —  Action组件所相应的实现类。

 —  Action里包括的逻辑视图和物理资源之间的相应关系。

 每一个Action都要处理一个用户请求。而用户请求总是包括了指定URL。当Filter Dispatcher拦截到用户请求后,依据请求的URL和Action处理URL之间的相应关系来处理转发。

4.Struts 2的模型组件

  实际上,模型组件已经超出了MVC框架的覆盖范围。

对于Struts2框架而言,通常没有为模型组件的实现提供太多的帮助。

 通常指系统的业务逻辑组件。而隐藏在系统的业务逻辑组件以下的,可能还包括了DAO、领域对象等组件。

 通常,MVC框架里的业务控制器会调用模型组件的方法来处理用户请求。

也就是说。业务逻辑控制器不会对用户请求进行不论什么实际处理。用户请求终于由模型组件负责处理。业务控制器仅仅是中间负责调度的调度器。这也是称Action为控制器的原因。

 当控制器须要获得业务逻辑组件实例时。通常并不会直接获取业务逻辑组件实例。而是通过工厂模式来获得业务逻辑组件的实例。或者利用其它IoC容器(如Spring容器)来管理业务逻辑组件的实例。

5.Struts 2的视图组件

 Struts 2已经改变了Struts 1仅仅能使用JSP作为视图技术的现状,Struts 2同意使用其它的模板技术,如FreeMarker、Velocity作为视图技术。

 当Struts 2的控制器返回逻辑视图名时。逻辑视图并未与不论什么的视图技术关联,不过返回一个字符串。该字符串作为逻辑视图名。

 当我们在struts.xml文件里配置 Action时。不仅须要指定Action的name属性和class属性,还要为Action元素指定系列result子元素,每一个result子元素定义一个逻辑视图和物理视图之间的映射。前面所介绍的应用都使用了JSP技术作为视图。故配置result子元素时没有指定type属性。默认使用JSP 作为视图资源。

假设须要在Struts 2中使用其它视图技术,则能够在配置result子元素时,指定对应的type属性就可以。

比如,假设须要使用FreeMarker,则为result指定值为freemarker的type属性;假设想使用Velocity模板技术作为视图资源。则为result指定值为velocity的type属性……

6.Struts 2的执行流程

  经过上面介绍。我们发现Struts2框架的执行流程很类似于WebWork框架的流程。

 提示  在Struts 2的官方网站,我们能够找到例如以下说法:Essentially,Struts 2.0 is the technical equivalent of WebWork 2.3。Aside fromthe package and property renaming。it isn’t much different than,say,migratingfrom WebWork 2.1 to 2.2——意思是说:Struts 2.0技术等同于WebWork 2.3框架,除了包和属性被改名外。从WebWork 2.2迁移到Struts 2不会比从WebWork 2.1迁移到WebWork 2.2更复杂。

 这里我们能够看到,Struts 2事实上就是WebWork 2.2的升级版。这也就不难理解:为什么WebWork和Struts 2如此相似!

 Struts Struts仅仅是一个MVC框架(Framework),用于高速开发JavaWeb应用。Struts实现的重点在C(Controller)。包含ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(CustomTag)。但Struts差点儿没有涉及M(Model),所以Struts能够採用JAVA实现的不论什么形式的商业逻辑。 Spring Spring是一个轻型容器(light-weight container)。其核心是Bean工厂(BeanFactory)。用以构造我们所须要的M(Model)。在此基础之上,

Spring提供了AOP(Aspect-OrientedProgramming, 面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务。对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web提供了Java Web应用的框架或与其它流行的Web框架进行集成。就是说可将两者一起使用,达到将两者自身的特点进行互补。

Hibernate Hibernate是一个免费的开源Java包,它使得与关系数据库

打交道变得十分轻松。就像您的数据库中包括每天使用的普通Java对象一样,同一时候不必考虑怎样把它们从神奇的数据库表中取出(或放回到数据库表中)。

它解放了您。使您能够专注于应用程序的对象和功能,而不必操心怎样保存它们或稍后怎样找到它们。 EJB 一个技术规范:EJB 从技术上而言不是一种”产品” EJB 是一种标准描写叙述了构建应用组件要解决的: 可扩展 (Scalable) 分布式 (Distributed) 事务处理 (Transactional) 数据存储 (Persistent) 安全性 (Secure) ANT -. Ant简单介绍

 Ant是一个类似make的工具,用来编译/执行/測试java程序。 构建、包装和公布过程中差点儿每一件事都能够由Ant的任务来处理. 二.Ant的安装及配置 你能够从Jakata站点下载预编译的ANT,解压至任一文件夹; 设置自己的环境变量。即ANT_HOME,指向解压文件夹; 设置JAVA_HOME环境变量,指向jdk的根文件夹; 三:用ant管理项目 Ant一启动就会自己主动地载入一个叫做Build.xml的项目配置文件。假设想给这个项目配置文件取别的名字。你能够使用buildfile标记来执行ant,就像以下这样: ant -buildfile Project_configuration.xml 主要特点: 使用xml文件作为配置文件,即build.xml; 可与junit作无缝整合,达到系统測试、编译到公布的功能。 强大、具体的报表功能; 控制灵活。可自己定义要运行的任务组合。

 

7 struts2实现MVC

Struts採用jsp作为MVC的视图,由ActionServlet详细指定的action动作类作为控制器即MVC中的C,负责视图与模型之间的交互。控制器的每一个入口点都由名为struts-config.xml的配置文件设置。该文件把来自视图的请求映射为特定的JAVA类以进行对应的处理。控制器还指定下一个视图的位置。

Struts中的模型主要指的就是javabean。它是模型的代表,主要封装数据和业务逻辑。

8 Struts1的处理流程:

控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModuleConfig对象。控制器接收Http请求,并从ActionConfig中找出相应于该请求的Action子类,假设没有相应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至详细的Action类进行处理。在控制器调用详细的Action的Execute方法之前,ActionForm对象将利用Http请求中的參数来填充自已。还能够在 ActionForm类中调用Validate方法来检查请求參数的合法性。而且能够返回一个包括全部错误信息的ActionErrors对象。运行详细的的Execute的方法。它负责运行相应的业务逻辑。

运行完后。返回一个ActionForward对象,控制器通过该 ActionForward对象来进行转发工作。也能够把Action要处理的业务逻辑封装在JavaBean中,假设系统中还有EJB,那么通过 JavaBean调用EJB以完毕业务处理。假设没有EJB,那么就直接在JavaBean数据库连接,数据库相关的操作。

 

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117425.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月6日 上午6:00
下一篇 2022年1月6日 上午7:00


相关推荐

  • golang int转string

    golang int转stringstrconv Itoa i i 为 int 类型

    2026年3月26日
    1
  • Hmily 源码解析 (三) —— himly事务上下文

    Hmily 源码解析 (三) —— himly事务上下文目录1.HmilyTransactionContexthimly事务上下文,在一个线程内只有唯一实例。在线程内时不时的需要获取事务的id及角色状态等信息。如果作为参数在函数中传递并不合适,并且由于切面,拦截器等等编程方式也无法依靠该方式获取所需要的信息。hmily采用的方式是将所需要的信息封装为一个实体,这个实体就是HmilyTransactionContext。并将HmilyTr…

    2022年5月21日
    42
  • IIS服务器更改操作系统用户密码

    IIS服务器更改操作系统用户密码分析 出于系统安全的考虑 医院往往会在一定的时候后对服务器密码进行更换 以保障数据安全 但是 IIS 应用服务器在配置的时候会涉及到系统用户的验证 所以在修改的时候会稍微复杂一些 下面以 windowsserve 操作系统下的移动临床服务器为例第一步 修改操作系统管理员密码 正常的操作步骤 开始菜单 gt 控制面板 gt 用户账户 更改 windows 密码 选

    2026年3月26日
    2
  • 气质如兰 一代才女林徽因

    气质如兰 一代才女林徽因在民国时期的著名才女中 林徽因的才艺似乎比萧红和张爱玲等显得更全面一些 人生际遇也更幸运 她不仅最早加入了 新月社 在诗歌 小说 散文 戏剧 绘画 翻译等方面成就斐然 还致力于建筑专业 成为我国第一位女性建筑学家 被胡适誉为 中国一代才女 她几乎标志丁一个时代的颜色 出众的才 倾城的貌 情感生活也像一个春天的童话 幸福而浪漫 nbsp nbsp nbsp 气质如兰的多才少女 nbsp nbsp nbsp nbsp 林徽因 1904 年 6 月 1

    2026年3月18日
    3
  • File i/o3

    File i/o3

    2022年3月3日
    40
  • Redhat的yum配置步骤

    Redhat的yum配置步骤Redhat的yum配置RedhatLinux是免费的操作系统,但是里面的yum服务是收费的,有的时候我们安装软件必须从yum上面安装。虽然Redhat的yum是收费的,但我们可以使用CentOS

    2022年7月4日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号