Lấy base URL trong Controller trong Spring MVC và Spring Boot

Công Nghệ
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 ở...

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ả:

Lấy base URL trong Controller trong Spring MVC và Spring BootLấy base URL trong Controller trong Spring MVC và Spring Boot

Bài viết gốc được đăng tải tại huongdanjava.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên Station D

Bài viết liên quan

Ngành IT: Làm việc “trên mây” kiếm nhiều tiền nhất hiện nay

Ngành IT: Làm việc “trên mây” kiếm nhiều tiền nhất hiện nay

Kết quả từ cuộc khảo sát đầu năm của Station D về lương bổng của lập trình viên cho thấy nhiều thay đổi đã và đang diễn ra trong ngành IT – cuộc khảo sát tập trung vào các câu hỏi về khối lượng công việc, triển vọng cũng như...

By stationd
Đâu chỉ mỗi Bitcoin, công nghệ Blockchain còn nhiều ứng dụng hơn thế!

Đâu chỉ mỗi Bitcoin, công nghệ Blockchain còn nhiều ứng dụng hơn thế!

Khi nhắc đến blockchain , lập tức mọi người thường nghĩ ngay đến các loại tiền mã hóa, chẳng hạn như bitcoin. Tuy nhiên, blockchain lại là công nghệ tạo ra tiền mã hóa nhưng bản thân công nghệ này không phải là tiền mã hóa như cách mà chúng...

By stationd
Mock phương thức static trong Unit Test sử dụng PowerMock

Mock phương thức static trong Unit Test sử dụng PowerMock

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh Trong bài viết này, mình sẽ hướng dẫn các bạn Mock các phương thức static trong Unit Test các bạn nhé! Nếu bạn nào chưa biết về Mock trong Unit Test thì mình có thể nói sơ qua...

By stationd