初识 JSP---(转发和重定向)

转发和重定向

在 JavaWeb 中,有两种跳转方式:

1.转发  2.重定向

转发

客户端访问 servlet ,有转发指令,将 servlet 发送给另一个servlet,然后由这个 servlet 返回给客户端,这就是转发(整个过程中对服务器的请求只发送一次)

只发出一次请求,地址栏是初次发出的请求地址,在最终的servlet中,request对象和中转的request的对象是同一个request对象,只能转发当前web应用资源(“/”代表的是相当于web工程的路径 如果是相对路径就不用写“/”)

例子:response.sendDispatcher("showLogin")(告知转发器要跳转到那个页面去). forword(req,resp);(通过转发器进行转发)

结果(地址栏不发生改变)

重定向

客户端访问 servlet ,有重定向指令,将 servlet 先返回客户端(跟服务器链接断开),客户端再发起一次请求给另一个 servlet,然后由这个 servlet 返回给客户,这就是重定向(整个过程中对服务器的请求发送两次)

重定向是发出两(多)次请求,两个请求不是同一个request,地址栏是最后发出请求的地址。如果“/”写在重定向的话,代表的是web站点的根路径

例子:response.sendRedirect("ServletForWard1");

结果(地址栏发生改变)

转发和重定向的区别

1.本质区别:转发实质上只发送一次请求,重定向实质上发送两次请求

2.转发请求的第一个request对象和中转request对象是同一个request对象,重定向的请求request对象和中转request对象不是同一个request对象

3.转发只能将请求发送给web资源(当前项目),重定向可以发送给任意资源

4.转发的地址栏是第一次请求的地址,重定向的地址栏是最后一次请求的地址

5.转发:“/”代表web项目的根路径,重定向:“/”代表web站点的根路径

包含:include

例子:

结果

猜你喜欢

转载自blog.csdn.net/jianghao233/article/details/81348094