struts升级到springmvc|如何在struts1框架基础的程序上配置springmvc框架

|

① struts2和springmvc有什么区别

1)springmvc的入口是一个servlet,即前端控制器,例如:*.action struts2入口是一个filter过虑器,即前端过滤器,例如:/*2)springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例 struts2是基于类开发,传递参数是通过类的属性,只能设计为多例3)springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成 ModelAndView对象,最后又将模型数据通过request对象传输到页面struts采用值栈存储请求和响应的数据,通过OGNL存取数据

② struts和springmvc的区别

SpringMVC 和Struts2的区别 1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。 2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通 setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。 3. 参数传递:struts是在接受参数的时候,可以用属性来接受参数,这就说明参数是让多个方法共享的。 4. 设计思想上:struts更加符合oop(面向对象编程)的编程思想, spring就比较谨慎,在servlet上扩展。5. intercepter的实现机制:struts有自己的interceptor机制,spring mvc用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC确实比struts2高。spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3 mvc就容易实现restful url。struts2是类级别的拦截,一个类对应一个request上下文;实现restful url要费劲,因为struts2 action的一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。spring3 mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量,而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。 6. 另外,spring3 mvc的验证也是一个亮点,支持jsR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。

③ struts1和struts2和springMVC的区别和介绍

struts1Struts1 工作流程1 ActionServlet接收由浏览器发出的请求后,检索和请求匹配的ActionMapping对象。如果不存在,返回请求无效的信息。2 检索和请求匹配的ActionForm对象。如果不存在,就创建一个。把提交的表单中的数据保存在ActionForm对象中3 根据配置信息决定是否进行校验。如果是,就进行校验。如果通过校验,进行下一步4 ActionServlet根据ActionMapping对象包含的信息决定把请求转发给哪个Action。如果这个Action的对象不存在,就创建一个,然后调用它的excute方法5 Action的excute方法返回一个ActionForward对象。ActionServlet把请求转发给ActionForward指定的JSP。6 ActionFoward对象指定的JSP生成动态网页,返回给浏览器struts2struts2是webwork升级版,跟struts1没有关系。struts1和servlet耦合度高,各层之间耦合度高,单元测试困难,表示层技术单一,而struts2没有和servlet耦合,更容易测试,支持更多表示层技术。struts2工作流程1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求。2) 这个请求经过一系列的过滤器(Filter)。3) 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action。4) 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。5) ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。6) ActionProxy创建一个ActionInvocation的实例。7) ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。8) 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。Struts2的核心就是拦截器。Struts.xml中所有的package都要extends="struts-default"。同理与所有的Java类都要extends自Object一样。struts-default.xml里面就是要做以上事情。springmvc1.spring mvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.3.DispatcherServlet将请求提交到目标Controller4.Controller进行业务逻辑处理后,会返回一个ModelAndView5.Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象6.视图对象负责渲染返回给客户端。struts1与struts2的比较1、struts1要求Action类继承一个抽象基类,而不是接口,struts2继承ActionSupport类或者实现Action接口。2、struts1是单例模式的,Action资源必须是线程安全的或同步的,会有线程安全问题,struts2为每一个请求都实例化一个对象,不存在线程安全问题。3、struts1依赖servlet API 因为execute方法的参数有httpservletrequest和httpservletresponse对象,而struts2不用依赖servlet。4、struts1依赖servlet API,所以测试要依赖web容器,测试难,struts2不依赖于容器,允许Action脱离容器单独被测试。 5、ActionForm,普通的JavaBean不能用作ActionForm,因此,开发者必须创建大量的ActionForm类封装用户请求参数,Struts 2直接使用Action属性来封装用户请求属性,避免了开发者需要大量开发ActionForm类的烦琐。Struts 2提供了ModelDriven模式,可以让开发者使用单独的Model对象来封装用户请求参数,但该Model对象无需继承任何Struts 2基类,是一个POJO,从而降低了代码污染。 6、struts1 支持jsp作为表现层技术,struts2支持velocity、freemarker等表现层技术。7、Struts1 整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。 Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言OGNL8、Struts1支持每一个模块有单独的Request Processors(生命周期),但是模块中的所有Action必须共享相同的生命周期。 Struts2支持通过拦截器堆栈(Interceptor Stacks)为每一个Action创建不同的生命周期struts2与springmvc比较1、spring mvc的入口是servlet,而struts2是filter2、struts2是类级别的拦截, 一个类对应一个request上下文,springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应3、spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。4、spring3mvc的验证也是一个亮点,支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。

④ struts的MVC和spring的MVC的区别

最近才发现spring也能实现MVC,于是在网上找了找相关介绍:当初选框架的时候目的比较单纯—springmvc支持rest,小生对restful url由衷的喜欢不用不知道一用就发现开发效率确实比struts2高我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置spring3 mvc可以认为已经100%零配置了(除了配置springmvc-servlet.xml外)比较了一下strus2与spring3 mvc的差别============================================struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入struts2实际上是通过setter getter方法与request打交道的struts2中,一个Action对象对应一个request上下文spring3 mvc不同,spring3mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去在spring3mvc中,一个方法对应一个request上下文好了我们来整理一下struts2是类级别的拦截,一个类对应一个request上下文,springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应所以说从架构本身上 spring3 mvc就容易实现restful url而struts2的架构实现起来要费劲因为struts2 action的一个方法可以对应一个url而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了===================================spring3mvc的方法之间基本上独立的,独享request response数据请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的这不会影响程序运行,却给我们编码读程序时带来麻烦====================================spring mvc 优点:spring mvc通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。而且框架本身有代码,而且看起来也不费劲比较简单可以理解。1、Spring3 MVC的学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当然这不是决定因素。2、Spring3 MVC很容易就可以写出性能优秀的程序,Struts2要处处小心才可以写出性能优秀的程序(指MVC部分)3、Spring3 MVC的灵活是你无法想像的,Spring的扩展性有口皆碑,Spring3 MVC当然也不会落后,不会因使用了MVC框架而感到有任何的限制。====================================spring3 mvc的验证也是一个亮点,支持JSR303处理ajax的请求更是方便只需一个注解@ResponseBody ,然后直接返回响应文本即可附上一段代码:@RequestMapping(value="/whitelists")public String index(ModelMap map){Account account = accountManager.getByDigitId(SecurityContextHolder.get().getDigitId()) ;‍ List<Group> groupList = groupManager.findAllGroup(account.getId()) ;map.put("account", account);map.put("groupList", groupList);return "/group/group-index" ;}//@ResponseBody ajax响应@RequestMapping(value="/whitelist/{whiteListId}/del")@ResponseBodypublic String delete(@PathVariable Integer whiteListId){whiteListManager.deleteWhiteList(whiteListId) ;return "success" ;}Struts 和 SpringMVC 的区别是什么呢?很多人学习了ssh ,都晓得struts最早被人用来控制表现层,但是struts已经有了mvc 为什么还有spring mvc呢?所以我稍微查阅了一些资料,总结了一下他们的区别:1. 机制。spring mvc 的入口是servlet,而struts是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了,我其他博客会专门写一写 servlet和filter之间的区别。2.性能。 spring会稍微比struts快。spring mvc 是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个 action ,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。3.参数传递。 struts是在接受参数的时候,可以用属性来接受参数,这就说明参数是让多个方法共享的。4.设计思想上。struts 更加符合oop的编程思想, spring就比较谨慎,在servlet上扩展,5.intercepter的实现机制。struts有以自己的interceptor机制,spring mvc 用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁。

⑤ 如何在struts1框架基础的程序上配置springmvc框架

<!– Spring MVC配置 –><!– ====================================== –><servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!– 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> 默认 </init-param> –> <load-on-startup>1</load-on-startup></servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern></servlet-mapping><!– Spring配置 –><!– ====================================== –><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!– 指定Spring Bean的配置文件所在目录。默认配置在WEB-INF目录下 –><context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/applicationContext.xml</param-value></context-param>

⑥ 如何把struts1的页面标签换成springMVC,页面如何写例如下面

Struts标签的使用方法 只要在JSP页面的开头加上一条下面这样的taglib指令,你就可以使用UI标签和非UI标签了: 标签的属性可以被赋值为一个静态的值或一个OGNL表达式。如果你在赋值时使用了一个OGNL表达式并把它用“%”括了起来,这个表达式将会被求…

⑦ struts相比于springmvc有优势吗

struts2相比spring mvc:1.使用struts2完全感知不到控制层的存在,实现对控制层的解耦。2.struts2 使用filter做入口,相比spring mvc/struts1使用servlet做入口,更轻量级,体量更小3.易用性,struts2使用ModelDriven,可以大大简化代码的开发,struts会自动帮你找到action,以及action中的方法,说struts2难用只能说你不会用。4.性能,值栈的使用会有那么大的性能损耗?5.struts1/spring mvc都是使用servlet做入口,难道struts1性能会比spring软件开发www.xiupin365.net?mvcstruts1内部实现就一个模板模式而已。为什么还要struts2 ?6.struts2在思想上、设计上要比spring mvc更先进,更高层。spring mvc 跟 struts1是一个层级的东西。

⑧ SpringMVC,Spring和Struts的区别

一、Spring

Struts是对于MVC的一种非常完美的实现,从根本上来说,它其实和SpringMVC一样,都是基于MVC思想的扩展实现。但是,在SpringMVC3之后 ,SpringMVC完超Struts。(注:但是,框架并没有优劣之分,框架本身就是一种权衡,相对而言而已)

Struts和SpringMVC的区别:

首先,如果说项目中使用了spring,那么还是使用SpringMVC吧,因为相对于融合Struts来说,spring和SpringMVC是非常完美的无缝链接。

其次,SpringMVC的拦截粒度是方法,而Struts的粒度是类

然后,入口不同,SpringMVC的入口是servlet,而Struts是filter

最后,如果使用注解的话,SpringMVC基本上是零配置,而Struts需要配置很多。

备注:想说一点的是:在Struts中可以配置开发者模式,就是说当修改了一个URL访问,可以不用重启工程。但是SpringMVC需要重启。


赞 (0)