简单了解Servlet中的重定向

1.什么是重定向?

这里说的重定向是由http协议规定的一种机制。其工作流程如下所述。

(1)客户端发起http请求,访问服务器端组件。

(2)服务器端返回一个状态代码为302的响应结果。该代码的意思是让浏览器再访问另一个组件,响应结果中包含着访问新组件的url地址。新的访问组件可能在同一个应用中也可能不在同一个应用中。

(3)当浏览器接受到这种结果,会自动访问新的url.

(4)浏览器端接受新的url返回结果。

二.Servlet实现重定向的方法

1,运用javax.servlet.RequestDispatcher接口的forward方法,

2,或者运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法。

要运用RequestDispatcher接口的forward方法,首先要得到一个RequestDispatcher对象。servlet技术提供了三种方式来得到它:

  1. 通过运用javax.servlet.ServletContext接口的getRequestDispatcher方法,将一个包含路径的String传递给其它资源。该路径是相对于ServletContext的根路径的。
  2. 通过运用javax.servlet.ServletRequest接口的getRequestDispatcher方法,将一个包含路径的String传递到其它资源。该路径是相对于当前的HTTP请求的。
  3. 通过运用javax.servlet.ServletContext接口的getNamedDispatcher方法,传递一个包含其它资源名字的String。

三.重定向的特点 

扫描二维码关注公众号,回复: 14683044 查看本文章

1. 地址栏会发生变化,显示的是转向的其他站点的地址
2. 重定向可以访问其他网站的资源
3. 重定向对浏览器做的是两次请求,并且不能使用request对象来存储和共享数据
4. 重定向是客户端行为

四.重定向与请求转发的区别

重定向:客户端重新发送新的请求,无法request携带数据。地址栏会发生改变。

请求转发: 地址栏不会发生改变,在服务器端完成,效率高 使用request携带数据。

猜你喜欢

转载自blog.csdn.net/cdfdddcs/article/details/124831838