Hello.

When

<c:set var="foo" value="bar" scope="application"/>
<% session.invalidate(); %>
The value of foo is: ${foo}

, Tomcat 5.0.16 throws following exception.

java.lang.IllegalStateException: getAttribute: ?????????????????
        org.apache.catalina.session.StandardSession.getAttribute
(StandardSession.java:985)
        org.apache.catalina.session.StandardSessionFacade.
getAttribute(StandardSessionFacade.java:156)
        org.apache.jasper.runtime.PageContextImpl.
doFindAttribute(PageContextImpl.java:514)
        org.apache.jasper.runtime.PageContextImpl.findAttribute
(PageContextImpl.java:499)
        org.apache.commons.el.VariableResolverImpl.
resolveVariable(VariableResolverImpl.java:157)
        org.apache.jasper.runtime.PageContextImpl.
resolveVariable(PageContextImpl.java:875)
        org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
        org.apache.commons.el.BinaryOperatorExpression.evaluate
(BinaryOperatorExpression.java:154)
        org.apache.commons.el.ExpressionEvaluatorImpl.evaluate
(ExpressionEvaluatorImpl.java:263)
        org.apache.commons.el.ExpressionEvaluatorImpl.evaluate
(ExpressionEvaluatorImpl.java:190)
        org.apache.jasper.runtime.PageContextImpl.
proprietaryEvaluate(PageContextImpl.java:941)
        org.apache.jsp.register_jsp._jspx_meth_c_if_1(register_
jsp.java:372)
        org.apache.jsp.register_jsp._jspService(register_jsp.java:120)
        org.apache.jasper.runtime.HttpJspBase.service
(HttpJspBase.java:133)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:311)
        org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:301)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.
java:248)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:
856)

The stack trace shows that,
org.apache.commons.el.VariableResolverImpl searches for the 
variable named "foo" in each of the scopes, even if the session 
is invalidated.

To avoid this problem,

<c:set var="foo" value="bar" scope="application"/>
<% session.invalidate(); %>
The value of foo is: ${applicationScope.foo}

.

But I don't like this manner.
Then, how can I invalidate session safely?
Any suggestion or any English correction helps me.

--
ASARI Takashi

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to