失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 重定向sendredirect(URL)和请求转发requestDispatcher(servlet).forword(req resp)

重定向sendredirect(URL)和请求转发requestDispatcher(servlet).forword(req resp)

时间:2020-07-24 15:55:09

相关推荐

重定向sendredirect(URL)和请求转发requestDispatcher(servlet).forword(req resp)

请求转发和重定向的区别

什么是请求转发(request.getRequestDispatcher(目标).forward(request,response))

请求转发是服务器将请求转发给别的servlet处理,是服务器内部的行为

1、请求转发的过程

客户端向服务器发送请求,服务器将请求指派给一个servlet处理(命名为A),A处理后发现自己处理不了该请求,就调用request.getRequestDispatcher(目标).forward(request,response)方法将请求转发给servlet(B)让B处理,B处理成功后将结果返回给客户端。

特点

1、转发是在服务器端完成的,与客户端无关

2、转发是同一次请求,无论服务器端转发多少次都只有一次请求

3、转发的客户端地址栏不会变化,无论最后响应的是哪个servlet地址栏都不会改变

4、转发必须在同一台服务器下完成,是服务器内部行为

什么是重定向(response.sendredirect(URL))

是通过各种方法将请求重新定个方向转到其它位置

重定向过程

客户端发送一个请求到服务器,服务器匹配Servlet,这都和请求转发一样。Servlet处理完之后调用了response.sendRedirect()方法。当这个Servlet处理完后,看到response.sendRedirect()方法,立即向客户端返回个响应,响应行告诉客户端你必须再重新发送一个请求,去访问另一个目标,客户端收到这个请求后,立刻发出一个新的请求,去请求重定向后的目标,在这两个请求互不干扰、相互独立,在前面request里面setAttribute()的任何东西,在后面的request里面都获得不了。因此,在sendRedirect()里面是两个请求,两个响应。

特点

1、重定向是在客户端发生的;

2、重定向是两次或以上请求;

3、重定向地址栏有变化;

4、重定向可以在不同的服务器下完成。

重定向和请求转发的区别

如果觉得《重定向sendredirect(URL)和请求转发requestDispatcher(servlet).forword(req resp)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。