JAVAEE请求转发和重定向使用详解

来源:互联网 发布:飞行器仿真软件 编辑:程序博客网 时间:2024/05/29 17:20

重定向:

重定向是客户端请求AServlet,然后AServlet会给客户端响应一个302状态码和一个包含新URL的Location响应头,那么客户端又会重新访问Location响应头包含的新的URL。在整个过程中客户端其实执行了两次请求,在浏览器的URL地址栏中也能看到URL请求的变化,那么是两次请求也就会产生两个HttpServletRequest请求对象和两个HttpServletResponse响应对象。

转发(包含):

转发是客户端向服务器发送的请求一个Servlet不能完成处理,而是需要多个Servlet之间协作才能完成,那么就需要由一个Servlet/jsp跳转到另一个Servlet/jsp进行操作,这就叫请求转发或请求包含。

重定向和转发的区别:

在重定向中是多次请求多次响应,那么也就会有多个request对象多个response对象产生。

而在请求转发或请求包含中客户端只知道它直接请求的Servlet或者jsp,而不知道请求转发或请求包含到的Servlet。

所以在请求转发或请求包含中始终是一个请求浏览器的URL地址栏也是不会改变的,而且始终也是一个request对象一个response对象

转发语法:

在Servlet中:
RequestDispatcher rd = request.getRequestDispatcher(String 转发的路径);
请求转发:  rd.forward(request , response);
请求包含:  rd.include(request , response);
PS:请求转发和请求包含的语法区别就是关键字不同,具体使用上的区别下次再写。
以下内容只说明请求转发和请求重定向。

重定向语法:
response.sendRedirect("/项目路径/资源路径");

下面是主要代码:

1.Servlet到Servlet的转发
2.Servlet到JSP的转发

3.JSP到Servlet的转发

3.JSP到JSP的转发

4.Servlet到Servlet的重定向

4.Servlet到JSP的重定向

什么时候使用重定向和转发:

一句话概括:当两个资源文件之间需要传递数据的时候,使用转发

当两个资源文件不需要传递数据的时候,使用重定向


原创粉丝点击