session挂掉以后,会响应什么事件吗? 项目提这样一个要求:session挂掉以后,系统会弹出一个对话框,提示要重新登录,怎么做?思路怎样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 session挂掉以后,系统会弹出一个对话框无解! 就是sessionout时间设置一下,然后建立一个错误页面,当程序判断session过期后,跳转,弹出信息 每打开一个页面,在onload里面计时,如果超过了session的过期时间,就跳转到登陆页面。这样可以不? 创建监听器 public class session监听器 extends HttpListener{public void sessionCreated(){}public void sessionDestory(){}}web.xml中<listener>xxxxx</listener> 咦,2楼怎么不见了?session死掉后会触发sessionDestory事件,你可以用拦截器拦截用户的操作,去查下当前用户的session是否还存在,不存在就返回到登录页面。 不行,你这样还要打开页面才能判断,我要的效果是,即使不进行任何操作,session挂掉后(比如说session超时),会自动弹出提示。 就相当于,点击退出登陆,清空sessiong,返回登陆页面不就可以了吗?每个jsp判断session为空则提示框框,返回登陆页面~~~ <script type="text/javascript" language="javascript">var enterTime = 0;window.onload=new function(){ // 每一秒钟调用一次 setInterval("redirect()", 1000);}function redirect(){ var nowTime = new Date().getTime(); if((nowTime - enterTime) >= "<%=session.getMaxInactiveInterval()%>"*1000){ window.location.href="<%=request.getContextPath()%>/login.jsp"; } enterTime = nowTime;}</script>把这块js代码加到页面上,就能够实现,session过期,跳转到login.jsp public void sessionCreated(){ 将用户名和Session保存在Application中}public void sessionDestory(){ 将用户在Application中干掉!}在页面,每5秒使用Ajax访问服务端的某个Action后面带上用户名,在这个Action根据传递过来的用户在Application中找是不是有对于的值,没有则返回“请重新登录”,否则返回“正常”,在Ajax的JS代码中判断一下就可以实现了,简单吧?简单就给分分吧!PS:Ajax每次访问的时间间隔不要太短,否则人多了服务器受不了啊! LZ,如果考虑性能情况下,可以在做某个操作的时候去判断一下session 是否有效,然后再做出相应的提示之类的。不要用实时调用查看! goldenfish1919的思路很好,学习了!!把压力放到客户端比较好 楼主可以设置个定时器,定时检测session是否存在,不存在则弹出窗口! hibernate保存数据优化问题 帮忙介绍一个好点的免费空间 这是什么错误!在线等!急!! 上传文件解析为二进制流问题 数据同步问题 [Hibernate]Hibernate两表,多表如何关联? 请教关于jdbc查询的问题 用过openjms的朋友请进,问一个对我来说比较紧急的问题 有用过Apache XML-RPC 1.2版本的高人吗?在线等待 spring mvc里面有没有像Struts2一样的属性驱动或者模型驱动 大家帮我看一下这段QBC的查询有问题吗?为什么一段时间后服务器就崩了,无法再进行查询。。 各路大牛门谁有xmlspy2006的注册码!给一个呀,急用!
public class session监听器 extends HttpListener
{
public void sessionCreated()
{
}
public void sessionDestory()
{
}
}web.xml中
<listener>
xxxxx
</listener>
session死掉后会触发sessionDestory事件,你可以用拦截器拦截用户的操作,去查下当前用户的session是否还存在,不存在就返回到登录页面。
每个jsp判断session为空则提示框框,返回登陆页面~~~
<script type="text/javascript" language="javascript">
var enterTime = 0;
window.onload=new function(){
// 每一秒钟调用一次
setInterval("redirect()", 1000);
}
function redirect(){
var nowTime = new Date().getTime();
if((nowTime - enterTime) >= "<%=session.getMaxInactiveInterval()%>"*1000){
window.location.href="<%=request.getContextPath()%>/login.jsp";
}
enterTime = nowTime;
}
</script>
把这块js代码加到页面上,就能够实现,session过期,跳转到login.jsp
{
将用户名和Session保存在Application中
}
public void sessionDestory()
{
将用户在Application中干掉!
}在页面,每5秒使用Ajax访问服务端的某个Action后面带上用户名,在这个Action根据传递过来的用户在Application中找是不是有对于的值,没有则返回“请重新登录”,否则返回“正常”,在Ajax的JS代码中判断一下就可以实现了,简单吧?简单就给分分吧!PS:Ajax每次访问的时间间隔不要太短,否则人多了服务器受不了啊!
LZ,如果考虑性能情况下,可以在做某个操作的时候去判断一下session 是否有效,然后再做出相应的提示之类的。不要用实时调用查看!