首先 request对象的生存周期是多长啊?如果一个jsp页面中用一个request.setAttribute()设置了一个值,那么我可以在哪些页面或者sevrlet里用getAttribute()方法取到呢?
另外如果我一个页面里有一个标签类,那我应该怎么引用这个标签类里面的变量呢?(这个标签类里面包含了好多jsp页面,我想用其中一个页面的变量)

解决方案 »

  1.   

    一、request.getParameter() 和request.getAttribute() 区别 (1)request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。 (2)request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据
      

  2.   

    request.setAttribute()的生存周期是服务器跳转有效,也就是说你提交到哪里哪里就有效,其他没有提交到的地方时获不到值的,你要获得必需先传,如果你想其他页面都可以获得值就改成request.setSession()就可以了是session是只要你登陆了,不关闭浏览器任何地方都可以获得值
      

  3.   

    request 在一次请求中有效。如果你使用了重定向,重定向之后就不是一个请求,将不能获取第一个请求中的对象信息。
    forward:一个request
    redirect:发起新的request
      

  4.   

    技术论坛,说话要有内涵,低调。这是我的Java论坛,请大家指正www.daima0371.com.cn
      

  5.   

    request中的东西是你的一个请求生命周期中有效,如果你在执行你的操作时,转发到其它页面去。那它们用的是同一个request也以用request中的值。
      

  6.   

    先假设有两个页面1.jsp 2.jsp。再1.jsp中有个表单,点击按钮的时候跳转到2.jsp中(这里指的是forword不是redirect)
    简单的这样说吧
    1、request的生存周期仅仅为一个请求,就是你点击一个按键或者超链接跳转到下一个页面。
    2、要再servlet或者struts或2.jsp中获取到1.jsp中的表单中的值,就用request.getParameter("");获取。若在1.jsp中request.setAttrbute("msg","登陆成功");那么,再request的生存周期内就需要request.getAttrbute("msg");来获取了。
    3、不管是什么语言开发的页面,不管页面中用到什么标签,他们的实质都是html。
      

  7.   

    request就如同我给你说话一样
    我给你说完就没有了,指的是我说话的这个过程有效
    过程一完就没有效了