如何在Java中获取完整请求的URL

时间:2013-06-12 14:44:11

标签: java java-ee

我有一个像

这样的网址
www.abc.com/;jsessionid=53AA662D24A89922031913A6E85A005B

(抱歉,我无法在此处指定我的实际网站名称,因此请使用abc.com

当上面的网址被点击时,我想从后端(在我的servlet中)的上面的网址中删除;jsessionid=53AA662D24A89922031913A6E85A005B并重定向到实际的网址(在此示例中为http://www.abc.com/)。

我已经在servlet中尝试了很多方法来了解请求的URL是否具有'jsessionid',但是我找不到一个方法来返回HTTP请求对象上的完整请求的URL

我在HTTP请求对象上尝试了以下方法

  • getRequestURI()
  • getRequestURL()
  • getContextPath()
  • getPathInfo()

但他们没有使用jsessionid返回完整的请求网址。

我已尝试getParameter()getParameterNames()但没有任何帮助,因为上面的网址在?之前没有jsessionid

2 个答案:

答案 0 :(得分:6)

以下是如何在Servlet中检索上面的完整URL

 public void doGet(HttpServletRequest request, HttpServletResponse response)
                       throws IOException, ServletException {

               String url = request.getRequestURL().toString();
              System.out.println(url);
               }

答案 1 :(得分:2)

public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException {

    String jSessionId=request.getParameter("jsessionid");

    System.out.println("jSessionId:"+jSessionId);    
}