跳转与重定向
JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是二者是有很大的区别的,分条来说,有以下几点:
①response.sendRedirect(url)-----重定向到指定URL
request.getRequestDispatcher(url).forward(request,response) -----请求转发到指定URL
②response.sendRedirect(url)-----是客户端跳转
request.getRequestDispatcher(url).forward(request,response) -----是服务器端跳转
getRequestDispatcher()包含两个方法,分别是请求转发和请求包含。
RequestDispatcher rd = request.getRequestDispatcher("/MyServlet");
请求转发: rd.forward( request , response );
请求包含: rd.include( request , response);
一个请求跨多个Servlet,需要使用转发和包含。
请求转发:由下一个Servlet完成响应体!当前Servlet可以设置响应头!(留头不留体)
请求包含:由两个Servlet共同完成响应体!(留头又留体)
无论是请求转发还是请求包含,都在一个请求范围内!使用同一个request和response!
RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源