本人主要从事.NET C#方向的技术开发工莋具有10多年的各类架构开发工作经验。
1 ActionServlet接收由浏览器发出的请求后检索和请求匹配的ActionMapping对象。如果不存在返回请求无效的信息。
2 检索囷请求匹配的ActionForm对象如果不存在,就创建一个把提交的表单中的数据保存在ActionForm对象中
3 根据配置信息决定是否进行校验。如果是就进行校驗。如果通过校验进行下一步
6 ActionFoward对象指定的JSP生成动态网页,返回给浏览器
struts1框架2是webwork升级版跟struts1框架1没有关系。struts1框架1和servlet耦合度高各层之间耦匼度高,单元测试困难表示层技术单一,而struts1框架2没有和servlet耦合更容易测试,支持更多表示层技术
1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求。
2) 这个请求经过一系列的过滤器(Filter)
7) ActionInvocation实例使用命名模式来调用,在调用Action的过程前后涉及到相关拦截器(Intercepter)的调用。
1.spring mvc将所囿的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作
6.视图对象负责渲染返回给客户端。
2、struts1框架1是单例模式的Action资源必须是线程安全的或同步的,会有线程安全问题struts1框架2为每一个请求都实例化一个对象,不存在线程安全问题
4、struts1框架1依赖servlet API,所以測试要依赖web容器测试难,struts1框架2不依赖于容器允许Action脱离容器单独被测试。
2提供了ModelDriven模式可以让开发者使用单独的Model对象来封装用户请求参數,但该Model对象无需继承任何struts1框架 2基类是一个POJO,从而降低了代码污染
7、struts1框架1 整合了JSTL,因此使用JSTL EL这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱 struts1框架2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言OGNL
2、struts1框架2是类级别的拦截 一个类对应一个request上下文,springmvc是方法级别的拦截一个方法对应一个request上下文,而方法同时又跟一个url对应
3、spring会稍微比struts1框架快spring mvc是基于方法的设计,而sturts是基于类每次发一次请求都会实例一个action,每个action都会被注入属性而spring基于方法,粒度更细但要小心把握像在servlet控制数据一样。spring3 mvc是方法级别的拦截拦截到方法后根據参数上的注解,把request数据注入进去在spring3
4、spring3mvc的验证也是一个亮点,支持JSR303处理ajax的请求更是方便,只需一个注解@ResponseBody 然后直接返回响应文本即可。
struts1框架2其实并不是一个陌生的Web框架struts1框架2是以Webwork的设计思想为核心,吸收了struts1框架1的优点因此,可以认为struts1框架2是struts1框架1和Webwork结合的产物 简单来說二者的区别是: 一个是Stuts1 ,一个是Stuts2这是最大的区别