Servlet——转发与重定向

当我们在浏览网页或者进行相关网页操作时常常会遇到页面跳转,为了避免在页面跳转过程中发生不必要的麻烦,我们需要掌握其中的原理及其操作。这一点对于一个程序员,特别是从事java web开发方面的程序员来说尤为重要。

先来看一张图:

特点:

那么,何为重定向呢?

如图所示,重定向即为客户端与服务器多次进行请求与响应的过程,但服务器并为对客户端发出的请求做出相应处理,而是告诉用户需要发送哪几个请求。

此过程大体为:客户发送一个请求到服务器,服务器匹配servlet,servlet处理完之后调用了sendRedirect()方法,立即向客户端返回这个响应,响应行告诉客户端你必须要再发送一个请求,去访问student_list.jsp,紧接着客户端收到这个请求后,立刻发出一个新的请求,去请求student_list.jsp,这里两个请求互不干扰,相互独立,在前面request里面setAttribute()的任何东西,在后面的request里面都获得不了。由此可见,在sendRedirect()里面是两个请求,两个响应。

特点:

1.重定向是客户端行为; 2.重定向是浏览器向服务器发出不止一次请求的过程; 3.重定向浏览器地址改变; 4.重定向两次跳转之间传输的信息会丢失; 5.重定向可以指向任何的资源,包括当前应用程序中的其他资源,同一个站点上的其他应用程序中的资源,其他站点的资源。

经验分享 程序员 微信小程序 职场和发展