精华内容
下载资源
问答
  • 解决myeclipse2014无发新建Filter和listener
  • MyEclipse中新建一个listener

    千次阅读 2014-04-14 21:47:34
    必须在web.xml中配置 包名.类名 project才会在执行时,自动执行该listener

    必须在web.xml中配置

    <listener>

    <listener-class>包名.类名</listener-class>

    </listener>

    project才会在执行时,自动执行该listener。

    展开全文
  • springboot listener使用配置

    万次阅读 2017-07-31 10:57:06
    一 ,springboot使用listener有两种方式一种是通过ServletListenerRegistrationBean代码注册,一种是...新建listener类 选择实现的listener接口 这里选择用ServletContextListener 代码如下 package com.kerry.listen

    一 ,springboot使用listener有两种方式一种是通过ServletListenerRegistrationBean代码注册,一种是通过注解@WebListener

    1  @WebListener方式

    需要在主程序Applicaiton上开启 @ServletComponentScan

    新建listener类 选择实现的listener接口


    这里选择用ServletContextListener 代码如下

    package com.kerry.listener;
    
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import javax.servlet.annotation.WebListener;
    
    /**
     * Application Lifecycle Listener implementation class MyServletContextListener
     *
     */
    /**
     * 通过  @WebListener 或者 使用代码注册  ServletListenerRegistrationBean
     * @author Administrator
     *
     */
    @WebListener
    public class MyServletContextListener implements ServletContextListener {
    
    	@Override
    	public void contextInitialized(ServletContextEvent sce) {
    		System.out.println(sce.getServletContext().getServletContextName()+" init");
    		
    	}
    
    	@Override
    	public void contextDestroyed(ServletContextEvent sce) {
    		System.out.println(sce.getServletContext().getServletContextName()+" destroy");
    		
    	}
    }
    


    2,通过ServletListenerRegistrationBean代码注册

    以HttpSessionListener示例

    package com.kerry.listener;
    
    import javax.servlet.annotation.WebListener;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    
    /**
     * Application Lifecycle Listener implementation class MyHttpSessionListener
     * 通过  @WebListener 或者 使用代码注册  ServletListenerRegistrationBean
     */
    public class MyHttpSessionListener implements HttpSessionListener {
    
        /**
         * Default constructor. 
         */
        public MyHttpSessionListener() {
            // TODO Auto-generated constructor stub
        }
    
    	/**
         * @see HttpSessionListener#sessionCreated(HttpSessionEvent)
         */
        public void sessionCreated(HttpSessionEvent se)  { 
             System.out.println(se.getSession().getId()+" session create");
        }
    
    	/**
         * @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
         */
        public void sessionDestroyed(HttpSessionEvent se)  { 
             System.out.println(se.getSession().getId()+" session destroy");
        }
    	
    }
    


    ListenerConfigure类

    package com.kerry.configure;
    
    import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import com.kerry.listener.MyHttpSessionListener;
    
    
    
    @Configuration
    public class ListenerConfigure {
    	
    	@Bean
    	public ServletListenerRegistrationBean<MyHttpSessionListener> serssionListenerBean(){
    		ServletListenerRegistrationBean<MyHttpSessionListener> 
    		sessionListener = new ServletListenerRegistrationBean<MyHttpSessionListener>(new MyHttpSessionListener());
    		return sessionListener;
    	}
    	
    	
    //	@Bean
    //	public ServletListenerRegistrationBean<MyServletContextListener> servletContextListenerBean(){
    //		ServletListenerRegistrationBean<MyServletContextListener> 
    //		sessionListener = new ServletListenerRegistrationBean<MyServletContextListener>(new MyServletContextListener());
    //		return sessionListener;
    //	}
    
    }


    附上项目代码结构:


    展开全文
  • 监听器创建2.1 方法1:新建Listener2.2 方法2:新建class,实现需要的监听器接口,并实现方法。手动添加@WebListener注解3. 常用监听器3.1 第一类:监听 “域对象” 创建 和 销毁3.1.1 ServletContextListener3.1.2 ...

    监听器 Listener

    1. 监听器简述

    在实际生活着,我们很多商场有摄像头,监视着客户的一举一动。如果客户有违法行为,商场可以采取相应的措施。同样,在我们的java程序中,有时也需要监视某些事情,一旦被监视的对象发生相应的变化,我们应该采取相应的操作。这就需要用到java中的监听器。
    web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特定事件,比如:ServletContext,HttpSession,ServletRequest的创建和销毁等。可以在某些动作前后增加处理,实现监控。

    2.监听器创建

    2.1 方法1:新建Listener

    在这里插入图片描述
    在这里插入图片描述

    2.2 方法2:新建class,实现需要的监听器接口,并实现方法。手动添加@WebListener注解

    3. 常用监听器

    在这里插入图片描述

    3.1 第一类:监听 “域对象” 创建 和 销毁

    3.1.1 ServletContextListener

    监听ServletContext域对象的创建和销毁:
    创建:服务器开启
    销毁:服务器关闭

    @WebListener
    public class MyServletContextListener implements ServletContextListener {
    
        public void contextDestroyed(ServletContextEvent sce)  { 
             // contextServlet域对象 销毁
        	System.out.println("ContextServlet对象销毁了。。。");
        }
    
        public void contextInitialized(ServletContextEvent sce)  { 
             // contextServlet域对象 初始化
        	System.out.println("ContextServlet对象初始化。。。");
        }
    }
    

    3.1.2 HttpSessionListener

    监听HttpSession域对象的创建和销毁
    创建:第一次执行req.getSession()
    销毁: 执行 session.invalidate();或过期后自动销毁。

    @WebListener
    public class MyHttpSessionListener implements HttpSessionListener{
    	@Override
    	public void sessionCreated(HttpSessionEvent se) {
    		// TODO Auto-generated method stub
    		System.out.println("某个Session对象被创建了。。。");
    	}
    
    	@Override
    	public void sessionDestroyed(HttpSessionEvent se) {
    		// TODO Auto-generated method stub
    		System.out.println("某个Session对象销毁了。。。");
    	}
    }
    测试:servlet代码:
    HttpSession session = request.getSession();
    session.invalidate();
    

    3.1.3 ServletRequestListener

    监听HttpServeltRequest的创建和销毁:
    创建:请求过来时
    销毁:响应结束后

    @WebListener
    public class MyRequestListener implements ServletRequestListener {
        public void requestDestroyed(ServletRequestEvent sre)  { 
           System.out.println("request对象被销毁了");
        }
        public void requestInitialized(ServletRequestEvent sre)  { 
        	 System.out.println("request对象被创建了");
        }
    }
    

    3.2 第二类:监听 “域对象属性” 创建、修改、删除

    3.2.1 ServletContextAttributeListener

    监听ServletContext域对象中的属性变更

    @WebListener
    public class MyServletContextAttributeListener implements ServletContextAttributeListener{
    	@Override
    	public void attributeAdded(ServletContextAttributeEvent scae) {
    		System.out.println("ServletContext域对象中属性 添加");
    	}
    	@Override
    	public void attributeRemoved(ServletContextAttributeEvent scae) {
    		System.out.println("ServletContext域对象中属性 删除");
    	}
    	@Override
    	public void attributeReplaced(ServletContextAttributeEvent scae) {
    		System.out.println("ServletContext域对象中属性 修改");
    	}
    }
    	测试:servlet代码:
    		ServletContext context = req.getServletContext();
    		context.setAttribute("NAME", "jack");// context添加属性
    		context.setAttribute("NAME", "tom");// context修改属性
    		context.removeAttribute("NAME");// context删除属性
    

    3.2.2 HttpSessionAttributeListener

    监听HttpSession域对象中的属性变更

    @WebListener
    public class MyHttpSessionAttributeListener implements HttpSessionAttributeListener {
    	public void attributeAdded(HttpSessionBindingEvent se) {
    		System.out.println("HttpSession属性 添加");
    	}
    
    	public void attributeRemoved(HttpSessionBindingEvent se) {
    		System.out.println("HttpSession属性 删除");
    	}
    
    	public void attributeReplaced(HttpSessionBindingEvent se) {
    		System.out.println("HttpSession属性 修改");
    	}
    }
    
    	测试:Servlet代码
    		HttpSession session = req.getSession();// 创建
    		session.setAttribute("NAME", "jack");// session添加属性
    		session.setAttribute("NAME", "tom");// session修改属性
    		session.removeAttribute("NAME");// session删除属性
    		session.invalidate();//销毁
    

    3.2.3 ServletRequestAttributeListener

    监听HttpServletRequest域对象中的属性变更

    @WebListener
    public class MyServletRequestAttributeListener implements ServletRequestAttributeListener {
    
    	public void attributeRemoved(ServletRequestAttributeEvent srae) {
    		System.out.println("HttpServletRequest域对象属性 -删除");
    	}
    
    	public void attributeAdded(ServletRequestAttributeEvent srae) {
    		System.out.println("HttpServletRequest域对象属性 -添加");
    	}
    
    	public void attributeReplaced(ServletRequestAttributeEvent srae) {
    		System.out.println("HttpServletRequest域对象属性 -修改");
    	}
    }
    
    	测试:servlet代码
    		req.setAttribute("NAME", "jack");
    		req.setAttribute("NAME", "tom");
    		req.removeAttribute("NAME");
    

    3.3 第三类:监听session中的特殊javaBean状态的改变

    注意:这类监听器:在JavaBean中实现监听器接口,并实现方法。不需要@WebListener注解

    3.3.1 HttpSessionBindingListener

    监听Session域对象属性中 JavaBean的绑定和解绑。

    • 绑定:将JavaBean对象添加到Session域对象属性中
    • 解绑:将绑定JavaBean的域对象属性,修改成非本Bean数据,或删除该属性。
    public class Person implements HttpSessionBindingListener{
    	private String name;
    	
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	@Override
    	public void valueBound(HttpSessionBindingEvent event) {
    		System.out.println("Person对象被【绑定】到了Session域对象属性中");
    	}
    
    	@Override
    	public void valueUnbound(HttpSessionBindingEvent event) {
    		System.out.println("Person对象从Session域对象属性中 【解绑】");
    	}
    }
    
    	测试:servlet代码
    		HttpSession session = req.getSession();// 创建
    		session.setAttribute("Person", new Person());// session添加属性
    		session.setAttribute("Person", "tom");// session修改属性; 修改和删除都算解绑
    		session.removeAttribute("Person");// session删除属性
    		session.invalidate();//销毁
    
    

    3.3.2 HttpSessionActivationListener

    监听Session域中JavaBean的活化和钝化
    前提:必须将JavaBean保存到Session域对象属性中。且JavaBean必须实现可序列化接口Serializable

    • 钝化:序列化(将内存中的数据保存在硬盘上):将session对象序列化到tomcat/work目录中 的SESSION.ser文件。正常关闭服务器。

    • 活化:反序列化(将硬盘上的数据加载到内存中):将SESSION.ser文件反序列化成Session对象。开启服务器,且session没过期

    public class Dog implements Serializable,HttpSessionActivationListener{
    	private String dname;
    	public String getDname() {
    		return dname;
    	}
    	public void setDname(String dname) {
    		this.dname = dname;
    	}
    	@Override
    	public void sessionWillPassivate(HttpSessionEvent se) {
    		System.out.println("Dog对象钝化了:"+getDname());
    	}
    	public void sessionDidActivate(HttpSessionEvent se) {
    		System.out.println("Dog对象活化了:"+getDname());
    	}
    }
    
    测试:servlet代码。然后关闭服务器,再开启,看日志
    		HttpSession session = req.getSession();// 创建
    		Dog dog = new Dog();
    		dog.setDname("小白");
    		session.setAttribute("dog", dog);
    
    展开全文
  • 问题现象: 原因是idea工程没有正确识别web项目下java代码目录 修改: 修改iml文件 修改为你的java代码路径 如果没有就添加一个节点 大概位置

    问题现象:在这里插入图片描述
    原因是idea工程没有正确识别web项目下java代码目录
    修改:
    在这里插入图片描述
    修改iml文件

    修改为你的java代码路径 如果没有就添加一个节点
    在这里插入图片描述
    大概位置
    在这里插入图片描述

    展开全文
  • 问题: IDEA创建maven_web工程后,在包里不能新建Servlet、Filter、Listener文件,如图: 解决办法: 最终结果:
  • ApplicationListener

    千次阅读 2019-02-21 22:50:37
    一般来说,一个我们新建一个项目,在启动时就需要初始化一些东西的(比如数据库的数据,一个对象,或者是某些配置)。并且使用ApplicationListener后可以拿到spring容器,功能是异常强大,好用。 二、使用 ...
  • 出现该问题的根本原因是idea与...Failed to notify build listener 或者 参考:https://blog.csdn.net/Evan_L/article/details/87368075 可知安装的idea与gradle应该匹配的版本号的关系; 比如我本地的ide...
  • 我的调试背景是在接收某个sensor的数据的时候,新建一个listener 的节点 接收, 无论是单独启动listener 还是一起启动两个节点,都会出现 ERROR: cannot launch node of type [listener/listener]: can't locate ...
  • springboot集成listener

    2020-06-23 07:31:39
    新建一个listener @Component public class MyListener implements ServletRequestListener { @Override public void requestDestroyed(ServletRequestEvent sre) { System.out.println("MyListener destroy......
  • 如何开发Presto Listener

    2020-01-09 18:17:42
    新建2个类,分别实现EventListenerFactory和EventListener 自定义一个Plugin,实现com.facebook.presto.spi.Plugin,重写getEventListenerFactories,返回自定义EventListenerFactory的实例 在resources目录下新建...
  • dorado listener属性

    2014-07-30 17:40:00
    每一个控件都有一个listener属性,可以用来定位一个服务定位表达式,通过这个表达式, 它最终可以映射为spring里面一个javaBean的一个java方法 例如设置DynaView1.view.xml里边的按钮button1的...然后新建DynaV...
  • Listener监听器详解

    千次阅读 2020-08-05 20:01:48
    ServletContextListener 监听ServletContext对象的创建和销毁 ...例子,新建一个类,实现ServletContextListener,重写方法 package com.lingaolu.listener; import javax.servlet.ServletContextEven...
  • Spring Boot项目整合Listener 新建一个简单的spring boot的web项目 方式一: 方式二:
  • C# TcpListener TcpClient

    2019-12-10 15:15:51
    C# TcpListener TcpClient 使用,新建从控制台项目,引用System.Net 代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; //...
  • 首先新建一个listener监听类,该类可以实现
  • ApplicationEvent和ApplicationListener一般都是配合使用 ... 新建一个ApplicationListener的子类 public class MyApplicationEvent extends ApplicationEvent { public MyApplicationEvent(Object sour...
  • 学习java web中的listener

    2018-07-13 14:37:00
    web.xml里的顺序为:context-...监听器是需要新建一个类,然后按监听的对象继承:ServletContext、HttpSession、ServletRequest中的一个 监听ServletContext生命周期的Listener //ServletContext lifecycle...
  • servlet监听器Listener

    2020-06-02 20:59:45
    @TOC 监听的作用 ...1、新建一个MyServlet类,继承ServletContextListener 2、重写contextInitialized()和contextDestroyed()方法 package jndi; import javax.servlet.ServletContextEvent; im
  • servlet listener 用法

    2010-05-08 14:50:35
    这个用法是针对...新建一个类:   import javax.servlet.ServletContextListener; import ejbModule.common.EJB3Factory; import ejbModule.operation.terminal.AdaptationModelMgr; public cla...
  • Listener实现单态登陆

    2016-12-28 17:05:00
    MyEclipse中新建Web Project项目,完整目录如下: 需要的jar包为commons-logging-xxx.jar 1、singleton.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&...
  • 新建一个监听器实现ServletContextListener接口 覆写contextDestroyed和contextInitialized 方法 package listener;import java.util.Timer;import javax.servlet.ServletContextEvent;import javax.servlet.Se...
  • Tomcat启动报Error listenerStart错误 学习了:http://xpenxpen.iteye.com/blog/1545648 可以在WEB-INF/classes目录下新建一个文件叫logging.properties, handlers = org.apache.juli.FileHandler, java.util....
  • servlet5 filter、listener

    2020-12-23 23:06:34
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223213102203.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_...  直接复制新建 servlet 工程 的方式。   复制一个 serv.
  • Listener(监听器)

    2020-08-02 22:46:12
    JavaWEB中的监听器主要监听JavaWEB中的request、session、ServletContext对象的各种变化。 尽量不要定义全局变量,全局...1、新建一个普通java类实现以下接口。 2、在web.xml文件中注册监听器类 ServletRequestListener
  • Tomcat报的错太含糊了,什么错都没报出来,只提示了Error listenerStart。为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下    Java代码  handlers...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 439
精华内容 175
关键字:

新建listener