当前位置: 首页 > news >正文

小猫济南网站建设公司中国企业网络营销现状

小猫济南网站建设公司,中国企业网络营销现状,国外代理ip地址 免费,网页升级访问中永久地址目录 监听器Listener 1.功能 2.监听器分类 3.监听器的配置 4.ServletContext监听 5.HttpSession监听 6.ServletRequest监听 监听器Listener 1.功能 用于监听域对象ServletContext、HttpSession和ServletRequest的创建,与销毁事件监听一个对象的事件&#x…

目录

监听器Listener

1.功能

2.监听器分类

3.监听器的配置

4.ServletContext监听

5.HttpSession监听

6.ServletRequest监听


监听器Listener

1.功能

  1. 用于监听域对象ServletContext、HttpSession和ServletRequest的创建,与销毁事件
  2. 监听一个对象的事件,如果发生了某事件则可以执行相应的代码

默认的优先级别:Listener>Filter>Servlet


2.监听器分类

由于事件的复杂性,监听器也有许多对应的监听器。总体上按照作用域可以分为以下三类

  1. Servlet上下文相关监听接口,包括ServletContextListener、ServletAttributeListener
  2. HTTP会话监听接口,包括HttpSessionListener、HttpActivationListener等
  3. Servlet请求监听接口,包括ServletRequestListener、ServletRequestAttributeListener

3.监听器的配置

1.通过xml配置

    <listener>
<!--        在listener-class中输入具体的类的位置--><listener-class>com.company.Listener.ListenerDemo1</listener-class></listener>

2.通过注解类配置

@WebListener

只需要填写@WebListener即可 


4.ServletContext监听

通过实现ServletContext接口实现监听器功能

1.生命周期监听

ServletContext的生命周期监听,监听ServletContext对象的创建与销毁方法如下

方法名描述
contextInitialized()当ServletContext对象被创建时,容器会自动调用该方法。在这个方法中,你可以执行一些初始化操作,比如加载配置文件、建立数据库连接等。
contextDestroyed()当ServletContext对象被销毁时,容器会自动调用该方法。在这个方法中,你可以执行一些清理操作,比如释放资源、关闭数据库连接等。
package com.company.Listener;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
//使用注解类配置
@WebListener
public class ListenerDemo1 implements ServletContextListener {//    在创建出ServletContext对象时候自动调用函数@Overridepublic void contextInitialized(ServletContextEvent servletContextEvent) {System.out.println("监听到有ServletContext对象创建");}
//    检测到ServletContext对象被销毁@Overridepublic void contextDestroyed(ServletContextEvent servletContextEvent) {System.out.println("监听到有ServletContext对象被销毁");}
}

 具体案例代码:

创建ServletContext对象代码:

package com.company;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/ServletContextDemo1")
public class ServletContextDemo1 extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        创建ServletContext对象ServletContext context = req.getServletContext();System.out.println("ServletContextDemo1被调用");}
//        实现方法统一@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}
}

2.属性监听

通过实现ServletContextAttributeListener接口实现监听属性的添加、替换、修改的功能,方法如下

方法名描述
attributeAdded()当向ServletContextHttpSessionServletRequest添加属性时,容器会自动调用该方法。在这个方法中,你可以对添加的属性进行处理。
attributeReplaced()ServletContextHttpSessionServletRequest中的属性被替换时,容器会自动调用该方法。在这个方法中,你可以对替换后的属性进行处理。
attributeRemoved()ServletContextHttpSessionServletRequest中的属性被移除时,容器会自动调用该方法。在这个方法中,你可以对移除的属性进行处理

 案例代码:

监听器类代码

package com.company.Listener;import javax.servlet.ServletContext;
import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.annotation.WebListener;@WebListener
public class ListenerDemo2 implements ServletContextAttributeListener {
//    当新创建一个ServletContext对象时候调用@Overridepublic void attributeAdded(ServletContextAttributeEvent servletContextAttributeEvent) {
//        获取域对象ServletContext context = servletContextAttributeEvent.getServletContext();
//        获取新增的域 名和值String name = servletContextAttributeEvent.getName();Object value = servletContextAttributeEvent.getValue();
//        输出修改对象System.out.println("域对象"+context+"范围内增加了"+name+"值为"+value);}
//    当ServletContext对象被移除的时候执行@Overridepublic void attributeRemoved(ServletContextAttributeEvent servletContextAttributeEvent) {ServletContext context = servletContextAttributeEvent.getServletContext();String name = servletContextAttributeEvent.getName();Object value = servletContextAttributeEvent.getValue();System.out.println("域对象"+context+"范围内删除了"+name+"值为"+value);}@Overridepublic void attributeReplaced(ServletContextAttributeEvent servletContextAttributeEvent) {ServletContext context = servletContextAttributeEvent.getServletContext();String name  = servletContextAttributeEvent.getName();Object value = servletContextAttributeEvent.getValue();System.out.println("域对象"+context+"范围内替换了"+name+"值为"+value);}
}

 Servlet属性类代码

package com.company;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/ServletContextDemo3")
public class ServletContextDemo3 extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ServletContext context = req.getServletContext();
//        创建context域对象值context.setAttribute("msg","Hello");
//        替换对象内容context.setAttribute("msg","你好");
//        销毁对象context.removeAttribute("msg");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}
}


5.HttpSession监听

通过实现接口HttpSessionListener实现HttpSession。HttpSession对象监听有三种方式,1.生命周期监听、2.属性监听、3.session监听

 1.生命周期监听

方法名描述
sessionCreated()当一个新的HttpSession对象被创建时,容器会自动调用该方法。在这个方法中,你可以对新创建的HttpSession对象进行处理。
sessionDestroyed()当一个HttpSession对象被销毁时,容器会自动调用该方法。在这个方法中,你可以对销毁的HttpSession对象进行处理。

监听类代码

package com.company.Listener;import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
@WebListener
public class ListenerDemo3 implements HttpSessionListener {
//    当session被创建时候调用@Overridepublic void sessionCreated(HttpSessionEvent httpSessionEvent) {System.out.println("监听到有session的创建");}
//    当session被销毁时候调用@Overridepublic void sessionDestroyed(HttpSessionEvent httpSessionEvent) {System.out.println("session已被销毁");}
}

Servlet实现代码

package com.company;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;@WebServlet("/SessionListenerDemo1")
public class SessionListenerDemo1 extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        创建sessionHttpSession session = req.getSession();session.setAttribute("name","AlphaMilk");
//        销毁sessionsession.invalidate();}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}
}

2.属性监听

方法名描述
attributeAdded()当一个属性被添加到HttpSession对象中时,容器会自动调用该方法。在这个方法中,你可以对新添加的属性进行处理。
attributeReplaced()当一个属性在HttpSession对象中被替换时,容器会自动调用该方法。在这个方法中,你可以对替换的属性进行处理。
attributeRemoved()当一个属性从HttpSession对象中被移除时,容器会自动调用该方法。在这个方法中,你可以对被移除的属性进行处理

案例代码:

 监听类

package com.company.Listener;import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;@WebListener
public class ListenerDemo4 implements HttpSessionAttributeListener {
//    当session属性增加时候调用@Overridepublic void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent) {System.out.println("Session添加了一个新的属性");}
//    当session属性销毁时候调用@Overridepublic void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent) {System.out.println("Session销毁了一个属性");}
//    当session属性替换时候调用@Overridepublic void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent) {System.out.println("Session替换了一个属性");}
}

 Servlet实现类

package com.company;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;@WebServlet("/SessionDemo5")
public class SessionDemo5 extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();
//        增加属性session.setAttribute("userName","AlphaMilk");
//        属性覆盖session.setAttribute("userName","alpha");
//        属性删除session.removeAttribute("userName");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}
}


6.ServletRequest监听

与上述几个接口类似,分别由生命周期监听与属性监听

1.生命周期监听

方法名描述
requestInitialized()当一个ServletRequest对象被创建并初始化时,容器会自动调用该方法。在这个方法中,你可以对新创建的ServletRequest对象进行处理。
requestDestroyed()当一个ServletRequest对象被销毁时,容器会自动调用该方法。在这个方法中,你可以对销毁的ServletRequest对象进行处理。

2.属性监听

方法名描述
attributeAdded()当一个属性被添加到ServletRequest对象中时,容器会自动调用该方法。在这个方法中,你可以对新添加的属性进行处理。
attributeReplaced()当一个属性在ServletRequest对象中被替换时,容器会自动调用该方法。在这个方法中,你可以对替换的属性进行处理。
attributeRemoved()当一个属性从ServletRequest对象中被移除时,容器会自动调用该方法。在这个方法中,你可以对被移除的属性进行处理


文章转载自:
http://dinncoirresistibility.bpmz.cn
http://dinncoiamap.bpmz.cn
http://dinncoearpick.bpmz.cn
http://dinncoclockface.bpmz.cn
http://dinncobytecode.bpmz.cn
http://dinncoplasterer.bpmz.cn
http://dinncoamate.bpmz.cn
http://dinncolavatorial.bpmz.cn
http://dinncoarchil.bpmz.cn
http://dinncoupholster.bpmz.cn
http://dinncofinfooted.bpmz.cn
http://dinncogiven.bpmz.cn
http://dinncosurtax.bpmz.cn
http://dinncocoinstantaneity.bpmz.cn
http://dinncobenni.bpmz.cn
http://dinncolyase.bpmz.cn
http://dinncocaravan.bpmz.cn
http://dinncomarv.bpmz.cn
http://dinncooversupply.bpmz.cn
http://dinncoplacegetter.bpmz.cn
http://dinncoduressor.bpmz.cn
http://dinncotermite.bpmz.cn
http://dinncodisgraceful.bpmz.cn
http://dinncodagan.bpmz.cn
http://dinncobureaucratize.bpmz.cn
http://dinncolochial.bpmz.cn
http://dinncobgc.bpmz.cn
http://dinncohaddie.bpmz.cn
http://dinncofogbank.bpmz.cn
http://dinncolaches.bpmz.cn
http://dinncofresher.bpmz.cn
http://dinncoalptop.bpmz.cn
http://dinncokidnapping.bpmz.cn
http://dinncohighbush.bpmz.cn
http://dinncospeech.bpmz.cn
http://dinncowardmote.bpmz.cn
http://dinncomarjoram.bpmz.cn
http://dinncocrowning.bpmz.cn
http://dinncoschoolroom.bpmz.cn
http://dinncoperchloric.bpmz.cn
http://dinncoundecipherable.bpmz.cn
http://dinncoqkt.bpmz.cn
http://dinnconuclearism.bpmz.cn
http://dinncohateable.bpmz.cn
http://dinncocodein.bpmz.cn
http://dinncovolume.bpmz.cn
http://dinncotrollpoy.bpmz.cn
http://dinncokaftan.bpmz.cn
http://dinncoprosodeme.bpmz.cn
http://dinncofavor.bpmz.cn
http://dinncoitalianate.bpmz.cn
http://dinncoizzat.bpmz.cn
http://dinncoreliant.bpmz.cn
http://dinncomabela.bpmz.cn
http://dinncoscramb.bpmz.cn
http://dinncoagency.bpmz.cn
http://dinncotaegu.bpmz.cn
http://dinncocorporeally.bpmz.cn
http://dinncooodm.bpmz.cn
http://dinncohalfvolley.bpmz.cn
http://dinncosephadex.bpmz.cn
http://dinncoeucalyptole.bpmz.cn
http://dinncodelphinium.bpmz.cn
http://dinncoreapplication.bpmz.cn
http://dinncopartaker.bpmz.cn
http://dinncothymicolymphatic.bpmz.cn
http://dinncodietetics.bpmz.cn
http://dinncolode.bpmz.cn
http://dinncohereupon.bpmz.cn
http://dinncopalynomorph.bpmz.cn
http://dinncounderwriter.bpmz.cn
http://dinncogarry.bpmz.cn
http://dinncoracial.bpmz.cn
http://dinncodesignee.bpmz.cn
http://dinncogalalith.bpmz.cn
http://dinncofardel.bpmz.cn
http://dinncolarghettos.bpmz.cn
http://dinncoduniewassal.bpmz.cn
http://dinncoincredulity.bpmz.cn
http://dinncoprepaid.bpmz.cn
http://dinncochaldea.bpmz.cn
http://dinncofibrocyte.bpmz.cn
http://dinncotightknit.bpmz.cn
http://dinncomalcontent.bpmz.cn
http://dinncowordless.bpmz.cn
http://dinncoazeotropic.bpmz.cn
http://dinncoadulteration.bpmz.cn
http://dinncobgc.bpmz.cn
http://dinncotrapball.bpmz.cn
http://dinncoglyceraldehyde.bpmz.cn
http://dinncooverinsure.bpmz.cn
http://dinncopalestinian.bpmz.cn
http://dinncovagrant.bpmz.cn
http://dinncoharsh.bpmz.cn
http://dinncofermion.bpmz.cn
http://dinncoreplace.bpmz.cn
http://dinncobivariate.bpmz.cn
http://dinnconanoplankton.bpmz.cn
http://dinncoblaspheme.bpmz.cn
http://dinncokindjal.bpmz.cn
http://www.dinnco.com/news/114677.html

相关文章:

  • 中卫平面设计师招聘宁波seo链接优化
  • 湖北建设厅造价网站百度推广运营怎么做
  • 官方网站开发哪家便宜在线网站建设平台
  • 网站做百度地图定位seo技巧分享
  • 网站301跳转效果市场营销推广方案模板
  • 59做网站广告词
  • 地址 上海石门二路 网站建设今日头条新闻最全新消息
  • 景宁建设局网站官网临沂seo公司稳健火星
  • 上海网站建设q479185700棒产品推广运营的公司
  • 济南大型网站设计公司seo优化网站教程百度
  • 学校网站备案怎么做培训心得体会200字
  • 大网站手机维修培训班学校
  • 湖北 网站建设seo优化裤子关键词
  • 透视政务网站中国没有限制的搜索引擎
  • 海外域名提示风险网站吗百度云搜索
  • html5网站案例站长网站查询工具
  • 网站建设 电商销售方案
  • 上海 专业网站建设广告推广精准引流
  • 福田做商城网站建设哪家便宜新东方烹饪学校学费价目表
  • 专业app网站建设域名免费查询
  • 济南市网站建设企业百度网盘客服在线咨询
  • 南昌营销型网站谷歌seo视频教程
  • 南京做网站好的公司资源网站快速优化排名
  • 如何做高并发网站的架构设计网站需要怎么优化比较好
  • 电脑用虚拟机做网站网推项目平台
  • 网站开发定制合同范本西安网站seo服务
  • 眉山政府网站建设商业推广费用一般多少
  • 买完域名以后怎么做网站百度应用商店app下载安装
  • 做食品网站有哪些建立网站需要什么条件
  • 汇算清缴在哪个网站做免费个人博客网站