JSP1.JSP<html>
<head>
<title>使用session制作在线购物</title>
</head>
<body>
<form action="jsp2.jsp" method=post>
 <table border=1>
  <tr>
    <td>商品名:</td>
    <td>价格:</td>
    <td>输入数量</td>
  </tr>
  <tr>
    <td>商品1:</td>
    <td>1500</td>
    <td><input type="text" name=good1></td>
  </tr>
  <tr>
    <td>商品2:</td>
    <td>1500</td>
    <td><input type="text" name=good2></td>
  </tr>
  <tr>
    <td>商品3:</td>
    <td>1500</td>
    <td><input type="text" name=good3></td>
  </tr>
  <tr>
    <td>商品4:</td>
    <td>1500</td> 
    <td><input type="text" name=good4></td>
 </tr>
  <tr><td>商品5:</td>
  <td>1500</td><td>
  <input type="text" name=good5></td>
 </tr>
  <tr><td cospan=3 align=center>
    <input type="submit" value="确定">
    <input type="reset" value="重新输入"></td>
  </tr>
</table>
</form>
</body>
</html>JSP2.JSP
<html>
<head>
<title>在线购物</title>
</head>
<body>
<%@page import="java.util.*" %>
<% 
  String name,count;
  request.getSession(true);
  Enumeration goods=request.getParameterNames();
  while(goods.hasMoreElements())
  {
    name=(String)goods.nextElement();
    count=request.getParameter(name);
    session.putValue(name,count);
  }
  String sname[]=session.getValueNames();
  out.print("<font size=5 color=green>购买商品列表</font><p>");
  for(int i=0;i<sname.length;i++)
  {
    out.print(sname[i]+" =");
    out.print(session.getValue(sname[i])+"<br>");
  }
%>
</body>
</html> 问题1:while中 session.putValue(name,count);为什么count能多次放入name中?
问题2:最后我在商品数量都输入1后,显示
       购买商品列表
good4 =1
good5 =1
good2 =1
good3 =1
good1 =1为什么顺序会错乱呢?

解决方案 »

  1.   

    帮你顶吧,我也刚才接触jsp呵呵,从.net 转过来
      

  2.   

    1,session就象一个hashtable,是一个容器,里面可以储存很多很多元素。
    你的每个name和该name对应的count就是一组一组不同的元素。
    2,顺序没有乱,因为它就是按这个排序的。
      

  3.   

    第一个问题:name和value都是变量,具体值是在循环中取出的,分别对应的是表单提交上来的name和value,所以每次赋值的name和value都是不同的,因此count多次放入的name并不是同一个name,而是循环中当前取出的name,如果碰巧name相同,那就会被新count覆盖掉之前的count了第二个问题:这个我也说不好了,或许是因为存入和取出session都是寄存在内存中,而放置的时候并非是顺序排列的缘故吧,也就是说session并不是一种有序存储结构,不知道是不是应该这么理解期待高人解释第二个问题
      

  4.   

    谢谢楼上的各位,3楼如果懂得话,能不能告诉我session里是怎样对元素排序的啊?