• SSH框架


    struts原理:
            MVC简介:   Model—模型:负责系统的状态和业务逻辑javabean  
            View—视图:负责系统的视图呈现jsp  
            Controller—控制: 负责系统的逻辑控制servlet  
            核心的原则:   Jsp页面不出现java代码,servlet不出现html的东西。
    传统的MVC架构:
           JSP-->VIEW   Servlet-->Controller   JavaBean-->Model
    传统的流程图:
           客户端的Request请求到达servlet,获取用户输入,set到model中,model负责取值也业务逻辑,然后由view层get数据更新view,发送到client。
    Struts架构:    
            Jsp+struts标签库-->View    ActionBean    
            ActionFormBean|-->Model    ActionServlet  
            AactionMapping |-->Controller
    Struts流程:
            Controller作为接受所有客户端请求的入口点,由ActionServlet来决定需要那个动作类来执行相应的操作,同时通知 ActionFormBean来封装用户的表单输入,同时提交给ActionBean执行相应的业务逻辑,通过ActionMapping来决定需要反馈 给Client什么。 注意的事情:     Struts的模型主要有Action Bean 和 ActionForm Bean ,Action中封装了简单的逻辑操作。较为复杂的逻辑放在JavaBean或者EJB中来完成,然后在Action中调用,因此Action是解决“做 什么”,由其他的组件如(JavaBean)来解决“怎么做”的问题。     ActionForm封装了用户的表单输入,因此Action不用和表单交互,直接和ActionForm交互就可以了! Struts标签和ActionForm的元素之间一一映射
    工作流程:
            struts1: 发布Struts Web服务时,根据web.xml初始化ActionServlet,ActionContext等内容. 在接到一个HttpRequest请求后,ActionServlet 根据struts-config.xml中的配置内容,将请求的参数传到对应的Formbean中,并设置session(开发中没有使用 Formbean).然后根据请求中的Action参数,在struts-config.xml中查找指定的Action,并调用此Action来处理请 求.根据Action的处理结果,会返回一个forward变量,此时通过mapping.findForward()查找出对应的forward所标示 的Action或者JSP页面(开发中没有转到另一个Action),将请求转到下一个处理.如果是forward指向JSP页面,则输出到前台.
             Struts2:: (1)客户端提交一个HttpServletRequest请求(.action或JSP页面) (2)请求被提交到一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等 (3)FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器 (4)请求发到FilterDispatcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理 这个Request(一般根据URL后缀是否为.action来判断) (5)如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActioProxy,由其进行处理. (6)ActionProxy通过Configuration Manager(它会访问struts.xml)询问框架的配置文件,找到需要调用的Action类. (7)ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action,(在调 用之前会根据配置文件加载相关的所有Interceptor拦截器) (8)Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器. (9) 最后ActionInvocation负责根据struts.xml中配置的result元素,找到与返回值对应的result,决定进行下一步输出.   
            简单的说struts2就是个单控制器,覆盖了以前的servlet。jsp里面的请求,通过单控制器的拦截,查看struts.xml查找你要响应的 Action。在Action里面处理事务,然后return一个参数(这个参数在XML里面配置,配置需要返回的界面)。

    hibernate原理:
            Hibernate的核心是ORM,对象与关系映射。一对一,一对多,多对多。
            
    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。 
            1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件//读取配置文件
            2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>读取并解析映射信息//读取映射信息
            3.通过config.buildSessionFactory();//创建SessionFactory
            4.sessionFactory.openSession();//打开Sesssion
            5.session.beginTransaction();//创建事务Transation
            6.persistent operate持久化操作
            7.session.getTransaction().commit();//提交事务
            8.关闭Session
            9.关闭SesstionFactory  
    Hibernate的三种状态:
            瞬时状态,持久化状态,游离状态。
            举个例子我们把数据库比作一个登记薄,
    当我们把信息登记到登记簿上的时候,这个过程就是持久化的过程。当登记完成之后,登记簿上的数据就是持久态数据,所谓持久态就是一直存在的状态。当我们需要用数据的时候,会从登记簿上查信息,我们查到的信息记录在临时的纸张或者脑海里,然后登记簿会放回原位,这时候临时纸张上或者脑海里的数据就是游离态,随时可能被遗忘,在hibernate中就是随时会被销毁的数据。瞬态数据和游离态数据有点儿类似,但是一点,就是他是存在持久化之前的数据,就是说我需要登记个人信息,我的个人信息还没有登记到登记簿上的时候,信息就是瞬态,一旦登记到登记簿上就变成持久态了,然后再查询到的就是游离态。

    spring原理:
            核心是IOC(控制反转)和AOP(面向切面编程)。
            IOC
    将 类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。它的原理是在 applicationContext.xml加入bean标签,在bean标签中通过class属性说明具体类名、通过property标签说明该类的 属性名、通过constructor-args说明构造子的参数。其一切都是返射,当通过applicationContext.getBean("id 名称")得到一个类实例时,就是以bean标签的类名、属性名、构造子的参数为准,通过反射实例对象,唤起对象的set方法设置属性值、通过构造子的 newInstance实例化得到对象。正因为spring一切都是反射,反射比直接调用的处理速度慢,所以这也是spring的一个问题。  
                AOP其 机理来自于代理模式,代理模式有三个角色分别是通用接口、代理、真实对象代理、真实对象实现的是同一接口,将真实对象作为代理的一个属性,向客户端公开的 是代理,当客户端调用代理的方法时,代理找到真实对象,调用真实对象方法,在调用之前之后提供相关的服务,如事务、安全、日志。其名称分别是代理、真实对 象、装备、关切点、连接点。

  • 相关阅读:
    在Ubuntu下安装软件
    HIVE Thrift Server使用总结
    用Wubi来安装Ubuntu 12
    linux命令总结
    Linux Sed简介
    Linux批量重命名文件
    算法学习的轨迹(转)
    写入es速率优化
    走近Flex组件系列(三):按扭组件(Button,CheckBox,LinkBar,LinkButton,PopUpButton,RadioButton,ToggleButtonBar)
    走近Flex组件系列(二):简单实用的Alert组件
  • 原文地址:https://www.cnblogs.com/qiuh/p/2950073.html
Copyright © 2020-2023  润新知