Servlet和Struts2有什么区别,为什么要用他们,什么时候用? 5

 我来答
百度网友5ba75e4
2016-01-04 · TA获得超过2045个赞
知道大有可为答主
回答量:1775
采纳率:60%
帮助的人:962万
展开全部
Servlet是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Struts2是控制层框架,Struts2这个东西很多人认为是struts的升级版,但其实他合Struts没多大关系,仅仅只是使用方法类似,内部架构原理完全不同。但两者都是基于Serlvet的,但struts对Servlet API(注意是API)依赖程度很高不利于调试,struts2并不依赖Servlet API,更多的是其本身的API,有利于调试。

为什么用这些,很大一部分情况是不会写这类的抽象型面向协议的应用框架,另一些能写的大牛是因为这项技术在这些框架里已经体现的很成熟,并且通过一代一代版本的积累对已知漏洞的修补,已知攻击方式的防御都已经达到一定高度,并不是随手写一个能够代替的。最后万事没有绝对,struts2在爆出严重的提权漏洞后就慢慢的被spring mvc占领了市场。

至于什么时候用,这个不好说,合适的需求,合适的环境用合适的框架。
陪你丶看日落
2015-11-23 · TA获得超过668个赞
知道小有建树答主
回答量:436
采纳率:46%
帮助的人:91.1万
展开全部
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以将响应呈现给客户。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来啦安安
2015-12-11 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:39.9万
展开全部
Servlet也是在Web容器中运行的,Servlet的生命周期容器启动的时候,会加载servlet的class,并new出这个对象,然后,当用户请求这个servlet的时候,容器会调用init方法初始化这个 servlet,这也是整个生命周期中只会调用一次的方法,然后,会调用service方法,由这个方法调用doGet或
doPost方法来响应用户,然后,容器在可用资源紧张或是长期没有对Servlet发出
请求的情况下,会销毁这个servlet。

struts2是一个基于MVC模式的一个框架,分别是表示层(view)、控制层(controller)、和模型层(Model)。其表示层使用Struts标签库构建。来自客户的所有需要通过框架的请求统一由叫ActionServlet的servlet接收(ActionServlet Struts已经为我们写好了,只要您应用没有什么特别的要求,它基本上都能满足您的要求),根据接收的请求参数和Struts配置(struts-config.xml)中ActionMapping,将请求送给合适的Action去处理,解决由谁做的问题,它们共同构成Struts的控制器。Action则是Struts应用中真正干活的组件,开发人员一般都要在这里耗费大量的时间,它解决的是做什么的问题,它通过调用需要的业务组件(模型)来完成应用的业务,业务组件解决的是如何做的问题,并将执行的结果返回一个代表所需的描绘响应的JSP(或Action)的ActionForward对象给ActionServlet以将响应呈现给客户。

servlet是j2ee的基础,struts2是基于它的框架,什么是框架:就是为了方便开发,提供了一些高层的功能,比如说输入验证啥的,隐藏了底层很复杂的实现
以前没有框架的时候用的是servlet,然后开发比较复杂的系统,并且有可重用的功能时,就有了框架,现在开发一般都用框架,但学习servlet会更好理解框架的
j2ee的框架有很多的,不止struts2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
comil4444
2015-11-13 · TA获得超过113个赞
知道答主
回答量:101
采纳率:100%
帮助的人:39.7万
展开全部
个人认为Struts2是对于servlet的封装;
在MVC结构中,Struts2扮演的是VC的角色;通过指定action以及modelandview来进行类似于servlet的操作,通过OGNL表达式来进行前台数据交互显示;
个人感觉Struct2+OGNL表达式可能在效率上会比单纯的servlet差一点;
望大神指点;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
awydss
2015-12-27 · TA获得超过274个赞
知道小有建树答主
回答量:560
采纳率:0%
帮助的人:303万
展开全部
Servlet是Jsp技术的核心
Struts2是对Servlet等JSP核心的一些封装。比直接使用Servlet好些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式