UriComponentsBuilder和UriComponents url編碼


Spring MVC 提供了一種機制,可以構造和編碼URI -- 使用UriComponentsBuilder和UriComponents。

功能相當於 urlencode()函數,對url進行編碼, 但同時還支持變量替換

UriComponents uriComponents = UriComponentsBuilder.fromUriString(
        "http://example.com/hotels/{hotel}/bookings/{booking}").build();

URI uri = uriComponents.expand("42", "21").encode().toUri();

  

嗯,expand()是用於替換所有的模板變量,encode默認使用UTF8編碼。

注意,UriComponents是不可變的,expand()和encode()都是返回新的實例。

 

你還可以這樣做:

UriComponents uriComponents = UriComponentsBuilder.newInstance()
        .scheme("http").host("example.com").path("/hotels/{hotel}/bookings/{booking}").build()
        .expand("42", "21")
        .encode();

  

在Servlet環境中,使用子類ServletUriComponentsBuilder提供的靜態工廠方法可以從一個Servlet request中獲取有用的URI信息:

HttpServletRequest request = ...

// Re-use host, scheme, port, path and query string
// Replace the "accountId" query param

ServletUriComponentsBuilder ucb = ServletUriComponentsBuilder.fromRequest(request)
        .replaceQueryParam("accountId", "{id}").build()
        .expand("123")
        .encode();

  

https://www.cnblogs.com/larryzeal/p/6131664.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM