什么是转发?
一个web组件将未完成的工作交给另一个web组件,web组件(Servlet和jsp),通常情况下是在servlet里面获取数据,然后把数据交由jsp显示。
如何实现转发?
1、把数据绑定到request对象上,可以绑定多个数据request.setAttribute(“A”,a);
2、得到转发器,并调用forward()方法
RequestDispatcher dis=request.getRequestDispatcher(“userlist.jsp”);//得到转发器
dis.forward(request,response);//调用forward()方法
转发实际上是web容器找到相对于的组件并且执行了组件的_jspService()方法。
转发有什么特点?
1、转发的目的地有限制,只能是工程内部的资源;
2、转发后浏览器的地址栏不变;
3、转发只有一次请求。
转发和重定向的区别是什么?
1、转发浏览器的地址无变化,重定向浏览器的地址有变化;
2、转发只有一次请求,重定向有两次请求;
3、转发可以共享同一个request和response对象,重定向两次请求分别创建了两个request和response,两次请求使用的是不同的request和response;
4、转发智能访问工程内部的资源,重定向可以访问任何地址。