JSP常⽤内置对象——session对象
1.session对象定义
session对象⽤于储存特定的⽤户会话所需的信息。当⽤户在应⽤程序的Web页之间跳转时,储存在sesion对象中的变量将不会丢失,⽽是在整个⽤户会话中⼀直存在。
当⽤户请求来⾃应⽤程序的Web页时,如果该⽤户还没有会话,则Web服务器将⾃动创建⼀个session对象。当会话过期或被放弃后,服务器将终⽌该会话。
具体解释为:
session对象⽤来保存每个⽤户的信息,以便跟踪每个⽤户的操作状态。其中,session信息保存在容器⾥,session的ID 保存在客户计算机的Cookie中。⽤户⾸次登⼊系统时容器会给⽤户分配⼀个位于⼀个的session id标识⽤于区别其他的⽤户。当⽤户退出系统时,这个session就会⾃动消失。
当⼀个⽤户⾸次访问服务器上的⼀个JSP页⾯时,JSP引擎产⽣⼀个session对象,同时分配⼀个String类型的ID号,JSP 引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和⽤户之间就建⽴了⼀⼀对应的关系。当⽤户再访问连接该服务器的其他页⾯时,不再分配给⽤户新的session对象。直到关闭浏览器后,服务器端该⽤户的session对象才取消,和⽤户的对应关系也⼀并消失。当重新打开
浏览器再连接到该服务器时,服务器会为该⽤户再创建⼀个新的session对象。
2.session对象常⽤的⽅法
(1)setAttribute(String name,java.lang.Object value):⽤于设定指定名字的属性值,并且
(2)getAttribute(String name):⽤于获取与指定名字相联系的属性,如果属性不存在,将会返回null;
(3)getAttributeNames():⽤于返回session对象中储存的每⼀个属性对象,结果集是⼀个Enumeration类的实例;
(4)removeAttribute(String name):⽤于删除指定的属性(包含属性名、属性值)。如果在有效时间内,⽤户做出新的请求,那么服务器就会将其看作⼀个新的⽤户,此时,服务器将创建⼀个新的session,旧的session信息将会丢失;
3.session对象应⽤实例
(1)实现获取页⾯的访问次数
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int number=1000;
//从session对象获取number
Object Attribute("number");
if(obj==null){
//设置session对象的变量值
session.setAttribute("number",String.valueOf(number));
//String.valueOf(number)是将number转化成String字符串类型jsp创建
}else{
//取得session对象中的number变量
number=Integer.String());
//Integer.parseInt()是把()⾥的内容转换成整数。
//String()是将obj对象转化为⼀个字符串并返回结果。
//统计页⾯访问次数
number+=1;
//设定session对象的number变量值
session.setAttribute("number",String.valueOf(number));
}
%>
你是第<%=number %>个⽤户访问本⽹站
</body>
</html>
对应结果的图⽚为
不断刷新获得的结果为
(2)session综合⽅法实例
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<hr>
session的创建时间是:<%=CreationTime() %> 
<%=new CreationTime()) %>
<br>
session的Id号:<%=Id()%>
<br>
客户最近⼀次访问时间是:<%=LastAccessedTime() %> 
<%=new java.sql.LastAccessedTime()) %>
<br>
<%=MaxInactiveInterval() %>
<br>
是否新创建的session:<%=session.isNew()?"是":"否" %>
<hr>
<%
session.setAttribute("name","星⽕天涯");
session.setAttribute("password","666666");
%>
姓名:<%=Attribute("name") %>
<br>
密码:<%=Attribute("password") %>
<br>
ID号:<%=Id() %>
<br>
<%
session.setMaxInactiveInterval(500);
%>
最⼤有效时间:<%=MaxInactiveInterval() %>
<br>
<%
%>
姓名:<%=Attribute("name") %>
<hr>
</body>
</html>
对应的结果图⽚为
刷新获得的结果为
(3)模拟⽹上购物,建⽴登⼊页⾯——login.jsp,购物页⾯——shop.jsp,结账页⾯——account.jsp 登⼊页⾯——login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登⼊页⾯</title>
</head>
<body>
<%
session.setAttribute("customer","客户");
//为customer变量传值“客户”
%>
<h3>请先登⼊后购物:</h3>
<hr>
<form action="shop.jsp" method="get">
客户名:<input type="text" name="loginName">
<input type="submit" value="提交">
</form>
</body>
</html>
对应图⽚为
购物页⾯——shop.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>购物页⾯</title>
</head>
<body>
<%
String Parameter("loginName");
session.setAttribute("name",na);
%>
<h3>请输⼊想购买的商品:</h3>
<hr>
<form action="account.jsp" method="get">
要购买的商品:<input type="text" name="goodsName">
<input type="submit" value="购物">
</form>
</body>
</html>
对应图⽚为
结账页⾯——account.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>结账</title>
</head>
<body>
<%
String Parameter("goodsName");
session.setAttribute("goods",gn);
String 客户=(Attribute("customer");
String 姓名=(Attribute("name");
String 商品=(Attribute("goods");
%>
<h3>结账信息:</h3>
<hr>
<%=客户 %>的姓名是:<%=姓名 %>
<br>
你购买的是商品是:<%=商品 %>
</body>
</html>
对应的结果图⽚为

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。