using afIocusing afConcurrent** (Service) - Stores values from one HTTP request to the next. ** The values stored must be '@Serializable'.constmixin HttpFlash { @Operatorabstract Obj? get(Str name)** The given value must be serializable. @Operator abstract Void set(Str name, Obj? val)** Internal method - don't come crying to me when I delete it! @NoDocabstract Void setReq([Str:Obj?]? req)** Internal method - don't come crying to me when I delete it! @NoDocabstract[Str:Obj?]? getRes()}internalconstclass HttpFlashImpl : HttpFlash { @Inject privateconst LocalMap req @Inject privateconst LocalMap resnew make(|This|in){ in(this)}override Obj? get(Str name){ res.containsKey(name) ? res[name] : req[name]}override Void set(Str name, Obj? val){ res[name] = val}override Void setReq([Str:Obj?]? req){if(req != null)this.req.map = req }override[Str:Obj?]? getRes(){ res.isEmpty ? null : res.map.toImmutable }}