我是装的netbean,自带了tomcat。那这个session文件存储的默认目录是哪里呢?
怎么改呢?还有一个取值问题。有两个jsp页面,一个是产生随机数的,一个是测试session的,放在同一目录运行
//index.jsp
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.awt.List,java.lang.Integer"%>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
        <script type="text/javascript" src="./rc/js/dhtml.inc.js"></script>
        <title>GTNT</title>
    </head>
    <body><jsp:useBean id="image" scope="page" class="myBean.ImageEnsure"/> 
<%
   /*
HttpSession session1 = request.getSession();
out.println(session1.getId()+"<br>");   
 */
 
  /*
   //判断跳转
String admin = (String)session.getAttribute("login");
  if(admin==null||admin.equals("")){ 
  // out.println("<script type='text/JavaScript'>\n window.location='login.jsp';\n window.close();</script>");
   //两中页面转换的方法
    response.sendRedirect("login.jsp");
  } 
  */
   
    //request.getParameter()
   if(session.isNew())
   {
       session.setMaxInactiveInterval(5);
       session.setAttribute("login","true");
       out.println("session is new<br>");
   }           
   
String str=";";
//String str=image.getEnsure(0,0,response.getOutputStream()); 
session.setAttribute("strEnsure",str); out.println("此次产生的sessionId为:"+session.getId());
out.println("<br>session的过期时间为:"+Integer.toString(session.getMaxInactiveInterval())+"秒");
out.println("<br>session.strEnsure:"+session.getAttribute("strEnsure")+"<br>");
   List list = (List)session.getAttribute("GoodsList");
  String basestr="zhoupeng";
  if (list == null)
  {
    list = new List();
    
  }
  if(list.getItemCount()==0)
      list.add(basestr+Integer.toString(list.getItemCount()+1));
  else
      list.add(basestr+Integer.toString(list.getItemCount()+1));
  
  session.setAttribute("GoodsList",list); 
  
  list = (List)session.getAttribute("GoodsList");
  
  out.println("list.getItemCount:"+list.getItemCount());
  
  out.println("<br>");
  for(int i=0;i<list.getItemCount();i++)
  {
       out.println(list.getItem(i));
      out.println("<br>");
  }       
    
%>    
   <img src="randImage.jsp">
     
     
     <%  
      out.print("<br>randimage:"+(String)session.getAttribute("rand"));
        
  //注销session
   //session.invalidate();
%>
     
    </body>
</html>//randImage.jsp页面
<%@page pageEncoding="UTF-8"%>
<%@page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
    //给定范围获得随机颜色
    Color getRandColor(int fc,int bc){
        Random random = new Random();
        if(fc>255) fc=255;
        if(bc>255) bc=255;
        int r=fc+random.nextInt(bc-fc);
        int g=fc+random.nextInt(bc-fc);
        int b=fc+random.nextInt(bc-fc);
        return new Color(r,g,b);
    }
    //随机取的字符库数组
    char mapTable[]={ 
        'A','B','C','D','E','F', 
        'G','H','I','J','K','L', 
        'M','N','O','P','Q','R', 
        'S','T','U','V','W','X', 
        'Y','Z','0','1','2','3', 
        '4','5','6','7','8','9'
    }; 
    
%>
<%
    //设置页面不缓存
    response.setHeader("Pragma","No-cache");
    response.setHeader("Cache-Control","no-cache");
    response.setDateHeader("Expires", 0);    //在内存中创建图象
    int width=60, height=20;
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);    //获取图形上下文
    Graphics g = image.getGraphics();    //生成随机类
    Random random = new Random();    //设定背景色
    g.setColor(getRandColor(200,250));
    g.fillRect(0, 0, width, height);    //设定字体
    g.setFont(new Font("Times New Roman",Font.PLAIN,18));    //画边框
    g.setColor(getRandColor(100,250));
    g.drawRect(0,0,width-1,height-1);    //随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
    g.setColor(getRandColor(160,200));
    for (int i=0;i<155;i++) {
        int x = random.nextInt(width);
        int y = random.nextInt(height);
        int xl = random.nextInt(12);
        int yl = random.nextInt(12);
        g.drawLine(x,y,x+xl,y+yl);
    }    //取随机产生的认证码(4位数字)
    String sRand="";
    for (int i=0;i<4;i++){
        String rand=String.valueOf(random.nextInt(10));
        sRand+=rand;
        //将认证码显示到图象中
        //调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
        g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
        g.drawString(rand,13*i+6,16);
    }    //将认证码存入SESSION
    session.removeAttribute("rand");
    session.setAttribute("rand",sRand);
        //图象失效
    g.dispose();    //输出图象到页面
    ImageIO.write(image, "JPEG", response.getOutputStream());
%> 你看运行一下index.php,老是显示上一次的随机数。。郁闷…………