请问如何得知session失效?

luj999 2004-09-22 12:22:32
请问如何得知session失效?
...全文
335 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
shangqiao 2004-09-25
  • 打赏
  • 举报
回复
在sessionCreated中将和该用户相关的信息存入application范围中,如
String sessionId=session.getSessionId();
getServletContext().setAttribute(sessionId,Boolean("true");
当session失效时,将
getServletContext().setAttribute(sessionId,null);

通过检测查看servletContext中的值不就可以得到该sessionID对应的session是否失效了吗
108041217 2004-09-24
  • 打赏
  • 举报
回复
djwsunjava(天天在工作,天天在偷懒)的方法
与你的问题无关,它是使session矢效
你要的是怎样判断它矢效了.
我用我的代码是不会出错的,你其他地方错了吧.
「已注销」 2004-09-23
  • 打赏
  • 举报
回复
select Name from SysConfig
Close DB
select * from onlineuser where lastdate='null'
Close DB
StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception
java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.jsp.zbgl$jsp._jspService(zbgl$jsp.java:132)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)
「已注销」 2004-09-23
  • 打赏
  • 举报
回复
108041217(金箔)

我最开始就用的这种方法!!

一直报错!

所以我才寻求别的方法!

djwsunjava(天天在工作,天天在偷懒)的方法我不会用,请指导一下。。。。
「已注销」 2004-09-23
  • 打赏
  • 举报
回复
u............p..............

up up up
108041217 2004-09-22
  • 打赏
  • 举报
回复

session.setAttribute("username","EmployeeID")


在其他jsp中加
<%
if(session.getAttribute("username") != null)
{

%>


「已注销」 2004-09-22
  • 打赏
  • 举报
回复
u............p..............

up up up
「已注销」 2004-09-22
  • 打赏
  • 举报
回复
怎么能把我的结合到一块?
「已注销」 2004-09-22
  • 打赏
  • 举报
回复
但是我不会用class看不懂她写的什么。。。。。

请指点。。。。
闷头挣钱 2004-09-22
  • 打赏
  • 举报
回复
djwsunjava(天天在工作,天天在偷懒)
正解
「已注销」 2004-09-22
  • 打赏
  • 举报
回复
up up
「已注销」 2004-09-22
  • 打赏
  • 举报
回复
<% if (session.getAttribute("t")=="") {%>
<script language="javascript">{window.alert('session失效!注销后请重新登录');
window.parent.location.href="default.htm";}
</script>
<%
}
else {
newDBAccess aaa = new newDBAccess(DBCONNSTRING, DBUSER, DBPWD);
String a="select * from onlineuser where lastdate='"+session.getAttribute("t")+"'";
java.sql.ResultSet aa=aaa.executeSelect(a);
if (aa.next()){}
else {%>
<script language="javascript">{window.alert('其他人注销该帐号!请重新登录');
window.parent.location.href="default.htm";}
</script>
<%}
aaa.CloseDB();
aaa=null;
}
%>
出错哦~
「已注销」 2004-09-22
  • 打赏
  • 举报
回复
session都失效了还怎么获得变量?!
session一失效,jsp要调用session的值就出错!空指针
djwsunjava 2004-09-22
  • 打赏
  • 举报
回复
不好意思,看错了,你必须实现HttpSessionBindingListener接口,session调用invalidate()或超时时将会调用valueUnbound方法

import javax.servlet.http.*;
import java.util.*;

public class AAAA implements HttpSessionBindingListener{
public synchronized void valueBound(HttpSessionBindingEvent event)
{

}

public synchronized void valueUnbound(HttpSessionBindingEvent event)
{
}
}
treeroot 2004-09-22
  • 打赏
  • 举报
回复
要考虑 shangqiao(伤桥)说的问题
有可能和第一次混淆,通过获得session中的变量是可以的
djwsunjava 2004-09-22
  • 打赏
  • 举报
回复
session.invalidate();方法
「已注销」 2004-09-22
  • 打赏
  • 举报
回复
shangqiao(伤桥)
请问“你可以在HttpSessionListener的sessionCreated和sessionDestroyed方法里面设定一个值就可以了”这些方法怎么用?
「已注销」 2004-09-22
  • 打赏
  • 举报
回复
ymm(紫外线)
我现在用的就是这个方法,但是不成,显示空指针!
ymm 2004-09-22
  • 打赏
  • 举报
回复
你可以对你的程序再封装一下,比如说在开始的时候加入一个什么值,然后以后验证这个值有没有就知道了
shangqiao 2004-09-22
  • 打赏
  • 举报
回复
你可以在HttpSessionListener的sessionCreated和sessionDestroyed方法里面设定一个值就可以了,假如使用session.isNew()的话容易和第一次生成的Sesison混淆
加载更多回复(4)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧