servlet监听器Listener

监听的作用

监听一些对象、启动销毁、属性的改变等

如何创建以及销毁监听器

接口ServletContextListener

contextInitialized、contextDestroyed

创建监听器

1、新建一个MyServlet类,继承ServletContextListener
2、重写contextInitialized()和contextDestroyed()方法

package jndi;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyServlet implements ServletContextListener {

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		
		System.out.println("context init");
		
	}
	
	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		System.out.println("context destroy");
	}
}

此时启动servlet,发现报错ame [jy17] is not bound in this Context. Unable to find [jy17].
原因:没有配置
可以在web.xml文件里配置,包名.类名

  <listener>
  <listener-class>jndi.MyServlet</listener-class>
  </listener>

控制台会输出你在方法里写的代码
在这里插入图片描述

监听会话

1、创建一个类MySession,继承HttpSessionListener
2、创建sessionCreated()、sessionDestroyed()方法
3、配置文件,可以直接在本页面添加注释配置
@WebListener
导入这个包javax.servlet.annotation.WebListener;

package jndi;

import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener()
public class MySessionListener implements HttpSessionListener {

	@Override
	public void sessionCreated(HttpSessionEvent se) {
		System.out.println("session create");
	}
	
	@Override
	public void sessionDestroyed(HttpSessionEvent se) {
		System.out.println("session destory");
	}
	
}

4、去创建一个会话request.getSession().setAttribute("xxx", "xxx");
5、重启服务器,浏览器访问会话
在这里插入图片描述
6、设置会话访问时间

HttpSession session=request.getSession(true);
session.setMaxInactiveInterval(100);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值