你不用试了!
我在jsp中调serverlet 的session值 也是null 的
也就是说: 在 jsp 中 和 servelet 中定义的session 不可以相互调用!

解决方案 »

  1.   

    在servlet中有没有声明 session 这个变量???
      

  2.   

    jsp和servlet中的session不可以互相调用?这是什么理论?谁告诉你的。
    胡闹。
      

  3.   

    能不能是java中 servelet对session的保密措施 导致的呢??我也不太理解!希望你的提问会有个满意的结果!
      

  4.   

    不是吧! 那jsp和servlet怎么传递Object类型的参数啊??
    再说,JSp也是最后要编译成Sevlet运行的啊!!!
      

  5.   

    beyondii: 大侠我是新手 具体的细节也不清楚,如果可以调用为什么 提出的session 是null 呢? 给各理由好么??
      

  6.   

    package image;import java.io.*;
    import java.util.*;
    import com.sun.image.codec.jpeg.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.awt.*;
    import java.awt.image.*;public class getImg extends HttpServlet {private String s;
    private Font mFont=new Font("宋体", Font.PLAIN,20);//设置字体
    //处理post
    public void doPost(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException {doGet(request,response);
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException {
    //取得一个1000-9999的随机数HttpSession session=request.getSession (true);s=(String)session.getAttribute("getImg");response.setContentType("image/gif");ServletOutputStream out=response.getOutputStream();BufferedImage image=new BufferedImage(75,32,BufferedImage.TYPE_INT_RGB);Graphics gra=image.getGraphics();
    //设置背景色
    gra.setColor(Color.orange);gra.fillRect(1,1,73,30);
    //设置字体色
    gra.setColor(Color.black);gra.setFont(mFont);
    //输出数字
    char c;for(int i=0;i<4;i++) {c=s.charAt(i);gra.drawString(c+"",i*17+4,28);}JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);encoder.encode(image);out.close();}
      public String getS(){
        return s;
      }}
    这是一个调用的,你看看吧,希望对你有帮助
      

  7.   

    yixf(yixf) 您这是什么调用>??? 都是在servelet 中调用的啊!!没有时间客户端的web 引用啊??
    有意义么?
      

  8.   

    在Servlet中要重新声明这个Session对象!
    HttpSession session = Request.getSession();
      

  9.   

    我声明了,没用的。
    我把代码全贴出来了,高手帮我瞧瞧。
    jsp 代码: String    serveletAddress="http://1it888888:8080/qbean/servlet/smic.QBeanExcelServlet";
              String name="ComingLot";
               QQueryBean.reset();
               QQueryBean.setConnection(ConBean.getConnection("mestprd"));
               QQueryBean.setQueryInfo("D:\\QBean\\QBean.xml", "ComingLots");
               
               if (eqpgrp!=null)
                {QQueryBean.setParamByName("eqpgrp",eqpgrp);}
     
               System.out.println(QQueryBean.getSqlString());
               vs=QQueryBean.getResultVector();   
               session.setAttribute("data",vs); 
               session.setAttribute("name","Hello");    
       ConBean.release("mestprd",QQueryBean.getUsingConnection());
       response.sendRedirect(serveletAddress); sevlet代码:
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException { // HSSFSheet sheet = null;
    HSSFWorkbook wb = null;
                    
                    HttpSession session=req.getSession (true);
                    
                    if (session!=null)
                      System.out.println("session is  not null .");
                      
    Vector data = (Vector) session.getAttribute("data");
    sheetName = (String) session.getAttribute("name");

    System.out.println("name is "+sheetName);

    if (data != null && data.size() > 0) {
    wb = new HSSFWorkbook(); // Define sheet name  
    Date dt = new java.util.Date();
    sheetName = sheetName + " " + dt.toLocaleString(); this.createSheet(data, wb, sheetName); ServletOutputStream stream = res.getOutputStream();
    res.setContentType("application/vnd.ms-excel");
    wb.write(stream);
    stream.flush();
    stream.close(); } else{
        System.out.println("Data is null .");
    } }
      

  10.   

    是不是跟你的serveletAddress有关????serveletAddress="http://1it888888:8080/qbean/servlet/smic.QBeanExcelServlet";和原来的jsp是在同一服务器吗????试试用相对路径表示.serveletAddress="/qbean/servlet/smic.QBeanExcelServlet";还有
    HttpSession session=req.getSession (true);是指如果session不存在,则创建一个新的session,那么
    if (session!=null)
                      System.out.println("session is  not null .");是永远执行不到的.public HttpSession getSession(boolean&nbsp;create)
    Returns the current HttpSession associated with this request or, if if there is no current session and create is true, returns a new session. If create is false and the request has no valid HttpSession, this method returns null.
      

  11.   

    刚才试了一下
    jsp1.jsp里<%
    session.setAttribute("name","Hello");
    response.sendRedirect("/servlet1");
    %>然后servlet1.java里  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>Servlet1</title></head>");
        out.println("<body bgcolor=\"#ffffff\">");
           HttpSession session=request.getSession ();
         out.println("name的值是:"+session.getAttribute("name"));
        out.println("<p>The servlet has received a GET. This is the reply.</p>");
        out.println("</body></html>");
      }是可以取得session里的东西的.
      

  12.   

    在servlet中可以使用httpSession  hs=(httpSession)pageContext.getSession();
      ...=hs.getAttribute(name)
      

  13.   

    搞定了,原来是不能使用绝对路径的缘故,太谢谢各位了,尤其是wellsoon(wellsoon)大哥!给分!