struts2做控制器相比servlet有什么优点

struts2做控制器相比servlet有什么优点它们都是做MVC中的C控制器,struts2是当前使用比较广泛的一个框架,它有什么优点,相比用servlet做控制器?... struts2做控制器相比servlet有什么优点
它们都是做MVC中的C控制器,struts2是当前使用比较广泛的一个框架,它有什么优点,相比用servlet做控制器?
展开
 我来答
业余收藏人
推荐于2016-03-30 · 知道合伙人软件行家
业余收藏人
知道合伙人软件行家
采纳数:560 获赞数:6516
毕业于西安电子科技大学,计算机科学与技术专业,学士学位。从事软件研发6年,现任中创深圳研发中心架构

向TA提问 私信TA
展开全部
与Servlet相比,Struts的控制器可以不用显式的书写Java代码,而是可以在Struts-Config.xml配置文件中配置相应的Action与URL之间的映射关系以及处理完成后转发给那个JSP来显示处理的结果.

在Struts内部,控制器也是使用一个Servlet来控制转发,这个Servlet叫做ServletAction,但是这个ServletAction的转发规则的定义就映射到了Struts-Config.xml这个结构相对简单的配置文件中,程序员和维护人员可以很容器的定义或修改内部的转发规则.

Servlet也是在Web容器中运行的,Servlet的生命周期容器启动的时候,会加载servlet的class,并new出这个对象,然后,当用户请求这个servlet的时候,容器会调用init方法初始化这个 servlet,这也是整个生命周期中只会调用一次的方法,然后,会调用service方法,由这个方法调用doGet或
doPost方法来响应用户,然后,容器在可用资源紧张或是长期没有对Servlet发出
请求的情况下,会销毁这个servlet。

struts是一个基于MVC模式的一个框架,分别是表示层(view)、控制层(controller)、和模型层(Model)。其表示层使用Struts标签库构建。来自客户的所有需要通过框架的请求统一由叫ActionServlet的servlet接收(ActionServlet Struts已经为我们写好了,只要您应用没有什么特别的要求,它基本上都能满足您的要求),根据接收的请求参数和Struts配置(struts-config.xml)中ActionMapping,将请求送给合适的Action去处理,解决由谁做的问题,它们共同构成Struts的控制器。Action则是Struts应用中真正干活的组件,开发人员一般都要在这里耗费大量的时间,它解决的是做什么的问题,它通过调用需要的业务组件(模型)来完成应用的业务,业务组件解决的是如何做的问题,并将执行的结果返回一个代表所需的描绘响应的JSP(或Action)的ActionForward对象给ActionServlet以将响应呈现给客户。
Hurricane_YM
推荐于2017-11-24
知道答主
回答量:5
采纳率:0%
帮助的人:6.1万
展开全部
与Servlet相比,Struts的控制器可以不用显式的书写Java代码,而是可以在Struts-Config.xml配置文件中配置相应的Action与URL之间的映射关系以及处理完成后转发给那个JSP来显示处理的结果.

在Struts内部,控制器也是使用一个Servlet来控制转发,这个Servlet叫做ServletAction,但是这个ServletAction的转发规则的定义就映射到了Struts-Config.xml这个结构相对简单的配置文件中,程序员和维护人员可以很容器的定义或修改内部的转发规则.

如果使用Servlet来控制转发的话,你就得自己书写相应的Java源代码,这在前期开发的时候显示不出来缺陷,但是后期对整个项目的维护是非常麻烦的,而通过配置文件去控制各个请求的去向的话,后期仅仅按照XML中定义的规则修改这里面的各个标签即可,在内部,Struts自己会通过Java的反射机制来映射到ServletAction中的.然后ServletAction就会按照Struts-Config.xml中定义的规则完成控制任务.
Struts2还有很多优点,比如强大的标签库,表单数据自动填充等.具体需要你看了相应的书籍后才能明白Struts2整个的框架.

建议看看人民邮电出版社的图灵系列书籍,我还是比较偏向国外作者出的书籍,国内书籍感觉同质化太严重了...
希望对你有帮助...
^_^
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jeffsui
推荐于2018-03-12 · TA获得超过606个赞
知道小有建树答主
回答量:737
采纳率:50%
帮助的人:298万
展开全部
楼上的问题问的是struts2 不是struts1
struts2 是基于xwork框架,核心是拦截器。而且加入了很多AOP的思想。
struts2的控制器可以不依赖于web容器(普通类就可以充当),而struts1.x或者servlet必须要依赖于web容器(struts1 核心还是servlet,而servlet必须要引入respone和request对象),相比之下struts2框架更轻量级。
其次struts2 默认就是多线程的,而struts1.x或者servlet的多线程问题一直都是困扰开发的实际问题,相比之下struts2框架在多线程处理方面更有益。
当然就前台的MVC框架而言,各有利弊。
struts2还有很多新特性,需要楼主慢慢去理解。
这只是我个人的一些浅见,仅供参考。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户13680
2011-10-18
知道答主
回答量:29
采纳率:0%
帮助的人:14万
展开全部
struts是封装了servlet,让你用起来更简单,你不用去研究http协议,你操作的数据都是对象,简化了代码。但是正是因为封装,所以你无法触及到底层的东西,比如无法读取inputstream。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
main_inf
2011-10-17 · TA获得超过1575个赞
知道小有建树答主
回答量:811
采纳率:100%
帮助的人:530万
展开全部
不管是struts1还是struts2你可以认为structs只是在servlet的基础上进了一层框架的封装,所谓的mvc的C只是一个抽象的概念(即使在同一个类里面,如servlet用一个方法来表示或实现一个C这也是可以的),只是说servlet它本身是所有要作的事情都写在了doXXX方法里面,然后动态生成页面的。而structs本身也是有一个servlet的,这个就是struts里面的C,然后把其它的工作分到别到的部分来实现。至于优点吧,各有各的说法,不评价。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式