request.getParameter
是用来接受来自get方法或post方法的参数
<form method=post>
<form method=get>
<a href="1.jsp?id=1">ok</a>
只能接受java.lang.String
也就是说String hotel_id = request.getParameter("hotel_id");
request.getAttribute
是用来接受来自servlet的变量或Action(其实Action就是特殊的Servlet)
在Action中,request.setAttribute("ret",ret);
只能接受java.lang.Object
也就是说List ret = (List)request.getAttribute("ret");
请问request.getAttribute()什么时候用?
1.在第一个页面的form表单中action到第二个页面中可以get到前一页的值吗?
2.在第一个jsp页面中用了<jsp:forward page="……"/>,转到指定页面后可以get到前一页的值吗?
3.在第一个页面中用response.sendRedirect("……"),转道指定页面后可以get到前一页的值吗?
你可以在前一页使用
request.setAttribute(name,value);
然后再转页使用
request.getAttribute(name);
你说的3种情形,1可以直接get,
2、3转页转页路径像:“xxxx.jsp?req=xxx”这样的可以直接get到req,否则要set后再get。
request 的生存周期是:Client发出请求后,Server在发出响应前。
对于第3个问题:response.sendRedirect("……"),页面重定向后,request已被释放,所以不能再得到Client请求中发送的数据。
第2个问题:可以。
这两个问题的不同之处在于:2是对Client请求进行'重定向'。3是对Server响应进行重定向。
request.getAttribute() -- 对Client请求进行'重定向'时使用。