千家信息网

JSP Session如何处理

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下JSP Session如何处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ASP程序员经常要在glob
千家信息网最后更新 2026年11月01日JSP Session如何处理

小编给大家分享一下JSP Session如何处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

ASP程序员经常要在global.asa文件内处理Application_start,Session_Start等

事件,如:用户验证、重定向不同编码页面等,十分方便,然而一向颇受欢迎的JSP并不很支持这种处理,除了商业化服务器JRun支持global.jsa以外,竟连应用率极高的开放源码服务器tomcat都不支持,这给JSP的开发造成不小障碍,虽然早期Tomcat(5.0以前版本)下可以通过以下方式实现Session-start事件处理

1. 添加Session

session.put("bind.listener",new MyListener(getservletContext())

2. 定义MyListener类

import Javax.servlet.http.*;

import javax.servlet.*;

public class MyListener implements HttpSessionBindingListener

{

ServletContext context;

public ODSessionListener(ServletContext context)

{

this.context=context;

}

public void valueBound(HttpSessionBindingEvent event)

{

System.out.println("bound");

}

public void valueUnBound(HttpSessionBindingEvent event)

{

System.out.println("unbound");

}

}

XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

但处理前提是Session已经建立,并且不能在Session创建时处理验证等事件,通过研究Servlet 2.4(Tomcat5.0内建)终于找到一种可行方法,实现方法如下:

//---------------------- SessionListener.java----------------------------------------------------

package listeners;

import javax.servlet.ServletContext;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.http.HttpSessionAttributeListener;

import javax.servlet.http.HttpSessionBindingEvent;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

// ServletRequestListener为Servlet2.4新增接口

import javax.servlet.ServletRequestListener;

import javax.servlet.ServletRequestEvent;

import javax.servlet.http.HttpServletRequest;

public final class SessionListener

implements HttpSessionListener,ServletRequestListener {

private HttpServletRequest request;

public void requestDestroyed(ServletRequestEvent sre) { }

public void requestInitialized(ServletRequestEvent sre)

{

request=(HttpServletRequest)sre.getServletRequest();

}

public void sessionCreated(HttpSessionEvent event) {

String logMsg=event.getSession().getId()

+"' '"+request.getRemoteAddr()

+":"+request.getRemotePort();

log("sessionCreated('" + logMsg + "')");

}

public void sessionDestroyed(HttpSessionEvent event) {

log("sessionDestroyed('" + event.getSession().getId() + "')");

}

private void log(String message) {

System.out.println("SessionListener: " + message);

}

}

在开始接到客户端请求(requestInitialized)时,获得当前的HttpRequest对象保存在私有成员 request 中,这样在Session创建时可以实现对Session用户进行验证,以及关闭Session,限制IP地址访问等,这里仅以记录Session来源为例(SessionListener.java)

编译这个类后还要在web.xml的host元素内加入以下行:

listeners.SessionListener

以上是"JSP Session如何处理"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

处理 事件 篇文章 支持 验证 内容 方法 服务器 用户 服务 不同 可行 不怎么 元素 前提 可以通过 商业 地址 大部分 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有格互联网科技 互联网金融公司科技 互联网 的科技创新 杭州互联网科技公司 北京互联网络科技有限公司 壹账通互联网科技 广西互联网科技公司 左右互联网络科技 宁波青枫互联网科技有限公司 随着互联网科技发展 宝灵互联网科技有限公司 恒生互联网科技指数跳水 深圳市优智互联网科技有限公司 卓翼科技产业互联网合作 中科明德北京互联网科技 互联网方面的科技前沿 广州百诚互联网科技有限公司官网 富国互联网科技002692 青岛互联网科技园 北京瑞云互联网科技有限公司 互联网科技有限公司 金融科技与互联网金融 安控科技rtu产品工业互联网 科技与互联网的利与弊 栖莱科技互联网股份有限公司 互联网和黑科技的看法 昊天互联网科技有限公司 链环科技传统企业怎么转型互联网 朱啸虎曾投资哪些互联网科技企业 国大互联网教育科技有限公司薪资
0