请问下setAttribute()、getAttribute()、getRequestDispatch()、getServletContext()等方法只在请求对象ServletRequest极其子类中有,而在响应对象ServletResponse中却没有,如何根据HTTP协议来理解HttpServletRequest请求对象和HttpServletResponse响应对象,从而更好地理解请求和响应对象中的方法????

解决方案 »

  1.   

    attribut-----object
    path
    container
      

  2.   

    http 协议里没有你说的那些东西。request 和 response 里面的 attribute 是为了方便java内部进行数据传输才存在的。
      

  3.   

    是HttpServletRequest和HttpServletResponse这两个类的,就像request里面的是某个方法中的参数,而response里的是这个方法的返回值~
      

  4.   

    简单的理解,request就是获得http协议传输的某个值或者servlet容器某个属性.
    response就是响应客户端传过来的请求.
      

  5.   

    假设你在浏览器中的地址栏中输入:http://localhost:8080/test/A.jsp
    此时这个请求会被提交到servlet容器中,并且容器创建了两个对象,一个是ServletRequest对象,一个是ServletResponse对象,ServletRequest对象封装了用户的请求信息,然后servlet容器把ServletRequest对象,ServletResponse对象都传给了你所请求的A页面,A页面此时便开始处理请求,处理完后把结果封装到ServletResponse里面去,然后在把ServletResponse传回给浏览器。jsp和servlet都叫web组件,如何在web组件之间进行数据的交流传送呢?
    可以使用setAttribute()、getAttribute()来进行,比如说:你在A页面中写了下面的语句:
    request.setAttribute("user",user);
    并且在A页面使用转发的语句到达了B页面那么在B页面可以使用
    request.getAttrubute(user);
    来读取你在A页面中设置的内容
    这样就达到了web组件之间数据的传送。
    在写struts代码时候会用到一个重要的知识点,就是scope属性,有page,request,session,application这四个对象都有各自的存储范围,可以通过他们来进行web组件之间的数据传送。