注意转发和重定向的区别,在这里先说一下:转发只是服务器内部的操作,客户端只向服务器发送一起请求,而且URL是不变的。而重定向却恰恰相反。
Servlet 的转发有三种方式,其实严肃点,也就两种方法:
1.利用 HttpServletRequest 转发;
RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet"); //参数是 servlet 的 url-pattern
dispatcher.forward(request, response);
RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet");
dispatcher.include(request, response);
这两种方式的区别是:前者是直接将 Http 请求交给另一个 servlet 处理;后者也叫给其他 servlet 处理,但是处理的内容和当前 servlet 处理的内容一起发给浏览器。
2.利用 ServletContext 转发。
RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/servlet");
dispatcher.forward(request, response);
RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/servlet");
dispatcher.include(request, response);
其实这两个对象都有同样的方法而已.