IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 44session绑定解绑、钝化活化 -> 正文阅读

[Java知识库]44session绑定解绑、钝化活化

BeanListener监听绑定或者解绑

HttpSessionActivationListener,Serializable 监听钝化活化

?Serializable接口拿来实现获取session里面的数据

就是说你活化就是将内存放到硬盘

而活化就是从你的硬盘里面的sesion文件数据读取出来

1.创建一个BeanaListener监听session类

?2.创建一个jsp页面来引用session看看第一次和第二次session绑定和解绑的地址有什么差别

首先:

因为服务器只给你客户分配一个sessionid

所以sessionid的值不会变

但是因为第二次是重新new 了新的session对象 ,因此对象的地址(this)就肯定和第一次不一样

?运行结果:

BeanListener

package org.student.listener;

import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;

public class BeanListener ?implements HttpSessionBindingListener{

?? ?@Override
?? ?public void valueBound(HttpSessionBindingEvent event) {
?? ??? ?System.out.println("绑定:Bean对象 (将Bean对象加入到session域) "+this+", session id:"+event.getSession().getId());
?? ?}

?? ?@Override
?? ?public void valueUnbound(HttpSessionBindingEvent event) {
?? ??? ?System.out.println("解绑Bean对象:(将Bean对象从session域中移出)"+this+", session id:"+event.getSession().getId());
?? ?}

}
?

binding.jsp

<%@page import="org.student.listener.BeanListener"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
? ? pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
?? ?BeanListener bean=new BeanListener();
?? ?session.setAttribute("bean", bean);//绑定
?? ?
%>

</body>
</html>

1.?E:\Tomcat\apache-tomcat-9.0.44\conf\context.xml配置?2.创建BeanListener2

?3.write.jsp

?4.read.jsp

运行结果:

先写write

关闭tomcat

再读read

read.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
? ? pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

从硬盘中读取session域中的对象(活化):<br/>
num:${sessionScope.bean.num }<br/>
user:${sessionScope.bean.user }<br/>


</body>
</html>

write.jsp

<%@page import="org.student.listener.BeanListener2"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
? ? pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
?? ??? ?<%
?? ??? ?
?? ??? ?BeanListener2 bean=new BeanListener2();
?? ??? ?bean.setNum(10);
?? ??? ?bean.setUser("sjd");
?? ??? ?session.setAttribute("bean", bean);
?? ??? ?
?? ??? ?%>
</body>
</html>

BeanListener2

package org.student.listener;

import java.io.Serializable;

import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;

public class BeanListener2 ?implements HttpSessionActivationListener,Serializable{
?? ?private int num;
?? ?private String user;
?? ?public int getNum() {
?? ??? ?return num;
?? ?}

?? ?public void setNum(int num) {
?? ??? ?this.num = num;
?? ?}

?? ?public String getUser() {
?? ??? ?return user;
?? ?}

?? ?public void setUser(String user) {
?? ??? ?this.user = user;
?? ?}

?? ?//即将进行钝化之前Will 内存到硬盘
?? ?@Override
?? ?public void sessionWillPassivate(HttpSessionEvent se) {
?? ?System.out.println("即将钝化之前,BeanListener2对象随着session钝化而钝化");
?? ?}
?? ?
?? ?//在进行活化之后Did 硬盘到内存
?? ?@Override
?? ?public void sessionDidActivate(HttpSessionEvent se) {
?? ?System.out.println("进行活化之后,BeanListener2对象随着session活化而活化");
?? ?}

}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:44:42  更:2021-07-14 10:45:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 21:30:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码