Servlet URL pattern to match a URL that ends with a slash ("/")

Jon Cram picture Jon Cram · Jan 19, 2009 · Viewed 11.4k times · Source

I'd like to specify a Servlet URL pattern to match a URL that ends with a slash ("/") and only a slash.

I understand that the pattern

    /example/path/*

will match a URL of

    http://example.com/example/path/

and that this appears to work. However, that same pattern would also match URLs of

    http://example.com/example/path/a/
    http://example.com/example/path/b/
    http://example.com/example/path/c/

I'm merely looking for a URL pattern that will match http://example.com/example/path/ only without also matching http://example.com/example/path/a/ and so on.

Clarification: a URL pattern ending with a slash is not allowed.

Answer

Peter Štibraný picture Peter Štibraný · Jan 19, 2009

It's quite possible that you can't do this by mapping in web.xml.

What you can do is to map servlet to /mypath/* and then check part after /mypath/ via request.getPathInto(). If it is "/", run your code. If it isn't, return 404 error.