value="<%=request.getParameter("sname")%>"

解决方案 »

  1.   

    在此谢过,那么另外有一问,就是为什么用request.setAttribute也不行呢??
    代码如下:<%
     String sname=request.getParameter("sname");
     String sno=request.getParameter("sno);
     request.setAttribute("sname",sname);
     request.setAttribute("sno",sno);
    %>
      

  2.   

    <%
     String sname=request.getParameter("sname");
     String sno=request.getParameter("sno);
     request.setAttribute("sname",sname);
     request.setAttribute("sno",sno);
    %>
    怎么不行? 取不到值?放到session中看看
      

  3.   

    你使用request从jsp传值到seervlet?
    在jsp用request.setAttribute,然后在servlet用request.getAttribute?
    这个当然不行,jsp里面的request对象的scope是page,当这个页面执行完之后 就会销毁的,jsp往servlet之间的通信只能通过http协议,所以通过表单提交的数据能在servlet端取到,但request的属性不行。
    在jsp被执行时,估计会把servlet传递的request对象属性复制一次,所以在jsp端能取到servlet端的request属性;当然,这个策略与servlet端的处理方式有关,比如,你不能用URL的重定向,那就一切都从头来了,呵呵
      

  4.   

    就是说,你页面点提交的时候,request已经算作是一个新的request了,与你页面用来setAttribute的那个request是两个不同的请求,所以过期
    我理解的request生命周期
    1.当从一个jsp发出一个submit,即表明了这个request生命周期的开始,当到达servlet之后一般有两种处理方式,一种为request.getDispatcher.forward,一种是response.sendRedirect.对于request的forward,该request的生命周期将会继续延续下去,当采用forward如果到达JSP页面,那么之前从第一个JSP页面中发送出来的request的消息将仍然存在,新的页面同样能够取得该request里所包含的一些信息,比如之前的JSP发送request中所包含的参数信息.事实上,它们是同一个request.
    2.如果是使用response.sendRedirect那么该request的生命周期将结束.
    因为页面submit提交属于2,sendRedirect,所以request的生命周期结束咯不知道解释的对不对,反正我一直这么理解的,等待高人解惑啊
      

  5.   

    恩,应该是这样
    jsp的对象有四种生命周期:page,request,session,application
    Request对象的生命周期应该是request,就是一个请求的过程
    不过我以为,它第一次被创建应该还是在server端,毕竟client发起请求的是html,走的http协议,不可能serialize过去吧,呵呵。
    request周期的对象可以被forward传递,不管是servlet端的forward还是jsp页面的forward,当页面被解析完毕时,这个请求结束,request周期的对象也就被KO了,所以不能继续往下传递了。