怎么把我所要的值放到session里去了,并且在jsp中能直接从session中取出来,没有写过这方面的,我只要把session.setAttribute("num",img);写进去,程序就会报错,请大家帮忙看看。package com.pxc;
/**
* 验证码
*/
import java.util.*;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;public class RandomImage 
{
HttpServletRequest request=null;;
HttpSession session=request.getSession();
    
/*
* 随机产生的6位数,有字母有数字
*/
public String getNumber(){
    String character="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random  rand =new Random();
StringBuffer  temp=new StringBuffer();
char[] chars=character.toCharArray();
int i=0,j=0;
while(i<6){
    j=rand.nextInt(chars.length);
temp=temp.append(String.valueOf(chars[j]));
    i++;
 }

   return temp.toString();
}

public String getImage(){
    String img=getNumber();
    char[] chars=img.toCharArray();
    String var="";
    int i=0;
    while(i<chars.length){
       var+="<img src=img\\"+String.valueOf(chars[i])+".jpg>";
       i++;
        }
   //session.setAttribute("num",img);
    System.out.println(img);
   return var;
}

  public static void main(String[] args) 
{
RandomImage  ri=new RandomImage();
System.out.println(ri.getImage());
}
}
怎么把我所要的值放到session里去了,并且在jsp中能直接从session中取出来,没有写过这方面的,我只要把session.setAttribute("num",img);写进去,程序就会报错,
请大家帮帮我,谢谢了!

解决方案 »

  1.   

    HttpServletRequest request=null;;
    HttpSession session=request.getSession();
    这样也行,没搞错吧,会出NullPointException的.
    session.setAttribute("num",img);这个写法没错,不知道你所谓的报错,是编译还是运行的时候.
      

  2.   

    怎么可能?
    1.session.setAttribute("num",img);
    2.session.getAttribute("num");
    打印异常看看吧?
      

  3.   

    编译没有错,是运行时出的错!是报NullPointException错
      

  4.   

    HttpServletRequest request=null;;
    HttpSession session=request.getSession();
    你这样写当然报NullPointException错了,你都没有初始化request对象就拿来用
      

  5.   

    1:没有HttpServletReques,RandomImage要传个HttpServletRequest
    2:你这个程序需要容器,自己写个mock object测试