1、转发,顾名思义就是将一个页面的数据转送给另外一个页面,一般发生在同一应用程序中。首先,客户端向服务端发送请求,相应的Servlet接收请求。
2、在Servlet对象service方法中,对request进行处理,然后开始转发,踊辽嚏囱此时调用request.getRequestDispatcher(url).forwar颊俄岿髭d(request,response)方法,转发到路径定义的servlet
3、servlet2对数据进行处理,返回客户端响应
4、重定向,除了用在同一应用中跳转,也可以用在不同应用间访问。同惯栲狠疲理,在客户端发起请求后,此时servlet1接收请求,调用response.sendRedirect(url),此骀旬沃啭时是用的response对象的方法,因此会首先返回客户端,此时返回的是代表要重新访问的状态码302。
5、客户端接收到302状态码,按照传递的url重新再发起请求。
6、此时请求到servlet2资源,servlet2处理返回给客户端。
7、总结:1.转发是一个请求,而重定向则是两次请求;2.转发时地址栏不发生变化,而重定向会发生变化;3.转发一般只发生在相同的应用中,而重定向到另外一个应用中进行访问。