session内置对象监听器

本文介绍了如何在Java Servlet中使用HttpSessionListener和HttpSessionAttributeListener监听器来跟踪session的创建、销毁以及属性的增删改。通过在web.xml配置监听器,可以观察到session生命周期中的关键事件,例如在访问JSP页面时会触发session创建。示例代码展示了如何在session中添加、删除属性,并打印相关信息。
摘要由CSDN通过智能技术生成
监听状态

接口:javax.servlet.http.HttpSessionListener

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
		//创建session
		req.getSession();
		System.out.println("访问了servlet方法");
	}
package com.biubiu.listener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionListener implements HttpSessionListener{
	@Override
	public void sessionCreated(HttpSessionEvent se) {
		System.out.println("创建了session对象:"+se.getSession().getId());
	}
	@Override
	public void sessionDestroyed(HttpSessionEvent se) {
		System.out.println("销毁了session对象:"+se.getSession().getId());	
	}

}

<listener>
		<listener-class>com.biubiu.listener.SessionListener</listener-class>
	</listener>
属性监听
package com.biubiu.listener;

import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;

public class SessionAttributeListener implements HttpSessionAttributeListener{

	@Override
	public void attributeAdded(HttpSessionBindingEvent event) {
		System.out.println("session增加的属性"+event.getName()+":"+event.getValue());
		
	}

	@Override
	public void attributeRemoved(HttpSessionBindingEvent event) {
		System.out.println("session删除的属性"+event.getName()+":"+event.getValue());
		
	}

	@Override
	public void attributeReplaced(HttpSessionBindingEvent event) {
		System.out.println("session替换的属性"+event.getName()+":"+event.getValue());
		
	}

}

@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
		//创建session
		HttpSession session = req.getSession();
		session.setAttribute("name", "jack");
		session.setAttribute("name", "李四");
		session.removeAttribute("name");
	}
<listener>
		<listener-class>com.biubiu.listener.SessionAttributeListener</listener-class>
	</listener>

问题:在访问jsp页面的为什么会触发sessionCreate方法
在访问JSP页面时候会将jsp页面转换成一个特殊的Servlet,先将其转换成为对应的.*java掩码,之后将原码编译成对应的class文件,之后返回给浏览器之前被解释为html代码给浏览器解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值