各位大虾:
   我有一个index.jsp,它把用户登录信息如userid传给loginservlet,loginservlet再跳转到
login.jsp,请问:
   在login.jsp中,如何获得index.jsp传来的参数?如 userid    我的servelt跳转页面用到了RequestDispatcher forward方法。也就是说,我把index.jsp的request参数是一直带到login.jsp,可是在login.jsp里用 request.getParameter("userid") 确获得了null
   如何解决?

解决方案 »

  1.   

    jsp->servlet 用form传递
    Servlet->jsp request.setAttribute过去,用request.getAttribute取
      

  2.   

    jsp-->servlet用form里面的action=xxx.do?xx=?
    servlet-->jsp就用楼上的方法
      

  3.   

    谢谢答复
      有没有办法:从servlet->jsp 不用request.setAttribure()方法?
      

  4.   

    servet->jsp用request.setAttribute()是比较有效的方法.
    不过就你的问题:你用request.getParameter()应该是可以得到的.你再去确认你传的参数名是userid,(方法:你可以把form的提交方式不要或者是get,这样url中就能看到传的参数了).
      

  5.   

    有三种层次
    application,request,session
    根据需要设置
      

  6.   

    最简单的办法就是在Servlet里面把userid放到request里面,如request.setAttribute("userid",userid);然后在login.jsp使用request.getAttribute取出来就ok了,当然放在session里面也一样。
    你用的RequestDispatcher forward,不是重新生成request,所以用request没问题,如果重新定向只能用session了。
      

  7.   

    谢谢各位:
       各位大虾给的方法均是set.attribute or session or application
       也就是说不用这些方法直接从request里获得是没有办法的,是吗?
      

  8.   

    其他方法当然有啦,毕竟条条大路通罗马。比如写文件,写数据库等。只不过set.attribute or session or application是比较方便和大众的用法。
      

  9.   

    request.setAttribute不好吗?没想到其他办法。
      

  10.   

    如果不需要全局共享信息,当然是request.setAttribut方法最好,只在所传的下一个页面有效。
      

  11.   

    request.setAttribute 有方便的方法为什么不用呢?
      

  12.   

    在servlet中把变量request.setAttribute进去,request.getRequestDispatcher("111.jsp").forward(request, response);
      

  13.   

    在servlet中把变量request.setAttribute("name",value)进去,request.getRequestDispatcher("111.jsp").forward(request, response);然后你在接受的这个叫 111.jsp的页面还用,request.getAttribut("name");就能得到了