Trong một số trường hợp, các bạn sẽ cần truy cập vào các đối tượng HttpServletRequest và HttpServletResponse trong controller của Spring MVC khi xử lý một request URL nào đó. Lúc đó, việc bạn cần làm đơn giản là thêm 2 biến tham chiếu đến 2 đối tượng này dưới dạng là tham số của phương thức.
Trong ví dụ của bài viết trước, mình có thể thêm 2 tham số nữa cho phương thức home() và log một số thông tin như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
package com.huongdanjava.springmvc; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; /** * Handles requests for the application home page. */ @Controller public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class); /** * Simply selects the home view to render by returning its name. */ @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale, Model model, HttpServletRequest request, HttpServletResponse response) { logger.info("Welcome home! The client locale is {}.", locale); logger.info(request.getContextPath()); Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); model.addAttribute("serverTime", formattedDate); logger.info(response.getContentType()); return "home"; } } |
Lúc này, Spring MVC sẽ tự động đưa 2 đối tượng này vào trong phương thức của chúng ta và do đó các bạn có thể truy cập tất cả các thuộc tính của 2 đối tượng này.
Kết quả:
1 2 3 |
INFO : com.huongdanjava.springmvc.HomeController - Welcome home! The client locale is vi. INFO : com.huongdanjava.springmvc.HomeController - /springmvc INFO : com.huongdanjava.springmvc.HomeController - |
Thành Nam
bài viết hay
rất bổ ích cho người mới như em ạ
em cám ơn tác giả nhiều
Giang
a ơi cho em hỏi , khi e thêm chỗ này vô thì k được @RequestMapping(value = “home”) , e để mặc định thì chạy đc … e còn muốn hỏi là : nếu mình muốn thay đổi url của trang web khi mình đã run as thì làm ntn (http://localhost:8080/springmvc/) thay đổi chữ springmvc đó anh
Khanh Nguyen
Em chỉ cần đổi value của @RequestMapping(value = “springmvc”) là được mà!
Tom
=)