103.两种获取URL,重定向(sendRedirect)和请求转发(forward) 区别

HttpServletResponse的sendRedirect() 和RequestDispater的forward()可以让浏览器获得另一个URL的相关资源,但两者有所不同

请求转发和重定向的区别:

  1. 请求转发是一个请求一次响应,而重定向是两次请求两次响应。

  2. 请求转发地址不变化,而重定向会显示后一个请求的地址

  3. 请求转发只能转发到本项目其它Servlet,而重定向不只能重定向到本项目的其它Servlet,还能定向到其它项目

  4. 请求转发是服务端行为,只需给出转发的Servlet路径,而重定向需要给出requestURI,既包含项目名!

1.sendRedrect()重定向:不仅可以重定向到同一web应用中的组件,可以重定向到其他站点资源,重定向后浏览器的URL会发生变化,因为重定向的实质 是 server端发送一个消息给浏览器端,使重新浏览新的URL

2.forward() 请求转发:forward只能请求转发给同一web应用中的组件,转发后浏览器的url不会发生改变,forward实质是 站内转发,获取其他server资源,不会给浏览器端发送消息

如注册失败,跳回到注册界面

req.getRequestDispatcher(path).forward(req, resp); path取值:"/pages/user/regist.html"

猜你喜欢

转载自blog.csdn.net/weixin_43206161/article/details/111815726