您的位置:首页 > 理论基础 > 计算机网络

HttpSession的创建于Session释放

2014-02-10 21:47 309 查看

session与cookie的区别和联系

cookies是在客户端保存的变量
session是在服务器端保存的变量
cookies可以自行设置cookies的存在周期
session关闭浏览器就失效了


Session的创建

首先你需要导入javax.servlet.http这个包,对应的jar文件是servlet-api.jar,在此基础上调用该包里面的HttpSession就能实例化session了,这里有关于这个包里面的参数和方法的介绍,是oracle官方的

HttpSession session = ServletActionContext.getRequest().getSession(); //创建
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; //如果不是同一种分类,返回是第一页
}

HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();

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


用Java使内存中的Session释放相关

1,Java中request.getSession().invalidate(); 是使客户端对应的整个Session失效,里面所有东西都清空了,同时释放内存资源,注意如果

同一客户端另一种浏览器中的Session不受影响【session是跟浏览器种类有关的,不同种浏览器中的session相互独立】;
上面这个功能结合登陆用户的某个属性,如用户 ID 等,可以实现同一账号同一时间只能在一个地方登陆的功能;
//例如:
request.getSession().invalidate(); //把当前客户端在服务器端对应的整个session失效


2,request.getSession().remove(); 是把session中不需要的变量清空,同时释放其所占的内存空间,而没有把整个session清空;

//例如:
request.getSession().removeAttribute("xName"); //仅清空session中名称为xName的变量值,整个session其它不受影响;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: