在servlet中request.setAttribute("error","error1"); 
String error = request.getParameter("error");
System.out.println("error = "+error);//我以为是 将"error1"字符串以 "error"名字存储在request中,然后通过getParameter得到它,
但是输出结果为什么是: error = null .  而不是: error1 .
请指点!!!谢谢

解决方案 »

  1.   

    试试request。getAttribute("error");
      

  2.   

    http://xyzws.com/servletfaq/what-is-the-difference-between-the-request-attribute-and-request-parameter/1
    这个网址可能对你有帮助
      

  3.   

    setAttribute()
    getParameter()
    这2个的api不同
    error1不是一个表单对象,所以你取不到
      

  4.   

    getParameter方法是用于这种情形的对HTTP servlets而言,参数包含于查询串或posted form data
      

  5.   

    request.setAttribute("error","error1"); 
    String error = (String)request.getParameter("error"); orrequest.setParameter("error","error1"); 
    String error = (String)request.getParameter("error"); 
      

  6.   

    继续请教:在servlet中
    request.setAttribute("error","error1"); //如果下面用从定向到jsp页面:
    response.sendRedirect("jspPage.jsp");
    //那么在jspPage.jsp 中如何获取request中的值:error ???//如果用转发到jsp页面:
    RequestDispatcher r = request.getRequestDispatcher("jspPage.jsp");
    r.forward(reqest,response);
    //那么在jspPage.jsp 中又该如何获取request中的值:error ???我使用EL语句:${requestScope.error} ,但却有时不好用?有点晕了!!拜托给讲解一下
      

  7.   

    Redirect之后就不是同一个request范围内了 通过request来取貌似不能
    而RequestDispatcher的forward方式是可以通过request.getAttribute()来获得的
      

  8.   

    HttpServletRequest是服务器上的一块内存(一个对象,对应一个request),保存了一个request的一些信息(是持久保存在服务器上的,相对一个request存在的时间),http请求(有两种get 和post,详细看http协议)servlet技术把这个请求封装成了一个httpServletRequest对象,可以用这个对象得到请求参数就是用request.getParameter(),我的理解
      

  9.   

    请求参数和HttpServletRequest的属性是不一样的
      

  10.   

    在servlet中 
    request.setAttribute("error","error1"); 7楼所说的 "Redirect之后就不是同一个request范围内了" 
    那如果就想通过从定向的jsp页,该如何获得request中的值呢??谢谢!