什么叫做请求转发与重定向?
请求转发:浏览器发出请求给服务器端,请求的URL在服务器端没有资源,那么服务器端将会给出另一个URL2,由服务器将该请求转发给URL2。
重定向:浏览器发出请求给服务器端,请求的URL在服务器端没有资源,那么服务器端将会给出另一个URL2,由浏览器再次发出请求给URL2。
请求重定向与转发的区别:
转发:浏览器发出一次请求,由服务器端跳转到某个URL,浏览器端的URL地址栏无变化。
重定向:浏览器发出两次请求,由浏览器跳转到某个URL,浏览器端的URL地址栏发生变化,为URL2。
请求重定向与转发的方式:
重定向:response.sendredirect(url);
转发:
request|servletContext.getRequestDispatcher(url).forward(reponse,request)两种方法;但servletContext对象的转发功能存在线程不安全的问题,所以转发使用request对象的对应方法。
图解:
请求转发:
请求重定向: