0

The following servlet reads the url path parameter. Problem: if the input contains special chars, eg I discovered #, then the string is truncated!

@RestController
public class MyServlet {    
    @GetMapping("/hash")
    @ApiIgnore
    public String hash(HttpServletRequest req) {
        String pw = req.getPathInfo(); //asdfgh
    }
}

`localhost:8080/hash/asdfgh#jkl`

Question: how can I natively pass through the input parameter?

membersound
  • 81,582
  • 193
  • 585
  • 1,120

1 Answers1

2

The part starting from the # is not send to/received by to your servlet.
It is an information used only from the client side (browser) and doesn't make part of a URI.

The RFC2396 states indeed :

When a URI reference is used to perform a retrieval action on the identified resource, the optional fragment identifier, separated from the URI by a crosshatch ("#") character, consists of additional reference information to be interpreted by the user agent after the retrieval action has been successfully completed. As such, it is not part of a URI, but is often used in conjunction with a URI.

davidxxx
  • 125,838
  • 23
  • 214
  • 215