response.sendRedirect("http://zhoupq.com");复制代码
为什么需要重定向?有时可能不想自己处理响应,可以选择让其他服务处理响应,故将请求重定向到一个完全不同的URL。
重定向的工作原理?
简而言之,重定向就是servlet将新的URL返回给Location,浏览器获得Location值,访问新的URL。从时序图中可以看出,服务器只负责将新的URL注入Location,URL的转变是由浏览器完成的。
转发也被称作请求分派,转发的关键语句:
RequestDispatcher view = request.getRequestDispatcher("http://zhoupq.com")
view.forward(request,reponse)复制代码
与重定向不同的是,转发的动作是在服务端完成,也就是说server直接将新的URL中的资源返回给浏览器,浏览器地址栏不变,用户察觉不到URL的转变。
现在可以轻而易举地回答开篇的问题:重定向时,地址栏会发生变化,因为URL的重定向由浏览器完成。
-
6117
-
tinyvampirepudge
Android
-
3922
-
fangzhou_lu
React.js
-
4.8w
-
程序员老鱼
掘金·日新计划
ChatGPT
OpenAI