Lấy base URL trong Controller trong Spring MVC và Spring Boot
Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh
Khi làm việc với các ứng dụng web sử dụng Spring MVC hoặc Spring Boot, đôi khi chúng ta sẽ có nhu cầu lấy thông tin base URL của ứng dụng để làm gì đó. Base URL ở đây là https://huongdanjava.com hoặc là https://google.com đó các bạn. Để làm được điều này, các bạn có thể dùng class ServletUriComponentsBuilder của Spring.
Cụ thể class này nó có một phương thức tên là fromRequestUri() với tham số là đối tượng của class HttpServletRequest. Chúng ta sẽ lấy được base URL của ứng dụng với đối tượng của class HttpServletRequest này, cụ thể như sau:
String baseUrl = ServletUriComponentsBuilder.fromRequestUri(request) .replacePath(null) .build() .toUriString();
Phương thức fromRequestUri() sẽ trả về schema (http hoặc https), host, port và context path của ứng dụng. Vì nhu cầu của chúng ta chỉ cần schema, host và port nên như các bạn thấy, chúng ta cần gọi thêm replacePath() với null value để remove context path này.
Full code:
package com.huongdanjava.springboot; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; @Controller public class HelloController { @RequestMapping("/hello") public String home(HttpServletRequest request) { String baseUrl = ServletUriComponentsBuilder.fromRequestUri(request) .replacePath(null) .build() .toUriString(); System.out.println(baseUrl); return "home"; } }
Kết quả:
Bài viết gốc được đăng tải tại huongdanjava.com
Có thể bạn quan tâm:
- Internationalization trong Spring MVC
- Giới thiệu về Spring Boot. Spring Boot là gì?
- Hot Reload với dự án Spring Boot trên IntelliJ
Xem thêm Việc làm Developer hấp dẫn trên TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- i iOS 18 có gì mới? Có nên cập nhật iOS 18 cho iPhone của bạn?
- G Gamma AI là gì? Cách tạo slide chuyên nghiệp chỉ trong vài phút
- P Power BI là gì? Vì sao doanh nghiệp nên sử dụng PBI?
- K KICC HCMC x TOPDEV – Bước đệm nâng tầm sự nghiệp cho nhân tài IT Việt Nam
- T Trello là gì? Cách sử dụng Trello để quản lý công việc
- T TOP 10 SỰ KIỆN CÔNG NGHỆ THƯỜNG NIÊN KHÔNG NÊN BỎ LỠ
- T Tìm hiểu Laptop AI – So sánh Laptop AI với Laptop thường
- M MySQL vs MS SQL Server: Phân biệt hai RDBMS phổ biến nhất
- S SearchGPT là gì? Công cụ tìm kiếm mới có thể đánh bại Google?