一个令人困惑的传值问题,求解 value="<%=request.getParameter("sname")%>" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在此谢过,那么另外有一问,就是为什么用request.setAttribute也不行呢??代码如下:<% String sname=request.getParameter("sname"); String sno=request.getParameter("sno); request.setAttribute("sname",sname); request.setAttribute("sno",sno);%> <% String sname=request.getParameter("sname"); String sno=request.getParameter("sno); request.setAttribute("sname",sname); request.setAttribute("sno",sno);%>怎么不行? 取不到值?放到session中看看 你使用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的重定向,那就一切都从头来了,呵呵 就是说,你页面点提交的时候,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的生命周期结束咯不知道解释的对不对,反正我一直这么理解的,等待高人解惑啊 恩,应该是这样jsp的对象有四种生命周期:page,request,session,applicationRequest对象的生命周期应该是request,就是一个请求的过程不过我以为,它第一次被创建应该还是在server端,毕竟client发起请求的是html,走的http协议,不可能serialize过去吧,呵呵。request周期的对象可以被forward传递,不管是servlet端的forward还是jsp页面的forward,当页面被解析完毕时,这个请求结束,request周期的对象也就被KO了,所以不能继续往下传递了。 application 对象 怎么统计人数 求助,编译时出现“警告:编码 GBK 的不可映射字符”,怎么办? JAVA初学者提问 求用java编写的各个排序法程序加解析,谢谢! 关于 import 语句的效率问题 decimal类型存储时间 请大家介绍一下自己开发的毕业设计或自己认为好的项目:(希望贴贴不断) 告别几天 看看这段《java2编程详解》的源码有什么不对的吗? 请求援助!!!如何在JTable加载图片??? MyEclipse问题 如何从网页中抽取需要的信息
代码如下:<%
String sname=request.getParameter("sname");
String sno=request.getParameter("sno);
request.setAttribute("sname",sname);
request.setAttribute("sno",sno);
%>
String sname=request.getParameter("sname");
String sno=request.getParameter("sno);
request.setAttribute("sname",sname);
request.setAttribute("sno",sno);
%>
怎么不行? 取不到值?放到session中看看
在jsp用request.setAttribute,然后在servlet用request.getAttribute?
这个当然不行,jsp里面的request对象的scope是page,当这个页面执行完之后 就会销毁的,jsp往servlet之间的通信只能通过http协议,所以通过表单提交的数据能在servlet端取到,但request的属性不行。
在jsp被执行时,估计会把servlet传递的request对象属性复制一次,所以在jsp端能取到servlet端的request属性;当然,这个策略与servlet端的处理方式有关,比如,你不能用URL的重定向,那就一切都从头来了,呵呵
我理解的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的生命周期结束咯不知道解释的对不对,反正我一直这么理解的,等待高人解惑啊
jsp的对象有四种生命周期:page,request,session,application
Request对象的生命周期应该是request,就是一个请求的过程
不过我以为,它第一次被创建应该还是在server端,毕竟client发起请求的是html,走的http协议,不可能serialize过去吧,呵呵。
request周期的对象可以被forward传递,不管是servlet端的forward还是jsp页面的forward,当页面被解析完毕时,这个请求结束,request周期的对象也就被KO了,所以不能继续往下传递了。