In some cases, you will need to access the HttpServletRequest and HttpServletResponse objects in the Spring MVC controller when processing a request URL. At that point, you need to simply add two variables referencing these two objects as parameters of the method.
In the example of the previous tutorial, we can add two more arguments to the home() method and log some information like this:
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"; } } |
At this point, Spring MVC will automatically put these two objects into our method and thus you can access all the properties of these two objects.
Result:
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 - |
Ravi
Hi , I have a question here , How do we use this HttpServletResponse object in a class which is calling this controller?