Jsp初学者,想把Jsp页面里本来已经存在的对象(sessionScope得来的),传参到另外一个Servlet里处理。
Jsp页面存在的对象:
 ${sessionScope.Cart} 
${sessionScope.user}
传参代码如下:
 <a href= getOrders?user=${user}&Cart=${Cart}> 去下单</a> 结果发现一直传参失败,提示空指针,但是在浏览器地址栏发现提交上去的参数是:http://localhost:8080/TakewayWeb/getOrders?user=com.Takeway.model.User@335c9979&Cart={3=com.Takeway.model.Cart@b581ee4,提交上去的是地址,然而是空指针错误,取值失败。Servlet里取对象代码:  User user =(User) request.getAttribute("user");
 Map<Integer, Cart> cart = (Map<Integer, Cart>) request.getAttribute("Cart");

解决方案 »

  1.   

    既然通过url传值,用的是request.getParameter()获取值,你的request.getAttribute是用session或者application传的时候用
      

  2.   

    本来就在session里,把request换成request.getSession()就可以了
      

  3.   


    成功了,是楼下的办法,不过有个问题,我那两个对象都是在session里的,所以不用url传值,改而在Servlet里request.getSession().getAttribute()也可以接受吗?
      

  4.   


    成功了,是楼下的办法,不过有个问题,我那两个对象都是在session里的,所以不用url传值,改而在Servlet里request.getSession().getAttribute()也可以接受吗?
    request.getSession()就是获得session对象,request.getSession().getAttribute()等于session.getAttribute(),后面说的是在servlet中通过session获得?没看懂?试试就知道了,错误全是试对的
      

  5.   

    你的user和cart是一个对象,你直接通过url传参肯定是没法传的啊。你在user和cart中定义一个toString方法
      

  6.   


    成功了,是楼下的办法,不过有个问题,我那两个对象都是在session里的,所以不用url传值,改而在Servlet里request.getSession().getAttribute()也可以接受吗?
    jsp 也是servlet,只要能取到HttpServletRequest 就可以,servlet只是javaweb http请求的入口