jsp销毁session(销毁session的函数是)
jsp中的session怎么销毁?
嗨,伤心了,Session的创建和销毁不是说过吗?当客户端发出第一个请求时(不管是被访问网站的任何页面)就会在此站点的服务其中开辟一块内存空间,这块内存就是session,session的销毁有两种方式,一种是session过期时间已到,会自动销毁(注意这里不是马上就会销毁,具体销毁时间由Tomcat容器所决定)。在我们项目中的web.xml中就可以配置:
session-config
session-timeout30/session-timeout
/session-config
表示设置session过期时间为30分钟。值得注意的就是上面说的即使30分钟到了session不一定会马上销毁,可以通过session监听器测试得到每次session销毁的时间都不一样。如果要想安全的话就用下面第二种方法。在Tomcat的conf文件夹中的web.xml中可以找到Tomcat默认的session过期时间为30分钟。如果我们在我们的站点中配置了session过期时间Tomcat容器会以站点配置为主,如果我们没有在站点中配置session过期时间,将会以Tomcat下conf文件夹下的web.xml文件中配置的session过期时间为准。
第二种销毁方式通过手工方式销毁,这种销毁方式会立刻释放服务器端session的资源,我们手动销毁可以通过session().invalidate();实现。
JSP中怎样关闭登陆用户的session
JSP中可以通过session的invalidate()方法销毁session。
具体用法是在满足条件的语句下写:
sesssion.invalidate();
解释说明:
session.invalidate()是销毁跟用户关联session,例如有的用户强制关闭浏览器,而跟踪用户的信息的session还存在,可是用户已经离开了。
虽然session
生命周期浏览默认时间30分,但是在30分钟内别的用户还可以访问到前一个用户的页面,需销毁用户的session。
jsp注销session问题
因为session.invalidate()方法是java的代码,是在生成你的静态页面之前就执行了的,因此不会等待用户点页面的超连接时再执行。
如果要完成这种功能,可以点连接跳转到一个单独的页面,在这个页面里加入这句代码就行了。
注意用% session.invalidate(); %
求教,jsp中session对象使用完之后需要手动销毁吗?
不需要手动销毁,他会自动销毁的,但你关闭浏览器并不会因为会话结束而销毁session,每个session都有一个自己的id,你关闭浏览器只是丢失了这个id与你浏览器的连接,不信你可以自己创建session之后把tomcat或者jboss关闭看看,session文件还是可以找到的。
jsp关闭浏览器时,如何清空session
jsp关闭浏览器时,清空session的方式如下:
function window.onUnload()
{
var newWindow;
if((window.screenLeft=10000 window.screenTop=10000)||event.altKey)
{ newWindow=window.open('destorys.jsp','网页名称','width=0,height=0,top=4000,left=4000');//新窗口将在视区之外打开 newWindow.opener=null; sleep(5000); newWindow.close();//新窗口关闭 }
}
function sleep(milisecond)
{ var currentDate,beginDate=new Date(); var beginHour,beginMinute,beginSecond,beginMs; var hourGaps,minuteGaps,secondGaps,msGaps,gaps; beginHour=beginDate.getHours(); beginMinute=beginDate.getMinutes(); beginSecond=beginDate.getSeconds(); beginMs=beginDate.getMilliseconds(); do { currentDate=new Date(); hourGaps=currentDate.getHours() - beginHour; minuteGaps=currentDate.getMinutes() - beginMinute; secondGaps=currentDate.getSeconds() - beginSecond; msGaps=currentDate.getMilliseconds() - beginMs; if(hourGaps0) hourGaps+=24; //考虑进时进分进秒的特殊情况 gaps=hourGaps*3600+ minuteGaps*60+ secondGaps; gaps=gaps*1000+msGaps; }while(gapsmilisecond); }
其中红色部分为你指向清除session的JSp页面。
如下:
%@ page contentType="text/html; charset=GBK" % %@ page language="java" import="java.lang.*"% jsp:useBean id="login" scope="page" class="com.util.Login"/ % session.removeAttribute("username"); session.removeAttribute("userid"); session.removeAttribute("power"); session.removeAttribute("flag"); %
这样,在每个后台页面引用一个这个JS,就可以实现了。