精华内容
下载资源
问答
  •  存放数据的是这三个对象在工程中setAttribute(),removeAttribute()时候,我们监听器就会知道,然后在对应方法中执行相应操作。 以下定义这三个对象需要实现接口: 监听器接口----监听对象...

    1.工程说明

      在前一阶段介绍了监听器监听我们这三个对象创建和销毁的监听事件,现在我们要监听这三个对象存放属性的时候的一个监听事件。

      存放数据指的是这三个对象在工程中setAttribute(),removeAttribute()的时候,我们的监听器就会知道,然后在对应的方法中执行相应的操作。

      以下是定义这三个对象需要实现的接口:

        监听器的接口----监听对象
        ServletContextAttributeListener----ServletContext对象中的属性的变化情况
        HttpSessionAttributeListener----session对象中的属性的变化情况
        ServletRequestAttributeListener----request对象中的属性的变化情况

        实现以上监听器需要重写的方法都一样:添加 、删除 、 修改的方法名称全部一致

      当我们在代码中添加,删除,修改属性的时候,监听器都会收到信息,然后执行相应的代码。

      这三个对象需要实现的方法都一样,行为也差不多,所以在此演示session对象添加,删除,替换属性时,我们监听器所做的操作。

    基本步骤:
    1.定义一个实现HttpSessionAttributeListener的监听器
    2.采用注解的方式注册监听器
    3.在实现的三个方法内向控制台打印相应的信息

    4.在jsp中写一段代码:在session对象中添加,修改,替换属性

    在此附上工程的下载地址

    2.定义监听器MyHttpSessionAttributeListener

    package listener;
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpSessionAttributeListener;
    import javax.servlet.http.HttpSessionBindingEvent;
    
    /*
     * 2018.5.15
     * @author Dragon
     * 监听session属性变化的监听器
     */
    @WebListener
    public class MyHttpSessionAttributeListener implements HttpSessionAttributeListener {
    
    	@Override
    	public void attributeAdded(HttpSessionBindingEvent arg0) {
    		System.err.println("MyHttpSessionAttributeListener----------attributeAdded");
    	}
    
    	@Override
    	public void attributeRemoved(HttpSessionBindingEvent arg0) {
    		System.err.println("MyHttpSessionAttributeListener----------attributeRemoved");
    	}
    
    	@Override
    	public void attributeReplaced(HttpSessionBindingEvent arg0) {
    		System.err.println("MyHttpSessionAttributeListener----------attributeReplaced");
    	}
    
    }

    在上面的代码中,我们在相应的方法中打印了相应的信息。同时采用注解的方式对我们的监听器进行了注册。

    3.给session对象存放数据

    <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <%
    
            //添加数据
    		session.setAttribute("test", "Dragon");
            //替换数据
    		session.setAttribute("test", "long");
            //删除数据
    		session.removeAttribute("test");
    %>

    4.部署工程并运行

    运行结果:

    MyHttpSessionAttributeListener----------attributeAdded
    MyHttpSessionAttributeListener----------attributeReplaced

    MyHttpSessionAttributeListener----------attributeRemoved

    ok了,从上面可以发现当我们session对属性执行相应的操作的时候,监听器会知道并向控制台打印相应的信息。同理,监听这两个对象request,ServletContext需要执行的操作也一样,不一样的是实现的接口不一样。

    5.下一阶段的学习

      到目前为止,学习了两类监听器,分别是监听对象创建和销毁的监听器和监听对象存放数据的监听器,接下来要学习的是:监听session中保存的javabean状态的监听器。

      加油~继续前行!

    展开全文
  • * 获取指定组中的数据 * * @param groupPosition * @return * @see android.widget.ExpandableListAdapter#getGroup(int) */ @Override public Object getGroup(int groupPosition) { return group_list....
  • 什么事件溯源(Event ...而事件溯源则相反,不是保存对象的最新状态,而是保存这个对象所经历的每个事件,所有的由对象产生的事件会按照时间先后顺序有序的存放在数据库中。可以看出,事件溯源的这种做法更符合事

    什么是事件溯源(Event Sourcing)
    一个对象从创建开始到消亡会经历很多事件,以前我们是在每次对象参与完一个业务动作后把对象的最新状态持久化保存到数据库中,也就是说我们的数据库中的数据是反映了对象的当前最新的状态。而事件溯源则相反,不是保存对象的最新状态,而是保存这个对象所经历的每个事件,所有的由对象产生的事件会按照时间先后顺序有序的存放在数据库中。可以看出,事件溯源的这种做法是更符合事实观的,因为它完整的描述了对象的整个生命周期过程中所经历的所有事件。

    那么,事件到底如何影响一个领域对象的状态的呢?很简单,当我们在触发某个领域对象的某个行为时,该领域对象会先产生一个事件,然后该对象自己响应该事件并更新其自己的状态,同时我们还会持久化在该对象上所发生的每一个事件;这样当我们要重新得到该对象的最新状态时,只要先创建一个空的对象,然后将和该对象相关的所有事件按照事件发生先后顺序从先到后再全部应用一遍即可还原得到该对象的最新状态,这个过程就是所谓的事件溯源;

    另一方面,因为是用事件来表示对象的状态,而事件是只会增加不会修改。这就能让数据库里的表示对象的数据非常稳定,不可能存在DELETE或UPDATE等操作。因为一个事件就是表示一个事实,事实是不能被磨灭或修改的。这种特性可以让领域模型非常稳定,在数据库级别不会产生并发更新同一条数据的问题;其实CAP定理之所以做不到,根本原因也是由于数据可以被修改;现在通过事件溯源,我们实现CAP或许就成为了可能;

    我们可以看到,基于这样的设计,领域对象的状态完全是由事件驱动的。不仅如此,事件还可以被事件总线分发出去,通知领域模型外的一切事件响应者发生了什么,基于这种Publish-Subscribe的通信模式,我们可以最大限度的实现系统的松耦合。

    展开全文
  • VO变量对象

    2019-05-25 13:06:55
    如果变量一个对象,实际上变量中存放是对象的地址 概念 执行上下文:某个函数或全局代码的执行环境,该环境中包含执行代码需要的所有信息。 可以简单的理解为:执行上下文一个对象,对象中包含了执行代码需要...

    执行上下文

    JS原理:原型链、执行上下文、事件循环

    预备知识

    栈是类似于数组的一种数据结构。

    1. 对象引用

    如果变量是一个对象,实际上变量中存放的是对象的地址

    概念

    执行上下文:某个函数或全局代码的执行环境,该环境中包含执行代码需要的所有信息。

    可以简单的理解为:执行上下文是一个对象,对象中包含了执行代码需要的信息。

    当执行一个函数时,需要建立执行上下文,建立之后,才正是开始执行。

    call stack(执行上下文栈):组织管理程序运行过程中的执行上下文

    执行上下文的内容

    1. VO:variable object,变量对象,存放的是函数或全局代码执行过程中需要用到的局部变量
    2. scope:作用域
    3. this

    vo是一个对象,调用函数或执行全局代码时创建,创建一个vo,需要经过三步:

    1. 确定函数形参的值(包括arguments对象)

    在函数中寻找数据时,会先从vo中查找,如果vo中不存在,再使用外层数据

    AO: active object,执行栈顶部上下文的vo

    创建vo对象

    1. 确定形参值
    2. 确定函数中所有的函数字面量声明
      1. 该函数必须是字面量声明,字面量声明提取到vo后,可以认为该声明失效
      2. 如果当前vo中出现同名属性,直接覆盖
    3. 确定函数中所有的变量声明(var),将其提取到上下文中,值为undefined
      1. 如果当前vo中出现同名属性,忽略

    编译:将一种语言代码,翻译成另外一种语言

    展开全文
  • 游戏背包,在Unity3d中,个人觉得最好解决方法能与对象联系起来,比如,点击一个按钮,显示一个2D UI界面,然后 根据数据配置读取物品相关信息。使用NGUI实现背包也可以事件分发来系统,使用NGUITools发送...

     

    游戏背包,在Unity3d中,个人觉得最好的解决方法是能与对象联系起来,比如,点击一个按钮,显示一个2D UI界面,然后

    根据数据配置读取物品相关的信息。使用NGUI实现背包也可以使用NGUI的事件分发来系统,使用NGUITools发送广播到Root节

    点,将条目添加到一个UIScrollView中,这样的好处是可以将背包显示在屏幕上,方便UI制作,再者背包是属于一种

    在游戏中经常要用到的功能,在主界面一直存放在内存中。

     

     

    a.写一个类来标示当前背包格子的唯一表示

    	public void NotifyBagItem () {
    		if(!string.IsNullOrEmpty(item1))
    			NGUITools.Broadcast("OnBagItemClick", item1);
    	}


    b.标示的作用是为了点击格子的判定,是否有道具在当前背包格子里面

     

    用这样的思想来写背包,缺点是背包格子是必须是限的,暂时还没有实现背包格子逻辑的判定

    明天放假,暂时还没什么好的解决方法,但我想用的是NGUI的功能来实现

     

    :)

    展开全文
  •  存放具体数据的最大的逻辑对象,通常按照需求将同一项目所属的数据统一存放在一个数据库中,也可以创建多个数据库 数据库管理系统dbms(database management system)  一种操纵和管理数据库的大型软件,用于...
  • 我希望页面在显示对象集合列表时,为每个列表增加点击事件,点击后将对象数据传入下个页面,故需要使用localStorage存放对象。 首先回调函数中拼接表格,并为每一列增加点击事件,传参为经过JSON.stringify串化...
  • 变量与对象

    2010-06-01 11:07:37
    它只是程序中用来临时存放数据。  对象我们要进行研究的任何事物,不仅能表示具体的事物,还能表示抽象的规则、计划或事件。严格来说,对象也变量的一种,特定类型的变量。  变量可以用来存储对象的...
  •  数据库一个可以存放数据库对象的容器,数据库对象包括:表、视图、存储过程、函数、触发器、事件。其中,表数据库最基本的元素,其他数据库对象的前提条件。  表中的一列称为一个字段,一行称为一条记录。...
  • 事件溯源Event Sourcing

    千次阅读 2018-08-12 12:08:57
    而事件溯源则相反,不是保存对象的最新状态,而是保存这个对象所经历的每个事件,所有的由对象产生的事件会按照时间先后顺序有序的存放在数据库中。可以看出,事件溯源的这种做法更符合事实...
  • 一. 内存空间分配原理 参考文章 基础数据类型:number,string,boolean,null,underfined ...而引用数据类型将值存放在堆内存中,存储在变量对象的是指向堆内存地址。 不允许直接访问...
  • 博主有话说:弄清jvm的运行时数据区对写java程序非常的有帮助,特别高并发情况下对事件的处理。了解整个类的加载、运行及销毁过程,才能深入了解面向对象的含义,写出更加优雅、高质量的代码。 最后配图,类加载...
  • 就在上个月的3日,土耳其爆发重大数据泄露事件,近5000W土耳其公民的个人信息牵涉其中,除此以外还有越来越多的数据泄露事件发生,安全从业者意识到,时候采取一些行动了。 相比网络安全、系统安...
  • Flex事件机制二

    2012-07-02 12:24:34
     三: dispatcherEvent EventDispatcher 派发事件的武器,经它派发的事件对象必须Event类型或者Event的子类。  Event对象中包含目标对象存放的数据,这些数据都成为Event的属性,以供侦听器使用:  Event...
  • 设置getter/setter可以监听对象的,所以对于数组元素还是要遍历一下的。如果不是对象,比如a[0]字符串、数字?那就没办法了,但是vue为数组提供了$set和$remove</a>,方便我们...
  • CQRS与事件溯源概念

    千次阅读 2014-01-29 13:03:47
    而事件溯源则相反,不是保存对象的最新状态,而是保存这个对象所经历的每个事件,所有的由对象产生的事件会按照时间先后顺序有序的存放在数据库中。可以看出,事件溯源的这种做法更符合事实观的,因为它完整的描述...
  • 事件溯源(Event Sourcing)

    千次阅读 2014-05-13 15:44:59
    而事件溯源则相反,不是保存对象的最新状态,而是保存这个对象所经历的每个事件,所有的由对象产生的事件会按照时间先后顺序有序的存放在数据库中。可以看出,事件溯源的这种做法更符合事实观的,因为它完整的描述...
  • 什么CQR一个对象从创建开始到消亡会经历很多事件,以前我们在每次对象参与完一个业务动作后把对象的最新状态持久化保存到数据库中,也就是说我们的数据库中的数据是反映了对象的当前最新的状态。而事件溯源则...
  • C#第三章 对象和类型

    2011-03-02 18:01:00
    第三章 对象和类型 1. 类和结构的区别: a.... 类成员 类中的数据(字段、常量、事件)和函数(方法、属性、构造函数和终结器、运算符以及索引器)称为类的成员 (1
  • 在演示算法之前,需先在弹出的小窗口中输入线性表的数据元素及算法参数 i(插入或删除的位置)和 b(被插的数据元素)的值。顺序表的图示窗口在演示屏的上方,链表的图示窗口在左侧。 2. 有序表的操作 算法演示屏...
  • 封装on,emit,off事件

    2019-03-09 15:53:00
    事件绑定一个对象绑定多个事件函数,因此一对多模式,即观察者模式,数据类型采用对象 封装on: 思路:创建一个事件仓库存放事件: 判断当前事件是否存在,不存在,初始化一下,然后将回调函数push到...
  • 事件循环机制EventLoop

    2020-05-19 21:48:47
    堆表示一大块非结构化内存区域,对象数据存放在堆中 2、栈(Stack) 栈在javascript中又称执行栈,调用栈,一种后进先出数组结构, Javascript 有一个 主线程(main thread)和 调用栈(或执行栈call-stack...
  • 一、概念 渐进的意思我们可以用vue只写一个...返回对象的函数(推荐,因为一开始简单的可以用,到后面复杂项目对象就用不了了),实际上就必须对象 :function可省略 需要用到和保存的数据继续在data里存就好
  • input标签输入标签,可以获取用户在页面上输入,绑定一个input事件获取数据e,而input事件的名称可以自己在JS文件Page字段命名。格式bindinput="函数名" 1)需要给input标签绑定input事件,绑定关键字...
  • python自省与反射

    2020-05-30 16:40:46
    1.反射自省的概念 自省:自省就是能够获得自身的结构和方法,给开发者可以灵活的调用,给定一个对象,返回该对象的所有属性和函数列表,或给定对象和该对象的...类属性:属性就是一个对象的数据或者函数元素 ...
  • 这里,我们要补充一下在之前的学习中,我们说到了在构建new Vue()实例对象中,我们往里面写了el和...我们知道,elVue实例的作用对象,data定义所有页面中的数据。而methods则存放我们定义的所有的事件处理函数,...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 186
精华内容 74
关键字:

对象的事件是存放对象的数据