专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

SpringBoot监听器的使用方法

  前言
  监听器(Listener)就是监听对象的创建、销毁等状态的变化以及定义一些事件发生后接下来要进行的动作。主要监听的三个域对象为:ServletRequest域、HttpSession域和ServletContext域。本文通过几个简单的例子介绍一下监听器的用法。ServletContextListener监听Servlet上下文
  监听Servlet上下文对象可以在系统启动的时候初始化一些数据,方便在使用的时候直接调用。监听器实现代码如下:ComponentpublicclassMyServletContextListenerimplementsServletContextListener{Override在ServletContext对象创建之后马上调用,做初始化publicvoidcontextInitialized(ServletContextEventevent){event。getServletContext()。setAttribute(name,九天银河聊编程);System。out。println(ServletContext对象被创建了);}Override在ServletContext对象销毁之后调用publicvoidcontextDestroyed(ServletContextEventevent){System。out。println(ServletContext对象被销毁了);}}GetMapping(getServletContext)publicStringgetServletContext(HttpServletRequestrequest){ServletContextservletContextrequest。getServletContext();ObjectnameservletContext。getAttribute(name);returnString。valueOf(name);}
  执行效果如下:
  HttpSessionListener获取在线用户数量ComponentpublicclassMyHttpSessionListenerimplementsHttpSessionListener{publicstaticIntegercount0;OverridepublicvoidsessionCreated(HttpSessionEventevent){count;ServletContextapplicationevent。getSession()。getServletContext();application。setAttribute(UserCount,count);System。out。println(有人上线了,现在在线人数为:count人);}OverridepublicvoidsessionDestroyed(HttpSessionEventevent){count;ServletContextapplicationevent。getSession()。getServletContext();application。setAttribute(UserCount,count);System。out。println(有人下线了,现在在线人数为:count人);}}GetMapping(online)publicStringgetOnlinePersoncount(HttpServletRequestrequest){IntegeruserCount(Integer)request。getServletContext()。getAttribute(UserCount);return(userCountnull?0:userCount);}GetMapping(login)publicStringlogined(HttpSessionsession){相同的session,如果sessionid一致,只会被监听一次。session。setAttribute(username,九天银河聊编程);returnsuccess;}GetMapping(logout)publicStringlogout(HttpSessionsession){session。invalidate();将session设置为失效returnsuccess;}
  执行127。0。0。1:8090login,控制台显示:
  执行127。0。0。1:8090online,返回
  执行127。0。0。1:8090logout,控制台显示
  ServletRequestListener统计网站访问次数ComponentpublicclassMyServletRequestListenerimplementsServletRequestListener{OverridepublicvoidrequestInitialized(ServletRequestEventservletRequestEvent){ObjectcountObjectservletRequestEvent。getServletContext()。getAttribute(count);System。out。println(历史访问次数:countObject);Integercount0;if(countObject!null)countInteger。valueOf(countObject。toString());count;servletRequestEvent。getServletContext()。setAttribute(count,count);}OverridepublicvoidrequestDestroyed(ServletRequestEventservletRequestEvent){System。out。println(当前访问次数:servletRequestEvent。getServletContext()。getAttribute(count));}}
  随便执行一个接口请求,控制台打印如下:
  再次执行:
  自定义监听方式
  定义监听事件ublicclassListenerEventextendsApplicationEvent{Stringnamenull;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this。namename;}publicListenerEvent(Objectsource,Stringvalue){super(source);namevalue;}}
  定义监听器ComponentpublicclassMySpringBootListenerimplementsApplicationListenerListenerEvent{OverridepublicvoidonApplicationEvent(ListenerEventlistenerEvent){StringeventInfolistenerEvent。getName();System。out。println(eventInfo);}}
  发布事件RestControllerpublicclassListenerController{ResourceprivateApplicationContextapplicationContext;GetMapping(listener)publicStringlistener(){ListenerEventeventnewListenerEvent(this,九天银河聊编程);applicationContext。publishEvent(event);return;}}
  执行127。0。0。1:8090listener,控制台显示
  监听器说明
  在目前的ServletAPI中提供的web事件监听器接口有以下几个:ServletContextListener监听servletContext对象的创建以及销毁contextInitialized(ServletContextEventevent)创建时执行contextDestroyed(ServletContextEventevent)销毁时执行HttpSessionListener监听session对象的创建以及销毁sessionCreated(HttpSessionEventevent)创建时执行sessionDestroyed(HttpSessionEventevent)销毁时执行ServletRequestListener监听request对象的创建以及销毁requestInitialized(ServletRequestEventevent)创建时执行requestDestroyed(ServletRequestEventevent)销毁时执行ServletContextAttributeListener监听servletContext对象中属性的改变attributeAdded(ServletContextAttributeEventevent)添加属性时执行attributeReplaced(ServletContextAttributeEventevent)修改属性时执行attributeRemoved(ServletContextAttributeEventevent)删除属性时执行HttpSessionAttributeListener监听session对象中属性的改变attributeAdded(HttpSessionBindingEventevent)添加属性时执行attributeReplaced(HttpSessionBindingEventevent)修改属性时执行attributeRemoved(HttpSessionBindingEventevent)删除属性时执行ServletRequestAttributeListener监听request对象中属性的改变attributeAdded(ServletRequestAttributeEventevent)添加属性时执行attributeReplaced(ServletRequestAttributeEventevent)修改属性时执行attributeRemoved(ServletRequestAttributeEventevent)删除属性时执行生命周期
  request
  指一个URL请求,当发送一个请求时被创建,当一个响应返回时,即被销毁。
  session
  当一个客户端访问一个WEB应用时创建,标记一个用户与服务器之间的多次请求。session失效有以下几个情况:session过期,即用户长时间不访问服务器造成过期用户退出系统,即执行session的invalidate方法,清理session当前web应用被卸载(session未被持久化)
  application
  贯穿于当前的WEB应用的生命周期,当前WEB应用被加载时创建application对象,当前WEB应用被卸载时销毁application对象。
  每天一个小知识,每天进步一点点!!!〔加油〕〔加油〕〔加油〕

你们觉得什么样的穿搭最吸引眼球?谢谢邀请。樱桃番茄今天跟大家来分享一下。冬季大衣搭配百搭实穿的黑色驼色大衣ootd嗨今日份冬季穿搭配色来啦!近期真的入手了好多件羊毛大衣各种颜色都有但经典实穿的还是是黑色和驼色平时武磊首发登场2球领先,换下后被对手扳回2球,你们怎么看?不代表武磊是中流砥柱!具体情况具体分析,如果领先两球为武磊所进,又回撒防守瓦解对方进球的机会,这就体现武磊的价值,而换下武磊对手扳回两球,那教练必遭口诛笔伐,追悔莫及这充分说明吴磊汽车一共有哪些灯?在学驾照的时候,教练都会教给咱们怎样使用汽车的外部灯光。但是我们真正开车上路以后,大部分朋友都只懂得打开和关闭灯光,却并不了解在什么情况下使用哪种灯光。灯光是车辆与车辆间交流的方式你的家乡有哪些特色美食?你最喜欢吃什么?你好!我是美食领域的丫头酱酱,很高兴回答您的问题你的家乡有哪里特色美食,你最喜欢吃什么?首先我是广东省揭阳的一个小山村人,我的家乡是青梅之乡,所以最具有特色的美食也就是甜脆梅了,还118岁身高标准是多少?118岁身高标准是多少?118岁男童和女童的身高标准可参见2005年九省市儿童体格发育调查数据(中华儿科杂志2009年第7期),详见下表。身高主要反映身体骨骼的发育情况,是身体长度篮协换届,为什么很多人不支持姚明再次当选篮协主席?中国篮协将于本月底换届,很多人不支持姚明再次当选篮协主席,主要是因为他在任的4年多,中国篮球整体水平不升反降,没有达到球迷的预期,没有给广大球迷带来想要的结果。我们不否认姚明是一个cba球员的年薪一般是多少啊?CBA球员的年薪一般是多少啊?大约估计一般平均在15O一200万元之间吧,(不一定准确),但CBA公司和篮协对20支CBA球队,有工资帽要求,一支球队最高工资帽限制在4400万元,新生儿呃逆怎么办?新生儿呃逆怎么办?新生儿呃逆后可以通过屏气拍背按摩腹部调整体位转移注意力等方法缓解,如呃逆持续不缓解,或者伴随呕吐哭闹等表现,需要立即前往医院治疗。小儿呃逆俗称小儿打嗝,医学上称为风险越来越高,现在的银行理财还能买吗?个人购买任务银行的理财都存在风险。国有银行理财的风险,小于民营银行。在民营银行理财的经济收益,往往是高于国有银行的收益。在民营银行理财,一万元一年的利率基本上在4。24。3之间。尽期货市场到底有没有庄家?期货市场没有庄家。只有资金量稍微大一点的机构而已。市场走势的不确定性和对于未知的恐慌,导致人们创造出了一个可以翻手为云覆手为雨的主力来解释行情。其实,只要深入思考就明白为什么没有主太原科技大学是几本?太原科技大学是几本呢?总体来说,这是一所二本学校哦。例如在广东,太原科技大学这几年的录取批次都是二批。太原科技大学招生遵循公平竞争公正选拔公开程序,德智体全面考核综合评价择优录取的
鲁迅故里的美好旅行为什么越来越多的人会选择一个人旅行当我踏入鲁迅故里时,心中充满了敬意和好奇。走在青石板路上,我仿佛能听到鲁迅先生的脚步声和他那批判社会的声音。这里是鲁迅的故乡,也是中国现代文学的发暴走绍兴城day22本来吃完了午饭应该回住处休息,但是太冷了我估计也休息不好,于是决定继续游览。于是依次走路去了鉴湖女侠故居塔山公园钱业博物馆蔡元培故居王羲之故里。走到腿快断掉。但是有一码通,一路大门母系家庭崛起的世界新潮流,中国人口总量将能保住世界第一本文提要本文将揭示自清朝灭亡以来,中国父系家庭衰竭母系家庭崛起的内在规律。让中国人普遍认识这种内在规律,有助于推动母系家庭的快速崛起。母系家庭的崛起,将成为解决人类现代文明通病的一多胎家庭总有一个孩子爱学习宝妈给出生三胎理由,你认可吗?有了孩子之后,很多父母都有了不一样的生活体验,孩子,能够带给我们二人世界无法感知的快乐,孩子,也可以让无数老父亲老母亲体会育儿的疲惫。随着生育政策的放开,如今一些家庭也加入了二胎行毛主席竟然是浙江人,唯一嫡孙回清漾认祖,毛家村有何神秘之处?众所周知毛泽东主席爱辣椒如命,是地地道道的湖南人,但毛氏族谱中却记载着衢州清漾村这个神奇的地方,且说,这里才是毛主席的祖籍。毛泽东主席从湖南人,变成了浙江人!这到底是个怎样的地方?鲁迅的后代都在哪里?儿子当了高官,还有一位大家都熟悉的大明星中国的近代史是一段包含着屈辱动荡与传奇的时代,列强入侵民不聊生,但是正是这个充满了绝望的年代,却促成了一批不可忽视的伟大文人。他们虽然没有在战场上浴血厮杀,却用自己手中的三寸笔杆,宝宝树深入AI母婴布局加速引领母婴家庭全场景智能生活方式近日,聊天机器人程序ChatGPT风靡全球,引发AI在各领域应用场景及发展前景的广泛探讨。国内外头部互联网科技公司正加速布局各自在AI领域产品研发与产业布局。国内互联网母婴头部平台浙江天台千年隋梅满枝头春节赏梅,是台州人的默契约定,每当惦记起这份乐事,便是将吉庆福气留在了心底。薛振广摄近日,前来浙江台州天台山国家5A级旅游景区游览观光的游客络绎不绝,隋代古刹国清寺里的千年古隋梅花擦亮万物互联之眼南阳市传感器产业链创新发展采访札记夜幕低垂,一盏盏智能灯随着路人的到来而点亮,随着路人的离开渐次熄灭步入监控区,摄像头紧跟人体移动而旋转,视线一刻不离开启自动泊车功能,车辆可以自己旋转方向盘,寻找车位停放你可知道,狂飙里吃肠粉不加灵魂酱汁,是不认真的美食态度实现对寻常肠粉的降维打击。食谱作者SharyWang狂飙演员吃肠粉不加酱汁让人抓狂,没有酱汁的肠粉是不认真的美食态度。我家的肠粉,经过几次酱汁香料成分和淀粉水比例的调整,最终被我家对话外企掌门人辉瑞中国区总裁彭振科中国政府鼓励创新的态度让外企深受鼓舞今年,辉瑞共有九个创新产品进入了医保目录,这展现出中国政府希望将更多创新产品更快惠及患者的决心,也向外资药企传递了一个积极的信号。辉瑞全球生物制药商业集团中国区总裁彭振科在接受记者
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网