spring MVC

面试官问道:有了stuts的mvc为什么还要spring的mvc,你觉得spring有什么不爽的地方?

个人觉得两者之间的区别还是比较明显的,先说一下他们的共同点:

1.都是mvc框架;

2.感觉struts的action类似于spring的ioc,都是使用java反射机制来实现的依赖注入;

3.struts2的拦截器使用也类似于spring的aop,都是通过动态代理实现的;

他们的区别,在我看来有如下:

1.配置不一样(这点就不多说了)

2.spring的控制器对象的处理请求方法需要带有HttpServletRequest和HttpServletResponse参数,这样不便于调试;

3.参数的接收,在struts2中通过set方法就实现了,而spring

则取药显式的去从request中获取,另外参数的传递也比较方便;

4.struts2处理请求的返回页比较方便,通过acction的返回的结果名称,定位返回的页面或者重定向到另一个action

5.struts2

同时提供了对于请求变量的校验和类型的转换;

6.

我觉得spring在mvc框架中相对于struts2的优势在于它的IOC,struts2只是注入action,而spring可以将更多的bean注入到这个action中;

综上所述,

springmvc较struts2更轻量,但是没有struts2在mvc方面功能强大

两者不可同日而语

前者是

web界经典的mvc框架系Apache软件基金下Jakarta项目的一部分,主要架构设计

和开发者是CraigR.McClanahan,到现在已经将近8年时间了

后者是RodJohnson是对《ExpertOne-on-OneJ2EEDesignandDevelopment》一书中所阐述的设计思想的具体实现,基于interface21开发包引入了IOC、AOP等重要思想的轻量级框架。

相关推荐