zoukankan      html  css  js  c++  java
  • struts2学习笔记之一_struts1和struts2的区别

    1.struts2是struts1和webwork的合体

    2.struts1:基于servlet

      1)ActionServlet作用:

      (1)接受请求->寻找frombean>实例化formbean>实例化后组装进来>判断是否需要校验>如果需要校验再调用ActionForm的校验方法,返回值是AcctionErrors类型,返回给ActionServlet>判断返回的AcctionErrors有效性,如果有效存到request域中>再跳转到input页面(/xxx.jsp)

      (2)到Action页面>负责Action实例化>再把Action返回>在调用他的execute(ActionMapping am,ActionForm af,request,reponse)方法,返回ActionForward对象>对返回的对象进行解析>解析完再跳转到相应的jsp页面>

      缺陷:ActionServlet的任务过于集中,不容易维护,不容易扩展

      2)action是单例的(有同一个action实例处理所有的到达该action请求),所以不要再action中声明实例变量.(共享)

      3)actionForm:造成类的爆炸,

        4)耦合性搞,action类中需要引入struts1的api(ActionMapping ActionForm)同时还有元素的httpServlet(request,response)

    3.struts2:基于Filter

      1)分离关注(来源于webwork,类似于spring aop),

         分离关注:将web开发中的常规任务剥离开来,分别交给不同组件(拦截器),处理.eg:参数传         递,类型的数据转换,国际化,文件上传,处理表单的重复提交

      2)action是原型(独占的,不共享,可以存放客户端的状态),

      3)没有actionForm,用pojo(action,javabean)接收数据,极大的减少了类的数量

      4)action:就是pojo,和struts2中的api和原生的servlet api松耦合,测试性,一致性,移植性和可维护性很高.

    4.spring

      spring中出现了aop:不改变源代码,增加新的功能,通过代理实现.把功能定义到通知里面,

                把那些任务单独脱离出来,形成独立的一块,叫做切面

      

  • 相关阅读:
    new Date(str)返回 Invalid date问题
    时间倒计时
    js返回上一页并刷新 代码整理
    赋值变量值在标签里
    jQuery获取select选择的文本与值
    判断div里面的子集是否含有特定的类
    卷boot仅剩余XX空间
    ubuntu16.04 anaconda3安装
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    毕业设计
  • 原文地址:https://www.cnblogs.com/avrilliu/p/3237998.html
Copyright © 2011-2022 走看看