常用几个框架比较

Spring MVC和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方式 
    
6. 另外,spring3 mvc的验证也是一个亮点,支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本
 。

  

Struts2 的实现原理

        1、 客户端初始化一个指向Servlet 容器( 例如 Tomcat) 的请求
        2 、 这 个 请 求 经 过 一 系 列 的 过 滤 器 (Filter ) (这 些 过 滤 器 中 有 一 个 叫 做
        ActionContextCleanUp的可选过滤器, 这个过滤器对于 Struts2 和其他框架的集成很有
        帮助, 例如: SiteMesh Plugin);
        3、 接着FilterDispatcher 被调用, FilterDispatcher 询问 ActionMapper 来决定这个请
        求是否需要调用某个 Action
        4、 如果ActionMapper 决定需要调用某个 ActionFilterDispatcher 把请求的处理交给
        ActionProxy
        5 ActionProxy通过 Configuration Manager 询问框架的配置文件, 找到需要调用的
        Action类;
        6 ActionProxy创建一个 ActionInvocation 的实例。
        7ActionInvocation 实例使用命名模式来调用, 在调用 Action 的过程前后, 涉及到相
        关拦截器( Intercepter) 的调用。
        8、 一旦 Action 执行完毕, ActionInvocation 负责根据 struts.xml 中的配置找到对应的
        返回结果。 返回结果通常是( 但不总是,也可能是另外的一个 Action 链) 一个需要被表
        示的 JSP 或者 FreeMarker 的模版。在表示的过程中可以使用 Struts2 框架中继承的标签。
        在这个过程中需要涉及到 ActionMapper

mybatis和hibernate区别
     a.从设计思路来看,mybatis从关系型开始到对象型的思 路来解决数据库的操作问题,hibernate从对象的角度的思路来解决数据库的 操作问题 
     b.
从方便性上来看,mybatis半自动 ,hibernate全自动
     c.
从 sql 语句书写来看,mybatis 要写 sql 语句,hibernate一般不用写,但是有时候我们还是要 用书写 hql 语句的 
     d.
从映射角度来看,mybatis映射 sql 语句的输入输出参数 ,hibernate对数据库表结构来进行映射 

你可能感兴趣的:(SSH)