springmvc的优点,springmvc的优点和缺点

http://www.itjxue.com  2023-01-22 11:12  来源:未知  点击次数: 

spring mvc的优点是什么

1、spring3开发效率高于struts;

2、spring3 mvc可以认为已经100%零配置;

3、struts2是类级别的拦截, 一个类对应一个request上下文,springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应。所以说从架构本身上 spring3 mvc就容易实现restful url,而struts2的架构实现起来要费劲。因为struts2 action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了

SpringMVC详解以及面试题/答案

1,说说你对SpringMVC的理解?

Spring MVC 是实现MVC设计模型的轻量级web框架,其核心是model view,controller,把复杂得web应用分层,简化开发

2,SpringMVC执行流程是什么?

(1)用户发送请求发送给前端控制器

(2)前端控制器收到请求调用处理器映射器

(3)处理器映射器找到具体得处理器,生成处理器对象以及处理器拦截器并返回给前端控制器

(4)前端控制器调用处理器适配器

(5)处理器适配器经过适配调用具体得处理器

(6)处理器执行完成并返回结果给前端控制器

(7)前端控制器接受到结果,并讲结果传给视图解析器

(8)视图解析器解析后返回具体得view

(9)前端根据view进行渲染视图,并且响应用户

3,SpringMVC怎样转发和重定向得?

(1)转发

再发回结果加forword

(2)重定向

在返回结果加redirect

4,SpringMVC的优点

(1)可以支持各种视图技术,而不仅仅局限于JSP

(2)与Spring框架集成(如IOC容器,AOP等)

(3)清晰角色分配:前端控制器,请求处理映射器,处理器适配器,视图解析器

(4)支持各种请求资源和映射策略

5,什么是DispatcherServlet

Spring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应。

6,Spring MVC的前端控制器是不是单列模式如果是,有什么问题怎样解决

是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段。

Spring MVC Spring Hibernate较SSH有哪些优点

其实都是ssh只是一个是struts2+spring3.0+hibernate,而另外一个是 springmvc+spring3.0+hibernate,纵向来看比较struts2和springmvc就可以了,

首先说springMvc的优点

1,基于注解,stuts2虽然也有注解但是比较慢,没人用更多的时候是用xml的形式

2,能与spring其它技术整合比如说webflow等,

3,获取request及session对象比较简单,直接当参数值传入就行了,而struts2还需要通过ServletActionContext 对象获取

4,验证也比较简单,通过jsr-303就能实现,而不必写其它的代码,而struts2是通过写 actionName-validation.xml实现的

在说struts2的优点:

1,不必关注客户端是get提交还是set提交,springMvc的地址映射注解method是必须要被关注的

2,自动封装对象,springMvc,是封装在model里的只能在,所以会看到input框的数字类型有0或是0.0的选项

3,自定义结果类型,如xml什么的而springmvc确只能返回modelandView,或是不返回

4,将视图与结果解耦,因为struts2返回的是字符串,只有通过struts.xml才知道具体的是哪一个jsp,或是html,而springMvc只能明确的返回modelAndview

5,struts2 不需要专门的中文过滤器,而springMvc3需要配置

针对标签来说它们大同小异,但是当需要自动装配时 springMnc的form表单是必须使用的,而struts2则不用,其它功能上差不多,但效率上,springMvc的标签比struts2快因为,struts2通过request建立了堆和栈,所以效率上有所下降,我推荐还是用jsp自带标签不仅易于扩展而且,效率也不错

再说应用场景:如果都是成功之后跳一个页面的那两者都可以,而如果是其它的类型,那么struts2是一个不错的选择,举个例子来说Extjs4.0 增加对象自动装配struts2能实现,但springMvc就不行,除非你喜欢大量的request.getParamter()

什么是springmvc框架

Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本发布后,由于支持注解配置,易用性有了大幅度的提高。Spring 3.0更加完善,实现了对Struts 2的超越。现在越来越多的开发团队选择了Spring MVC。

Struts2也是非常优秀的MVC构架,优点非常多比如良好的结构,拦截器的思想,丰富的功能。但这里想说的是缺点,Struts2由于采用了值栈、OGNL表达式、struts2标签库等,会导致应用的性能下降,应避免使用这些功能。而Struts2的多层拦截器、多实例action性能都很好。可以参考我写的一篇关于Spring MVC与Struts2与Servlet比较的文章《Struts2、SpringMVC、Servlet(Jsp)性能对比 测试》

Spring3 MVC的优点:

1、Spring3 MVC使用简单,学习成本低。学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。

2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)

3、Spring3 MVC的灵活是你无法想像的,Spring框架的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。

Struts2的众多优点:

1、老牌的知名框架,从Struts1起积累了大量用户群体。技术文档丰富。

2、其它方面略... (呵呵,是不是不公平?)

Spring的官方下载网址是:

Spring的MVC相比Structs2有什么优点呢?

1:

spring3开发效率高于struts

2:

spring3 mvc可以认为已经100%零配置

3:

struts2是类级别的拦截, 一个类对应一个request上下文,

springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应

所以说从架构本身上 spring3 mvc就容易实现restful url

而struts2的架构实现起来要费劲

因为struts2 action的一个方法可以对应一个url

而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了

4:

spring3mvc的方法之间基本上独立的,独享request response数据

请求数据通过参数获取,处理结果通过ModelMap交回给框架

方法之间不共享变量

而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的

这不会影响程序运行,却给我们编码 读程序时带来麻烦

5:

由于Struts2需要针对每个Request进行封装,把Request,Session等Servlet生命周期的变量封装成一个一个Map,

供给每个Action使用,并保证线程安全。所以在原则上,是比较耗费内存的

(责任编辑:IT教学网)

更多