java 如何实现页面之间跳转浏览器地址栏URL不变

java 如何实现页面之间跳转浏览器地址栏URL不变,第1张

url没有变化是因为这个跳转是在服务器内部跳转的。

我简单说下浏览器的工作原理。浏览器发出一个地址请求到服务器,服务器根据这个地址找到相应的页面资料返回给浏览器,最后浏览器将信息显示给用户。

但服务器内部跳转的时候,对浏览器来说是不知道的,它只负责把服务器返回的信息显示出来。

在java web里

servlet的doGet或doPost中用response.sendRedirect("重定向的地址")

在jsp中也可以用response.sendRedirect("重定向的地址")

jsp中还可以使用特定的标签来重定向。

客户端跳转:服务器端将请求结果返回给客户端,客户端向服务器发出另一次请求。在客户端跳转过程中是两次不同的请求。在地址栏中显示的是最后一次请求地址。

客户端跳转可以进行站外跳转。

1、链接跳转:<a href=””></a>

2、表单提交

3、Response.sendRedirect(“3.jsp”)

4、<mata http-equiv=”refresh”, content=”32.jsp”/>

5、response.setHeader(“refresh”,” 32.jsp”)

6、客户端跳转“/”代表服务器跟路径webapps

服务器端跳转(容器内跳转):能够自动的在服务器内部进行跳转,这种跳转对用户来说是透明的。两次跳转时同一个request,在地址栏中显示的事第一次页面地址。

只能进行站点内跳转。

1、<jsp:forward page=””/>

2、pageContext.forward()

3、 request.getRequestDispatcher("1.jsp").forward(request,response)

3、服务器端跳转“/”代表站点根路径

请求转发也就是服务器跳转,是服务器内部的操作,浏览器不知道服务器内部发生了这个操作,所以浏览器以为还是访问的是第一次请求的地址,因此地址栏不变,整个过程是在一个请求响应周期内。

请求重定向既客户端跳转,是在浏览器第一次发送请求后,服务器返回一个响应给浏览器,让浏览器去访问另一个地址,这样浏览器就知道了他该跳转了,所以他就去请求服务器返回给他的地址,他的地址栏就发生了变化,而这个过程是发生在两个请求响应周期里的


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/430485.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-27
下一篇2023-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存