JAVA如何获得服务器端重定向后的URL?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA如何获得服务器端重定向后的URL?相关的知识,希望对你有一定的参考价值。
java通过http请求到服务器端,服务器端给重定向到其他网址,我要如何获得重定向后的网址?
参考技术A request.getHeader("REDIRECT_URL");或试试
那在servlet里边或者action调用request.getRequestURL()就是了。
如果是获得容器内部的请求URI:request.getRequestURI(),两个方法挺象的。 参考技术B 是客户端获取?
那返回302的,url在header里面追问
是客户端获取,只有302才能获取得到么?正常返回的话获取不到么?谢谢
追答标准重定向,是302的状态的。
非标准,还可能是html中的refresh、还有可能HTML里面的js跳转。
你根据具体情况决定吧。
客服端重定向和服务器重定向
客服端重定向和服务器重定向
一、服务器重定向
服务器重定向(内部跳转、服务器跳转),客户端只发送了一次请求(客户端只产生了一次请求),服务器接收到该条请求后,服务器可以这一次请求的目的来在服务内部进行多次跳转,
因为客户端只发送了一次请求,在该次访问过程中来自外部的请求有且只有一请求进入了内部,所以服务器重定向在客户端(浏览器)的URL地址栏上是没有发生变化的。
从客户端到服务端,对于服务端来说进行了一次重定向。
request.getRequestDispatcher("new.jsp").forward(request, response);//转发到new.jsp
二、客户端重定向
客户端重定向(外部跳转、客户端跳转),当客户端向服务器发送一个请求,请求当前资源时,这个资源向客户端发送一个去请求其他地址的回应。客户端再根据这个地址去进行下一次请求(即客户端产生了两次请求),因为客户端第一次发送了一次请求,该请求到服务器响应返回带着进下一次请求要的地址,然后客户端收到响应后的地址再一次发生请求跳转页面,所以客户端重定向在客户端(浏览器)的URL地址栏上是会发生变化的。
从客户端到服务端,对于客户端来说进行了两次不同重定向。
response.sendRedirect("new.jsp");//重定向到new.jsp
三、重定向
标准意义上的“重定向”指的是HTTP重定向,它是HTTP协议规定的一种机制。这种机制是这样工作的:当client向server发送一个请求,要求获取一个资源时,在server接收到这个请求后发现请求的这个资源实际存放在另一个位置,于是server在返回的response中写入那个请求资源的正确的URL,并设置reponse的状态码为301(表示这是一个要求浏览器重定向的response),当client接受到这个response后就会根据新的URL重新发起请求。重定向有一个典型的特症,即,当一个请求被重定向以后,最终浏览器上显示的URL往往不再是开始时请求的那个URL了。这就是重定向的由来。
借鉴于:http://blog.csdn.net/bluishglc/article/details/7953614
以上是关于JAVA如何获得服务器端重定向后的URL?的主要内容,如果未能解决你的问题,请参考以下文章