由于http协议是一种无状态的协议,服务器在下一次连接时不保存之前的信息。

  当一个客户首次访问服务器上的一个JSP 页面时,JSP 引擎产生一个secssion 对象,当用户关闭了浏览器后,session对象也被取消。

  常用方法

  (1) public void setAttribute(String key ,Object obj)

session对象类似于散列表,session对象可以调用该方法将参数Object指定的对象obj

添加到session 对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对

象的关键字相同,则先前添加的对象被清除。

(2) public Object getAttibue(String key)

获取session 对象含有的关键字是key 的对象。由于任何对象都可以添加到session 对

象中,因此用该方法取回对象时,应强制转化为原来的类型。

 

  实例:购物车

buy1.jsp(买肉界面)

body>
<%
   if(request.getParameter("c1")!=null){
   session.setAttribute("s1",request.getParameter("c1"));
   }
if(request.getParameter("c2")!=null){
   session.setAttribute("s2",request.getParameter("c2"));
}
if(request.getParameter("c3")!=null){
   session.setAttribute("s3",request.getParameter("c3"));
}
%>
<form action="buy1.jsp" method="post">
<p><input type="checkbox" name="c1" value="猪肉">猪肉</p>
<p><input type="checkbox" name="c2" value="羊肉">羊肉</p>
<p><input type="checkbox" name="c3" value="狗肉">狗肉</p>
<p><input type="submit" name="b1" value="提交"></p>
<p><input type="reset" name="b2" value="全部重写">
<a href="buy2.jsp">买点别的</a>
<a href="display.jsp">查看购物车</a></p>
</form>
 
</body>
 
buy2.jsp(卖球界面)
 
<body>
<%
if (request.getParameter("b1") != null ){
session.setAttribute("s4", request.getParameter("b1")); 
}
if (request.getParameter("b2") != null ){
session.setAttribute("s5", request.getParameter("b2")); 
}
if (request.getParameter("b3") != null ){
session.setAttribute("s6", request.getParameter("b3")); 
}
%>
各种球大甩卖,一律八块:
<form method="POST" action="buy2.jsp">
  <p><input type="checkbox" name="b1" value="篮球">篮球</p>
  <p><input type="checkbox" name="b2" value="足球">足球</p>
  <p><input type="checkbox" name="b3" value="排球">排球</p>
  <p><input type="submit" value="提交" name="x1">
  <input type="reset" value="全部重写" name="B2">
<a href="buy1.jsp">买点别的</a>
<a href="display.jsp">查看购物车</a>
  </P>
</FORM>
 
</body>
 
 
display。jsp(购物车界面)
 
<body>
你选择的结果是: <center>
<% 
 String str="";
if(session.getAttribute("s1")!=null){
str=(String)session.getAttribute("s1");<!--Object转为string-->
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b,"GB2312");<!--避免乱码-->
out.println(str);
}
if(session.getAttribute("s2")!=null){
str=(String)session.getAttribute("s2");
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b,"GB2312");
out.println(str);
}
if(session.getAttribute("s3")!=null){
str=(String)session.getAttribute("s3");
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b,"GB2312");
out.println(str);
}
if(session.getAttribute("s4")!=null){
str=(String)session.getAttribute("s4");
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b,"GB2312");
out.println(str);
}
if(session.getAttribute("s5")!=null){
str=(String)session.getAttribute("s5");
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b,"GB2312");
out.println(str);
}
if(session.getAttribute("s6")!=null){
str=(String)session.getAttribute("s6");
byte b[]=str.getBytes("ISO-8859-1");
str=new String(b,"GB2312");
out.println(str);
}
%>
 
</body>