servlet篇 之 跳转问题

servlet中的跳转

跳转本质上是对文件传输操作 进行 封装。

例如:客户端访问一个servlet,servlet中需要把已经写好的页面hello.html返回给客户端浏览器,需要用io来实现这个功能

服务器内部跳转:

第一种情况:

服务器内部跳转到一个页面

例如:

//获得一个指向/hello.html页面的跳转对象

RequestDispatcher dispatcher =

request.getRequestDispatcher("/hello.html");

//进行跳转

//跳转的同时,requestresponse传过去

dispatcher.forward(request, response);

或者精简成一句代码:

String url = "/hello.html";

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

第二种情况:

服务器内部跳转到另一个servlet

注意:

1,无论服务器内部跳转多少次,每次都会把reqres转发给下一个跳转的地方,也就是整个过程里面,reqres有且只有一个】,即最初的那个。

2,服务器内部跳转需要使用request来完成

3,【跳转成功后】,【地址栏仍显示最初servlet】信息。

 

客户端重定向

第一种情况:

客户端重定向到一个页面

例如:

String url = "hello.html";

response.sendRedirect(url);

 

 

第二种情况:

客户端重定向到另一个servlet

注意:

1,每次进行客户端重定向,都会是一个全新的requestresponse

2,客户端重定向需要使用response来完成

3,重定向到另一个资源中(可能是页面也能servlet),那么浏览器的地址栏中显示的是重定向到的那个资源的地址!

原文地址:https://www.cnblogs.com/wskb/p/10705066.html