How can I get the request url from a java filter?

I am trying to write a filter that can get the request URL, but I'm not sure how to do this.

Here is what I still have:

import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; public class MyFilter implements Filter { public void init(FilterConfig config) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException { chain.doFilter(request, response); String url = ((HttpServletRequest) request).getPathTranslated(); System.out.println("Url: " + url); } public void destroy() { } } 

When I click on a page on my server, the only output I see is "Url: null".

What is the correct way to get the requested URL from a given ServletRequest object in a filter?

+55
java url servlet-filters
Dec 08 '10 at 16:09
source share
3 answers

Is this what you are looking for?

 if (request instanceof HttpServletRequest) { String url = ((HttpServletRequest)request).getRequestURL().toString(); String queryString = ((HttpServletRequest)request).getQueryString(); } 

To restore:

 System.out.println(url + "?" + queryString); 

Information about HttpServletRequest.getRequestURL() and HttpServletRequest.getQueryString() .

+125
Dec 08 '10 at 16:11
source share
 request.getRequestURL(); 
+1
Dec 08 '10 at 16:10
source share

Based on another answer on this page ,

 public static String getCurrentUrlFromRequest(ServletRequest request) { if (! (request instanceof HttpServletRequest)) return null; return getCurrentUrlFromRequest((HttpServletRequest)request); } public static String getCurrentUrlFromRequest(HttpServletRequest request) { StringBuffer requestURL = request.getRequestURL(); String queryString = request.getQueryString(); if (queryString == null) return requestURL.toString(); return requestURL.append('?').append(queryString).toString(); } 
+1
Jun 29 '17 at 16:19
source share



All Articles