就是我关闭IE以后,没有打印出相应的Session Destroyed!信息!

解决方案 »

  1.   

    要在web containter中设定session timeout的时间,
      

  2.   

    sessionDestroyed()方法发生在调用session.invalidate()或者session Timeout时,在web.xml中设,也可以在应用服务器的配置文件中设(如使用weblogic则可在weblogic.xml中设置)。
      

  3.   

    在web.xml中的web-app下加入
    <session-config>
    <session-timeout>2</session-timeout>
    </session-config>
    即可设定Timeout值为2分钟(设为0表示永不超时)。
    详细的配置请参考http://java.sun.com/dtd/web-app_2_3.dtd
      

  4.   

    接着问一下,按以上 Jass(Jass)的说法:
    在web.xml中的web-app下加入
    <session-config>
    <session-timeout>2</session-timeout>
    </session-config>
    即可设定Timeout值为2分钟(设为0表示永不超时)。请问:那session到底是保存在服务器呢?还是保存在客户端呢?或是其他的地方?
      

  5.   

    to: mimi_eleven(合子,我就是喜欢你。)
    session是保存在服务器端的,同时将session id写到客户端的cookie里边(如果客户端禁用cookie则会启用另一种方案),客户端在发送请求时会传递这个id给服务器。
      

  6.   

    to Jass:您的意思是不是:如果我把时间设置为2分钟,那么我在关闭ie两分钟以后才会看到Session Destroyed!!的提示啊?
      

  7.   

    to Jass:我按照你的方法,在web.xml下的web-app下加入
    <session-config>
    <session-timeout>2</session-timeout>
    </session-config>
    以后,启动tomcat服务,出现异常如下:严重: Parse Error at line 533 column 11: The content of element type "web-app" m
    ust match "(icon?,display-name?,description?,distributable?,context-param*,filte
    r*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapp
    ing*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,secu
    rity-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*
    )".
    org.xml.sax.SAXParseException: The content of element type "web-app" must match
    "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-
    mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welco
    me-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-const
    raint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
            at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Er
    rorHandlerWrapper.java:232)
      

  8.   

    好像各个Element的顺序是有要求的,
    你最好是按照icon?,display-name?,description?,distributable?,context-param*,filter*,filter-
    mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welco
    me-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-const
    raint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*
    的顺序,listener好像就必须放在filter-mapping的后面,servlet的前面,
    你把session-config放到servlet-mapping后面试试。
    下面是我的一个config,就没有问题:<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
      <filter>
        <filter-name>servlet2</filter-name>
        <filter-class>servletexam.Servlet2</filter-class>
      </filter>
      <filter>
        <filter-name>servlet3</filter-name>
        <filter-class>servletexam.Servlet3</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>servlet2</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      <filter-mapping>
        <filter-name>servlet3</filter-name>
        <servlet-name>servlet1</servlet-name>
      </filter-mapping>
      <listener>
        <listener-class>servletexam.MySessionListener</listener-class>
      </listener>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>servlet1</servlet-name>
        <servlet-class>servletexam.Servlet1</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>servlet1</servlet-name>
        <url-pattern>/servlet1</url-pattern>
      </servlet-mapping>
      <session-config>
        <session-timeout>1</session-timeout>
      </session-config>
      </web-app>
      

  9.   

    如果是这样,我是不是在关闭Ie两分钟以后,就应该能看到Session Destroyed!的提示?
      

  10.   

    我的A users coming !都能打印出来,但是Destroy就打印不出来.,
      

  11.   

    如果你是用tomcat的话:
    %TOMCAT_HOME%\conf\下还有一个web.xml,(这个文件是用于设置所有站点的defalt config的,tomcat会首先执行这个,然后在执行webapps\yourapp\WEB-INF\web.xml),tomcat的默认session-timeout值为30,你找到这个文件把其中的
    <session-config>
        <session-timeout>30</session-timeout>
      </session-config>