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

如何在Java中获取完整的请求URL,java,jakarta-ee,Java,Jakarta Ee,我有一个像 www.abc.com/;jsessionid=53AA662D24A89922031913A6E85A005B 很抱歉,我不能在这里指定我的实际站点名称,因此使用abc.com 当上面的url被点击时,我想脱衣;jsessionid=53AA662D24A89922031913A6E85A005B,并重定向到本例中的实际urlhttp://www.abc.com/. 我在servlet中尝试了许多方法来了解请求的URL是否具有“jsessionid”,但我找不到一个方法可以在HT

我有一个像

www.abc.com/;jsessionid=53AA662D24A89922031913A6E85A005B
很抱歉,我不能在这里指定我的实际站点名称,因此使用abc.com

当上面的url被点击时,我想脱衣;jsessionid=53AA662D24A89922031913A6E85A005B,并重定向到本例中的实际urlhttp://www.abc.com/.

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

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

getRequestURI getRequestURL getContextPath getPathInfo 但它们不会返回带有JSSessionID的完整请求url


我尝试过getParameter,getParameterNames,但没有帮助,因为上面的url没有?在jsessionid之前。

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

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

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

谢谢你的回复。我试过了,但没有成功。这里我举了一个例子:在这个链接中,我想检索servlet中的jsessionid值。作为第一个?在JSSessionID之前不存在,我无法检索它。请您帮助我如何检索它。当指定这样一个“示例”站点名称时,标准做法是使用example.com而不是abc.com。实际的域example.com保留用于此用途,而abc.com指向一个真实的站点,显然不是您的站点
public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException {

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

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