Jsp基础之session
2015-08-31 23:21
716 查看
session表示客户端与服务器的一次会话。web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间,从定义中可以看到,session实际上是一个特定的时间概念。
我们通过代码来了解session中的一些常用的方法:
创建一个jsp文件,就明名为 session_page1.jsp
session.getCreationTime()方法,其作用是获取session的创建时间
session.getId()f方法,返回session创建时JSP引擎为它设的唯一ID号
session.setAttribute("username", "admin")使用指定名称将对象绑定到此会话 相当于键值是“username” 值是“admin”
session.getAttribute("username") 方法是从Session中获取用户名
测试结果为:
Session创建时间:2015年08月31日 23:26:24
Session的ID编号:C42C36F8ADD3D795CFB268E00B5BA288
Session中获取用户名:admin
我们再次创建session_page2.jsp
首先我们再session_page1.jsp中写一个超链接 ,在body中添加
<a href="session_page2.jsp" target="_blank">跳转到Session_page2.jsp</a>
然后在session_page2.jsp中body中写入如下代码:
在上述代码中我们再次使用了 session.getId()f方法,获取到session唯一ID值,
也用session.getAttribute("username") 方法获取用户名
刷新session_page1.jsp页面 点击超链接,跳转到session_page2.jsp
可以看到测试结果为:
Session的ID编号:C42C36F8ADD3D795CFB268E00B5BA288
从Session中获取用户名:admin
Session中保存的属性有:password age username
说明在浏览器没有关闭之前,session 是用一个值,说明是同一个会话。
另外代码中的session.getValueNames()方法返回此session可用属性的数组,从测试结果中可以看到打印的属性。
还有一个方法:
设置当前session最大生成期限,单位是秒
session.setMaxInactiveInterval(10);//表示超过10秒钟后,session会销毁
当在session_page1.jsp中写入这个代码后,得到Session的ID编号:C42C36F8ADD3D795CFB268E00B5BA288
停留10秒钟后,点击超链接,到session_page2.jsp得到Session的ID编号85AE163BD29303B2B906823C310C99D7
说明创建了一个新的session。并且不能再获取到session中的属性,测试如下:
从Session中获取用户名:null
Session中保存的属性有:
session的生命周期:
1.通过超链接打开的页面属于同一次会话。
2.只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时,属于同一次会话。
3.本次会话的所有页面全都关闭的情况下,再重新访问某个JSp或Servlet时会创建新的会话(注意:原有的会话仍存在,但只是这个旧的sessionId仍存在于服务端,但再也没有客户端会携带它然后交予服务器端校验)
销毁:
session.invalidate();
设置超时时间,默认30分钟
我们通过代码来了解session中的一些常用的方法:
创建一个jsp文件,就明名为 session_page1.jsp
<span style="font-size:18px;"><body> <h1>session内置对象</h1> <hr> <% SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//设置日期格式 Date d = new Date(session.getCreationTime());// session的创建时间 session.setAttribute("username", "admin"); //使用指定名称将对象绑定到此会话 相当于键值是“username” 值是“admin” session.setAttribute("password", "123456"); session.setAttribute("age", 20); //设置当前session最大生成期限单位是秒 //session.setMaxInactiveInterval(10);//10秒钟 %> Session创建时间:<%=sdf.format(d)%><br> Session的ID编号:<%=session.getId()%><BR> //返回session创建时JSP引擎为它设的唯一ID号 从Session中获取用户名:<%=session.getAttribute("username") %><br></span>在body里面 我们调用了
session.getCreationTime()方法,其作用是获取session的创建时间
session.getId()f方法,返回session创建时JSP引擎为它设的唯一ID号
session.setAttribute("username", "admin")使用指定名称将对象绑定到此会话 相当于键值是“username” 值是“admin”
session.getAttribute("username") 方法是从Session中获取用户名
测试结果为:
Session创建时间:2015年08月31日 23:26:24
Session的ID编号:C42C36F8ADD3D795CFB268E00B5BA288
Session中获取用户名:admin
我们再次创建session_page2.jsp
首先我们再session_page1.jsp中写一个超链接 ,在body中添加
<a href="session_page2.jsp" target="_blank">跳转到Session_page2.jsp</a>
然后在session_page2.jsp中body中写入如下代码:
<span style="font-size:18px;"><body> <h1>session内置对象</h1> <hr> Session的ID编号:<%=session.getId()%><BR> 从Session中获取用户名:<%=session.getAttribute("username") %><br> Session中保存的属性有:<% String[] names =session.getValueNames();//返回此session可用属性的数组 for(int i=0;i<names.length;i++) { out.println(names[i]+" "); } %> <br> </body></span>
在上述代码中我们再次使用了 session.getId()f方法,获取到session唯一ID值,
也用session.getAttribute("username") 方法获取用户名
刷新session_page1.jsp页面 点击超链接,跳转到session_page2.jsp
可以看到测试结果为:
Session的ID编号:C42C36F8ADD3D795CFB268E00B5BA288
从Session中获取用户名:admin
Session中保存的属性有:password age username
说明在浏览器没有关闭之前,session 是用一个值,说明是同一个会话。
另外代码中的session.getValueNames()方法返回此session可用属性的数组,从测试结果中可以看到打印的属性。
还有一个方法:
设置当前session最大生成期限,单位是秒
session.setMaxInactiveInterval(10);//表示超过10秒钟后,session会销毁
当在session_page1.jsp中写入这个代码后,得到Session的ID编号:C42C36F8ADD3D795CFB268E00B5BA288
停留10秒钟后,点击超链接,到session_page2.jsp得到Session的ID编号85AE163BD29303B2B906823C310C99D7
说明创建了一个新的session。并且不能再获取到session中的属性,测试如下:
从Session中获取用户名:null
Session中保存的属性有:
session的生命周期:
1.通过超链接打开的页面属于同一次会话。
2.只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时,属于同一次会话。
3.本次会话的所有页面全都关闭的情况下,再重新访问某个JSp或Servlet时会创建新的会话(注意:原有的会话仍存在,但只是这个旧的sessionId仍存在于服务端,但再也没有客户端会携带它然后交予服务器端校验)
销毁:
session.invalidate();
设置超时时间,默认30分钟
相关文章推荐
- JavaScript常用标签和方法小总结
- JavaScript我学之八善变的this---函数执行上下文
- JavaScript之内置顶层函数
- 常用的正则表达式归纳—JavaScript正则表达式
- JSON 入门
- javascript学习总结(二):DOM常用方法。
- JSON是什么?
- 修复 Tween.JS 的 onStop 设置无效
- Javascript基础(一)
- JavaScript根据文件名判断文件类型
- javascript中函数作用域之”提升“
- javascript对象知识总结
- 【JS】测试:HTML页面引入另一个HTML页面,同名ID会冲突吗
- JavaScript根据文件名后缀判断是否图片文件
- JavaScript 动态删除/添加HTML表单元素(可以浏览本地文件)
- Jsp分页实例---真分页
- js中的一些问题
- js控制input文本框只能输入数字
- JavaScript排序
- JSONModel解析数据成Model