#1: attribute "a" with value is added to the request scope causing method attributeAdded() called. #2: value of attribute "a" (that is "b")is replaced with value "c" causing method attributeReplaced() called. #3: Finally attribute "a" is removed from the request scope causing method attributeRemoved() called.
getName() public java.lang.String getName() Return the name of the attribute that changed on the ServletRequest Returns: the name of the changed request attribute
getValue() public java.lang.Object getValue() Returns the value of the attribute that has been added, removed or replaced. If the attribute was added, this is the value of the attribute. If the attribute was removed, this is the value of the removed attribute. If the attribute was replaced, this is the old value of the attribute.
Lines marked bold is answer to your doubt specifically.