jsp内置对象之-session对象

付费节点推荐


免费节点


节点使用教程


session对象

  • session对象是一个JSP内置对象。
  • session对象在第一个JSP页面被装载时自动创建,完成回话期管理。
  • session生命周期从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束被称为一个会话。
  • 当一个客户访问一个服务器时,可能在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。
  • session对象时HttpSession类的实例。

session的工作原理如下:

  • 客户首次访问服务器的一个页面时,服务器就会为该用户分配一个session对象,同时为这个session指定唯一的ID,并且将该ID发送到客户端并写入到cookie中,使得客户端与服务器的session建立一一对应的关系。
  • 当客户端继续访问服务器端的其它资源时,服务器不再为该客户分配新的session对象,直到客户端浏览器关闭、超时或调用session的invalidate()方法使其失效,客户端与服务器的会话结束。
  • 当客户重新打开浏览器访问网站时,服务器会重新为客户分配一个session对象,并重新分配sessionID。

session对象常用方法:

  • long getCreationTime() : 返回SESSION创建时间。
  • public String getId() : 返回SESSION创建时JSP引擎为它设的唯一ID号
  • public Object setAttribute(String name,Object value):使用指定名称将对象绑定到此会话。
  • public Object getAttribute(String name):返回与此会话中的指定名称绑定一起的对象,如果没有对象绑定在该名称下,则返回null
  • String [] getValueNames():返回一个包含此SESSION中所有可用属性的数组
  • int getMaxInactiveInterval():返回两次请求间隔多久时间此SESSION被取消(单位秒)

 session.jsp

<%@page import="java.util.*" %>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>session内置对象</title>
</head>
<body>
<h1>session 内置对象</h1>
<hr>
<%
SimpleDateFormat time=new SimpleDateFormat("YYY:MM:dd -- HH:mm:ss");
Date d=new Date(session.getCreationTime());
session.setAttribute("username", "wangzheng");
%>
会话创建时间:<%=time.format(d) %><br>
会话的ID编号:<%=session.getId() %><br>
会话中获取用户名:<%=session.getAttribute("username") %><br>
<a href="session2.jsp" target="_blank">跳转到session2.jsp,测试会话</a>

</body>
</html>

session2.jsp

<%@page import="java.util.*" %>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>session内置对象</title>
</head>
<body>
<h1>session 内置对象</h1>
<hr>
<%
SimpleDateFormat time=new SimpleDateFormat("YYY:MM:dd -- HH:mm:ss");
Date d=new Date(session.getCreationTime());

%>
session创建时间:<%=time.format(d) %><br>
session的ID编号:<%=session.getId() %><br>
session中获取用户名:<%=session.getAttribute("username") %><br>

</body>
</html>


结果分析:session.jsp和session2.jsp中session ID一样,session2.jsp获取到了session.jsp中的用户名。说明两个页面在同一会话中。

session

//设置当前session最大生成期限单位为秒。

<%
session.setMaxInactiveInterval(10);
%>

//getValueNames()获取session中保存的属性。

session中保存的属性有:<%

String [] names=session.getValueNames();
for(String s:names)
{
out.println(s+"&nbsp;&nbsp;");
}

%>

Session生命周期

    创建:

  • 当客户端第一次访问某个Servlet时候,服务器会为当前会话创建一个Session Id,每次客户端向服务器发送请求时,都会将此Session Id携带过去,服务端会对此Session Id进行校验。

    活动:

  • 某次会话中通过超链接打开的新页面属于同一次会话。
  • 只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话。
  • 除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话。
    • 销毁:(3种方法)

    • 1.调用session.invalidate()方法
    • 2.Session过期(超时)
    • 3.服务器重新启动。

未经允许不得转载:Bcoder资源网 » jsp内置对象之-session对象

相关推荐

赞 (1)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册
  1. Coder.Bing[img=http://bcoder.clbug.com/wp-content/themes/qqoq3.0/img/smilies/25.gif]