您的位置:首页 > 理论基础 > 计算机网络

HttpSessionListener, HttpSessionAttributeListener的用法及简单实例

2015-07-17 10:20 585 查看
通过实现HttpSessionListener,HttpSessionAttributeListener接口可以对Session的新建,修改,删除进行监听。

HttpSessionListener 接口有两个方法:

sessionCreated
//新建一个会话时候触发也可以说是客户端第一次和服务器交互时候触发
sessionDestroyed //销毁会话的时候 一般来说只有某个按钮触发进行销毁 或者配置定时销毁

HttpSessionAttributeListener有三个方法:

attributeAdded //向session添加值时调用

attributeRemoved //删除session中的值时调用

attributeReplaced //更新session中的值时调有

简单实例:

1. 新建监听类 HttpSessionListenerTest

package com.demo;

import javax.servlet.http.HttpSessionAttributeListener;

import javax.servlet.http.HttpSessionBindingEvent;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class HttpSessionListenerTest implements HttpSessionListener,HttpSessionAttributeListener {

@Override

public void sessionCreated(HttpSessionEvent arg0) {

// TODO Auto-generated method stub

System.out.println("创建Session");

}

@Override

public void sessionDestroyed(HttpSessionEvent arg0) {

// TODO Auto-generated method stub

System.out.println("销毁Session");

}

@Override

public void attributeAdded(HttpSessionBindingEvent arg0) {

// TODO Auto-generated method stub

System.out.println("添加");

}

@Override

public void attributeRemoved(HttpSessionBindingEvent arg0) {

// TODO Auto-generated method stub

System.out.println("删除");

}

@Override

public void attributeReplaced(HttpSessionBindingEvent arg0) {

// TODO Auto-generated method stub

System.out.println("更新");

}

}

2.新建servlet ServletSessionTest

package com.demo;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.catalina.Session;

/**

* Servlet implementation class ServletSessionTest

*/

public class ServletSessionTest extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public ServletSessionTest() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

String str = request.getParameter("id");

if(str.equals("1")){

request.getSession().setAttribute("aa", "sssss");

}else if(str.equals("2")){

request.getSession().setAttribute("bbb", "bbb");

}else if(str.equals("3")){

request.getSession().removeAttribute("bbb");

}else if(str.equals("4")){

request.getSession().invalidate();

}

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

}

}

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

<display-name>demo</display-name>

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file>default.html</welcome-file>

<welcome-file>default.htm</welcome-file>

<welcome-file>default.jsp</welcome-file>

</welcome-file-list>

<listener>

<listener-class>com.demo.HttpSessionListenerTest</listener-class>

</listener>

<servlet>

<description></description>

<display-name>ServletSessionTest</display-name>

<servlet-name>ServletSessionTest</servlet-name>

<servlet-class>com.demo.ServletSessionTest</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>ServletSessionTest</servlet-name>

<url-pattern>/ServletSessionTest</url-pattern>

</servlet-mapping>

</web-app>

3.启动tomcat发布服务

4.浏览器中访问 http://localhost:8080/demo/ServletSessionTest?id=1 ecplise控制台中打印:“创建Session 添加”

如果第二次访问 http://localhost:8080/demo/ServletSessionTest?id=1 ecplise控制台中打印:“ 更新”

第一次访问 http://localhost:8080/demo/ServletSessionTest?id=2 ecplise控制台中打印:“ 添加”

第一次访问 http://localhost:8080/demo/ServletSessionTest?id=3 ecplise控制台中打印:“ 删除”

第一次访问 http://localhost:8080/demo/ServletSessionTest?id=4 ecplise控制台中打印:“ 销毁Session 删除”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: