struts,Hiernate,sping三个框架的理解

来源:互联网 发布:历史惊人的相似知乎 编辑:程序博客网 时间:2024/05/01 18:13
一:Struts对于采用Struts应用的web程序,在web应用启动时web.xml就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把他们存放到各种配置对象中,例如Action的映射信息存放在ActionMapping对象中。当ActionServlet接受到一个客户请求时,执行如下流程:1,检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效信息2,如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中3,根据配置信息决定是否需要表单验证,如果需要,就调用ActionForm的validate()方法4,如果ActionForm的validate()方法返回null或返回一个不包括ActionMessage的ActionErrors对象,表示表单验证成功,如果失败不会再创建Action对象并调用Action的execute()方法5,ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法6,Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件7,ActionForward对象指向的JSp组件生成动态网页,返回给客户1.ActionServlet核心控制器会拦截所有*.do的请求2.从struts-config.xml中找到用户请求的Action3.通过struts-config.xml中的配置再去找这个Action对应的ActionForm,并实例化4.把用户填写的数据自动填充到ActionForm中(调用ActionForm中的setXX()方法填充)5.同时把ActionForm放入到指定的范围中(request,session)6.然后把请求转发给Action7.Action获取ActionForm中的值然后调用业务逻辑层实现功能8.在通过ActionMapping查找Actionforward实现转发;Struts的核心是Servlet,Servlet的工作流程是:当用户请求访问某个Servlet时,Servlet容器将创建一个ServletRequest对象和ServletResponse对象,在ServletRequest对象中封装了用户请求信息,然后Servlet容器把ServletRequest对象和ServletResponse对象传给用户所请求的Servlet。Servlet把响应结果写到ServletResponse中,然后由Servlet容器把响应结果传给用户Struts实现MVC的机制:Struts实质上就是JSP Model2的基础上实现的一个MVC框架,在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由ActionServlet和Action来实现,视图由一组JSP文件构成JSP Model1的原理:JSP页面既要负责业务流程控制,又要负责提供表示层数据,同时充当视图和控制器JSP Model2的原理:它是一种联合使用JSP与Servlet来提供动态内容服务的方法,把视图和控制器分离了二、Hibernate 1.读取并解析配置文件      2.读取并解析映射信息,创建SessionFactory      3.打开Sesssion      4.创建事务Transation      5.持久化操作      6.提交事务      7.关闭Session      8.关闭SesstionFactory三:SpringSpring 已经用过一段时间了,感觉Spring是个很不错的框架。内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml  Spring的配置文件来动态的创建对象,和调用对象里的方法的 。Spring工作原理还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过配置类达到的。Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置 内部通过反射去动态的组装对象)要记住:Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。Spring里用的最经典的一个设计模式就是:模板方法模式。(这里我都不介绍了,是一个很常用的设计模式)Spring工作原理里的配置是很多的,很难都记住,但是Spring里的精华也无非就是以上的两点,把以上两点跟理解了也就基本上掌握了Spring. 
原创粉丝点击