4.5.2 session对象
session 对象是用来记录每个用户的访问状态的,它是javax.servlet.http.HttpSession类的实例对象。服务器为每个用户都生成一个 session 对象,用于保存该用户的信息,跟踪用户的操作状态。当一个用户访问服务器时,可能会在服务器的多个页面之间不断访问,比如用户进行网上购物时,可能会浏览不同的页面,那么有了 session 对象,服务器就可以知道这是否是同一个用户的操作,不会把其他用户购物车中的内容放到自己的购物车中。
实际上,对于每一个session,服务器端都有一个s essionld 来标记它。当一个用户第一次访问服务器的某一个页面时,Web容器会产生一个 session 对象,同时分配一个 sessionld给用户,这样 session 对象就和用户之间建立起一 一对 应的关系。
以下是随堂练习(求圆面积)的分享:
package mypackage;
public class Area {
int r;
double area;
public int getR(){
return r;
}
public void setR(int r) {
this.r = r;
}
public double getArea() {
return 3.14*r*r;
}
public void setArea(double area) {
this.area = area;
}
}
<%@ page language="java" contentType="text/html; charset=gb2312"
%>
<%@ page import="mypackage.Area" %>
<jsp:useBean class="mypackage.Area" id="a1" scope="session"></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "" target="_blank">http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<body>
<%
a1.setR(3);
out.println("面积是"+a1.getArea()+"<br>");
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=gb2312"
%>
<%@ page import="mypackage.*" %>
<jsp:useBean class="mypackage.Area" id="a1" scope="session"></jsp:useBean>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "" target="_blank">http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<body>
<%
out.println("取到的面积是"+a1.getArea()+"<br>");
%>
</body>
</html>