日期:2014-05-18  浏览次数:20723 次

jsp转servelt,servlet转到jsp后如何获得参数?
各位大虾:
      我有一个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
      如何解决?

------解决方案--------------------
jsp-> servlet 用form传递
Servlet-> jsp request.setAttribute过去,用request.getAttribute取
------解决方案--------------------
jsp--> servlet用form里面的action=xxx.do?xx=?
servlet--> jsp就用楼上的方法
------解决方案--------------------
servet-> jsp用request.setAttribute()是比较有效的方法.
不过就你的问题:你用request.getParameter()应该是可以得到的.你再去确认你传的参数名是userid,(方法:你可以把form的提交方式不要或者是get,这样url中就能看到传的参数了).
------解决方案--------------------
有三种层次
application,request,session
根据需要设置
------解决方案--------------------
最简单的办法就是在Servlet里面把userid放到request里面,如request.setAttribute( "userid ",userid);然后在login.jsp使用request.getAttribute取出来就ok了,当然放在session里面也一样。
你用的RequestDispatcher forward,不是重新生成request,所以用request没问题,如果重新定向只能用session了。
------解决方案--------------------
其他方法当然有啦,毕竟条条大路通罗马。比如写文件,写数据库等。只不过set.attribute or session or application是比较方便和大众的用法。
------解决方案--------------------
request.setAttribute不好吗?没想到其他办法。
------解决方案--------------------
如果不需要全局共享信息,当然是request.setAttribut方法最好,只在所传的下一个页面有效。
------解决方案--------------------
request.setAttribute 有方便的方法为什么不用呢?
------解决方案--------------------
getParameter()
------解决方案--------------------
在servlet中把变量request.setAttribute进去,

request.getRequestDispatcher( "111.jsp ").forward(request, response);
------解决方案--------------------
楼主另有目的吧?不妨说出来,大家讨论.