网站链接: 环球农商网
当前位置: 首页 > 资讯动态  > 平台资讯

JSP Session处理

2019/3/24 8:18:11 人评论


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”);

        }

}

 

但处理前提是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)

相关资讯

  • document.cookie:客户端操作cookie

    我们已经知道,在 document 对象中有一个 cookie 属性。但是 Cookie 又是什么?“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。”—— MSIE 帮助。一般来说,Cookies 是 CGI 或类似,比 HTML …

    2019/4/12 8:18:11
  • 用ASP实现分级权限控制

    本文实现的是一个帐务管理系统中分级权限的控制,程序使用ASP和JavaScript编写,在装有IIS4.0的win NT服务器上运行,速度快,易维护。  权限级别划分如下:  ①、院长和财务科长:不能输入,可以无限制查询、统计;  ②、副院长:不能输入,可以查询、统计其分管部…

    2019/4/12 8:18:11
  • ASP实现Rewrite模拟生成静态页效

    以前刚刚懂404.asp的时候,曾经幻想把所有程序代码写到404.asp中,实现一个模拟生成静态网页的站,如果程序小还可以,用404.asp实现Rewrite还是一个不错的选择,如果程序代码多达100000行,恐怕就要开始爬了  直到看到asp的Server.Transfer,用404模拟生成静态页的站的念…

    2019/4/12 8:18:11
  • ASP随机涵数生成100条8位字母和数字混合密码

    <%for i = 1 to 100%><%Randomizepass=""Do While Len(pass)<8 随机密码位数num1=CStr(Chr((57-48)*rnd+48)) 0~9num2=CStr(Chr((122-97)*rnd+97)) a~zpass=pass&num1&num2loop原创:www.devdao.com%><%=pass%><br><%next…

    2019/4/12 8:18:11

共有条评论 网友评论

验证码: 看不清楚?