java重定向时如何保持地址栏不变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java重定向时如何保持地址栏不变相关的知识,希望对你有一定的参考价值。

重定向应该不能保持地址栏不变- - 这是转发与重定向的区别

重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。
参考技术A goforward("a.jsp")是不会变地址栏的;
redirect("a.jsp")是会变地址栏的;
区别在于forward是服务器内部的转向,用户只请求了一次,服务器内部进行跳转;
而redirect相当于用户的两次请求;所以地址栏会有变化;

希望对你有帮助~~
参考技术B 使用<jsp:forward page="" />

此语句前不允许有out.flush(),如果有,会有异常:
跳转后浏览器地址栏不变,但是只能跳到当前主机下
此语句后面的语句执行完成后才会跳转

转发和重定向的区别

重定向两次请求,转发是一次请求

重定向是响应对象(response)的方法,请求转发是请求对象(request)的方法

重定向不能用request的方法,请求转发可以使用request的方法

重定向地址栏变化,请求转发地址栏不变

以上是关于java重定向时如何保持地址栏不变的主要内容,如果未能解决你的问题,请参考以下文章

java转发和重定向

地址栏不变 - PHP

重定向

请求转发与请求重定向

转发和重定向的区别

jsp - redirect重定向 / forward转发