JavaWeb中的实现页面跳转的同卵双胞胎兄弟——重定向与请求转发

时间:2022-07-22
本文章向大家介绍JavaWeb中的实现页面跳转的同卵双胞胎兄弟——重定向与请求转发,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

重定向与请求转发

1、重定向

	response.sendRedirect();

介绍

重定向,也称客户端跳转,相当于客户端向服务端发送请求之后,服务器返回一个响应,客户端接收到响应之后又向服务端发送一次请求,一共是2次请求,前后页不共用一个request,不能读取转向前通过request.setAttribute()设置的属性值。在前后两次执行后,地址栏发生改变,是目标文件的地址。

一般应用于数据的修改、删除、添加操作的相关信息显示操作

写法(注意斜杠)

URL种所包含的"/"表示根目录的路径

a. 跳转到jsp页面:

response.sendRedirect("/WebApps下的相对路径") 或者
response.sendRedirect(request.getContextPath()+"/相对路径")

b. 跳转到servlet中的某个方法(mvc架构下)

response.sendRedirect(request.getContextPath()+"/servlet/servlet项目名/method=方法名")

举例:

1、重定向到servlet中的某个方法

2、重定向到某个jsp页面

2、请求转发

request.getRequestDispatcher().forward(request, response)

介绍

请求转发,也称服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,两个文件(当前文件和目标文件)属于同一次请求,前后页共用一个request,可以通过此来传递一些数据或者session信息,request.setAttribute()和request.getAttribute()。在前后两次执行后,地址栏不变,仍是当前文件的地址。 一般用于数据的查询,插入,更新等操作的相关信息显示操作。

写法

注意斜杠、以及后跟.forward(request, response) URL中所包含的“/”表示应用程序(项目)的路径。

a. 跳转到jsp页面

request.getRequestDispatcher("/WebRoot下的相对路径").forward(request, response);

b. 跳转到servlet中的某个方法(mvc架构下)

request.getRequestDispatcher("/servlet/servlet项目名/method=方法名").forward(request, response);

举例

1、请求转发到某个jsp页面

2、请求转发到servlet中的某个方法