现在有一个办法可以让关闭浏览的时候就,就让它释放内存空间。
看了EE文档发现,有一个叫做“invalidate”的方法,HttpSession对象去调用这个方法也就销毁了HttpSession的实例
public ActionForwardexecute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession(false);
if (session!=null) {
session.invalidate();
System.out.println("session.invalidate()---session已经销毁");
}
returnnull;//这个地方是禁止使用finnForward()这个方法的,因为如果使用这个方法,Struts就又创建了一个HttpSession对象了,或者是写成response.sendRedirect();,反正就是不能转交给Struts的动作ActionServlet
}
下面就是,我针对的是窗口操作,要关闭窗口,就是说如何让某一个东西来触发这个方法,可以在页面的body标签里面加入一个onunload属性,也就是说当我把窗口关闭时,会触发一些函数,就让这个函数类调用Action。
下面是js的代码。 if (navigator.appName == "Netscape"){
if ((windows.innerWidth<0)&&(windows.innerHeight<0)){
newWindow = window.open("invalidateSession.do",null,"height=10,widt[]h=10");
newWindow.close();
}
} else if (navigator.appName == "Microsoft Internet Explorer"){
if((window.event.clientX<0)&&(window.event.clientY<0)) {
newWindow= window.open("invalidateSession.do",null,"height=10,width=10");
![销毁session struts2以什么为核心](http://img.aihuau.com/images/01111101/01112149t0114381159662e7144.png)
newWindow.close();
}
}
最后把这个代码贴到function中,在body中加载这个函数就行了