HttpSession session=request.getSession();
session.setAttribute("AccountId",accountid);
请楼主检查accountid对象的值是否为期待值!有可能他就是null

解决方案 »

  1.   

    在servlet中不能使用sendreDirect方法
    用RequestDispatcher.forward()方法试试
      

  2.   

    回复 tomuno(tomuno):
    accountid不可能为null,因为我的Servlet中就是靠这个accountid去数据库查找其对应的password,如果accountid为null的话,根本就无法显示后面的jsp页面回复 lukelan(现代原始人):
    我用你的方法试了一下,后面的页面都无法显示了,本来用sendRedirect方法还是可以显示的,只不过得到对应的session值为空谢谢两位,不过问题还是没有解决啊
      

  3.   

    你是放在doget 里面的还是dopost 里面的???建议放到doget里面去
      

  4.   

    使用 getRequestDispatcher(.) 的方法HttpSession session = request.getSession();
    ServletContext ctx = getServletConfig().getServletContext();

    String userName = (String)session.getAttribute("UserName");

    ctx.getRequestDispatcher(Pathname).forward(request, response);
      

  5.   

    response.sendRedirect("http://211.68.39.224:7001/OnlineBankWeb/Main.jsp");==>> 试试
    String url = "http://211.68.39.224:7001/OnlineBankWeb/Main.jsp";
    response = (HttpServletResponse) response; //不知道你的servlet怎么写的
    response.sendRedirect(response.encodeURL(url));
      

  6.   

    有两个地方需要注意:
    1、HttpSession session=request.getSession(); 更换成
    HttpSession session=request.getSession(true);2、response.sendRedirect("http://211.68.39.224:7001/OnlineBankWeb/Main.jsp");
    这句可能有问题
       servlet 是否运行在服务器http://211.68.39.224:7001,就是main.jsp和servlet程序是否在同一个web应用程序,不是的话是不行的,因为session不可以在不同的web应用程序之间传输或共享。
      

  7.   

    3、AccountId在setAttribute()时候用得是否不一致
      

  8.   

    我估计我的问题可能就是zsj51846(听涛)所说的就是main.jsp和servlet程序没有运行在同一个web程序中,可是我把servlet放到main.jsp坐在的web程序中时,我发现这个servlet根本就访问不到,这是怎么回事?
    是不是一个web程序下只能放一个servlet?我做了一个使用,即在一个web.xml中写了好几个servlet,如下:
    <web-app>
    <servlet>
    <servlet-name>Display</servlet-name>
    <servlet-class>DisplayUserInput</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Display</servlet-name>
    <url-pattern>/Display</url-pattern>
    </servlet-mapping>
    <servlet>
    <servlet-name>Counter00</servlet-name>
    <servlet-class>Counter00</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Counter00</servlet-name>
    <url-pattern>/Counter00</url-pattern>
    </servlet-mapping> </web-app>
    可是结果是只能访问Display这个servlet(Display是原来的Servlet,Counter00是后来加进去的,类我都已经放到classes下面了),这是怎么回事?
    谢谢指教
      

  9.   

    现在已经搞定了,就是 zsj51846(听涛) 所说的,谢谢了
    上面那个实验弄错了,可以的,当时可能是部署的时候没有把以前的删除干净,所以出现了这样的问题
    再次感谢大家!