session.invalidate

时间:2024-04-30 19:45:04编辑:莆田seo君

JSP 页面跳转保存session 但页面关闭时清除session

要页面跳转保留session,那么在页面就不要有
session.invalidate();除非你页面上有判断语句,比如说
可是你想页面关闭时清除session c标签又不是触发事件才执行,它是后台过来就直接执行的
所以:
页面关闭的时候让session从后台关闭,然后跳到初始化页面就行了,也就是说关闭页面的时候在后台调用session.invalidate();然后重新跳转到初始化页面。


Session.Abandon和Session.Clear有何不同

  Session.Clear()就是把Session对象中的所有项目都删除了,

  Session对象里面啥都没有。但是Session对象还保留。
  Session.Abandon()就是把当前Session对象删除了,下一次就是新的Session了。

  主要的不同之处在于当使用Session.Abandon时,会调用Session_End方法(InProc模式下)。当下一个请

  求到来时将激发Session_Start方法。而Session.Clear只是清除Session中的所有数据并不会中止该

  Session,因此也不会调用那些方法。


jsp为什么我的首页一刷新就会有新的session产生?

jsp刷新有新的session是因为浏览器的cookie发生了变化,导致无法跟之前创建的session保持一致性导致的。
jsp中对应的cookie操作:

HttpCookie cookie = new HttpCookie("userName");
cookie.Value = userName;
cookie.Expires = DateTime.Now.AddHours(2);
Response.Cookies.Add(cookie);

第一行:创建一个HttpCookie对象,然后构造函数 给个cookie名称
第二行:给这个cookie赋值---->因为cookie是以键值对存储的 ex:userName = “admin”
第三行:设置此cookie的失效时间,此值是一个具体的失效时间datetime类型 上面是设置两个小时后失效
第四行:将cookie写到cookie中。
注意:
1. 因为Cookice是存储在客户端的数据,如果有敏感的数据必须在服务端加密后然后在保存
2. Cookice在客户端有两种保存形式:(1)保存在硬盘上(设置了cookice的失效时间的情况下) (2)保存在内存中(在没有设置cookice的失效时间的情况下)
3. 如果服务端的cookice和客户端已有的cookice重名则会覆盖原有的cookice
4. 如果要想清除某个cookice的话可是设置它的失效时间小于当前的日期即可cookie.Expires = DateTime.Now.AddDays(-1);


Java中HttpSession的invalidate()的问题

该方法用于 主要用于注销 调用该方法 会清空所有已定义的session 而不是清空全部session的值
也就是说 定义了一个名为 user 的session 调用invalidate()方法后使用Session.getValue(“user”)。会发生Session.getValue(“user”) 这个对象为空的异常,而不是Session.getValue(“user”)这个对象的值为空。因为该方法清空了内存中所有的session对象。


如何在关闭网页时,自动清空session

清除SESSION需要动态网页支持,直接JS操作Session需要借助Ajax
大致思路:
在而面body中增加unload方法
借助jquery,




function(){}
function goodbye()
{
$.post("action.php",{time:Math.random()},function(){}
}

在goodbye()方法中使用ajax,请求动态网页(php,asp,aspx,jsp等)进行清除Session操作。


为什么session会很快过期

有四种修改方式可以设置session的有效期限。你可以看下,应该是哪个地方设置的时间太短了,所以就过期了。1、操作系统:
  步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟)。确定即可。
  2、ASP.NET应用程序中Session过期时间的设置
  在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。在ASP.NET中如何设置Session的过期时间呢,很简单,修改web.config配置。
  具体修改方法如下,在web.config中进行如下配置
  
  
  
  在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。
  3、在调用Session的cs页中,Load事件里面写以下
  Session.Timeout = 30;
  4、Store session in asp.net state service
  看一下,看你的程序是用到了哪种设置方式,把时间改成你需要的时间就可以了。


怎么判断session是否过期

1、实现HttpSessionListener接口,然后在sessionDestroyed()方法中执行一些操作,表示session要过期了,因为这个方法是session.invalidate()之前监听器调用的方法。这个判断的方法显然不能让人满意。2、request.getSeesion(boolean)方法。这个方法参数boolean,这个值如果是true,那么如果当前的request的session不可用,那么就创建新的会话,如果存在就返回当前的会话。如果参数是false,那么在request的当前会话不存在的时候就返回null。这个所谓的request的当前会话是否存在和session过期的联系,可以“近似地”认为session不存在就是session过期了,那么我们就可以很容易地判断session是否过期了。方法如下:if(request.getSession(false)==null) System.out.println("Session has been invalidated!");else System.out.println("Session is active!");不知是否有存在特别情况。这个特殊情况就是第一次请求还没有创建会话的时候,那么用这个方法返回的仍然是null。 3、在session中保存特殊的字段来判断这个session是否过期


如何在 Java 中创建 session

1、 HttpSession session = ServletActionContext.getRequest().getSession(); //创建
2、 ActionContext.getContext().getSession().put("msg", "Hello World from Session!"); //存
session.setAttribute("softtypeid", softtypeid); //存
获取 if(session.getAttribute("softtypeid")!=null){
if(!softtypeid.equals(session.getAttribute("softtypeid")))
pager_offset=1; //如果不是同一种分类,返回是第一页
}
3、
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();

HttpSession session = request.getSession(); //创建


java中servlet中怎么用session

什么意思,如果servlet中用session 那么,HttpSession session=request.getSession(); request请求得到回话sessionsession.setAttribute(String arg, Object obj);在session会话中放一个键-值对 ,键为String类型的arg , 值为 Object类型(任意类型) obj session.getAttribute(String arg), 从session中取 值,通过键arg--》得到值 在详细就查看servlet的API 帮助文档

上一篇:in your eyes歌词

下一篇:know-how