WEB组件之间的3种关系
A:重定向:repsonse.sendRedirect(url); response:响应到客户端。把url传给客户端,让客户端 特点: 如果使用重定向,而且想共享request中的数据??/ // 重定向(客户端重定向) 服务端重定向与客户端重定向的使用场合: 当如果想要重定向,并且要信息提示时,必须使用客户端重定向。
注解:重定向只能够传递文本数据。不能传递对象数据
B:请求转发 (1):请求转发默认从工程的上下文目录算起。路径前面要加"/"。表示使用绝对路径。 (3):使用请求转发,不管转发多少次请求,都共享request中的数据。 dispatcher.forward(request, response); 把request,response传递到下一个Servlet中。
include RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet/SixServlet"); 使用场合:
请求转发与重定向的使用场合: 当使用请求转发时,如果刷新,会一直执行提交的SErvlet。 当使用重定向时,如果刷新,刷新是重定向后的页面。 注解:登陆用重定向
request的作用域:(在请求开始与请求结束这一段范围之内。) 重定向 不共享request, 请求转发共享 request 所以页面之间要共享对象时,用请求转发,用request.setAttribute("String",Obj) 让名字和对象绑定,由于转发共享 request所以 里一个页面可以通过 request.getAttribute("String") 获取对象。 |