Bird
Raised Fist0
Spring Bootframework~5 mins

Request mapping by method and path in Spring Boot

Choose your learning style10 modes available
Introduction

Request mapping connects web addresses and HTTP methods to specific code that runs when someone visits those addresses.

You want to run different code when someone visits different web pages.
You need to handle GET requests to show data and POST requests to save data.
You want to organize your web app so each URL does a clear job.
You want to make a REST API where each URL and method means something specific.
Syntax
Spring Boot
@RequestMapping(path = "/example", method = RequestMethod.GET)
public String exampleMethod() {
    // code here
}
Use @RequestMapping on methods or classes to link URLs and HTTP methods.
You can specify the path and the HTTP method like GET, POST, PUT, DELETE.
Examples
This runs when someone visits '/hello' with a GET request.
Spring Boot
@RequestMapping(path = "/hello", method = RequestMethod.GET)
public String sayHello() {
    return "Hello!";
}
This runs when someone sends a POST request to '/submit'.
Spring Boot
@RequestMapping(path = "/submit", method = RequestMethod.POST)
public String submitData() {
    return "Data submitted!";
}
This runs for both GET and POST requests to '/items'.
Spring Boot
@RequestMapping(path = "/items", method = {RequestMethod.GET, RequestMethod.POST})
public String handleItems() {
    return "Items handled!";
}
Sample Program

This controller has two methods for the same path '/greet'. One runs on GET requests and says hello. The other runs on POST requests and thanks the user.

Spring Boot
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @RequestMapping(path = "/greet", method = RequestMethod.GET)
    public String greet() {
        return "Hello, visitor!";
    }

    @RequestMapping(path = "/greet", method = RequestMethod.POST)
    public String greetPost() {
        return "Thanks for posting!";
    }
}
OutputSuccess
Important Notes

Spring Boot also offers shortcuts like @GetMapping and @PostMapping for simpler code.

Always match the HTTP method to what your code should do (GET for reading, POST for creating, etc.).

Summary

Request mapping links URLs and HTTP methods to code.

You can specify path and method with @RequestMapping.

This helps organize web app behavior clearly.

Practice

(1/5)
1. What does the @RequestMapping annotation do in Spring Boot?
easy
A. It styles the HTML page returned by the controller.
B. It creates a new database connection automatically.
C. It links a URL path and HTTP method to a specific method in a controller.
D. It schedules background tasks to run periodically.

Solution

  1. Step 1: Understand the purpose of @RequestMapping

    @RequestMapping is used to connect web requests to controller methods in Spring Boot.
  2. Step 2: Identify what it links

    It links both the URL path and the HTTP method (GET, POST, etc.) to the method that should handle the request.
  3. Final Answer:

    It links a URL path and HTTP method to a specific method in a controller. -> Option C
  4. Quick Check:

    @RequestMapping links URL and method [OK]
Hint: Remember: @RequestMapping connects URL + HTTP method to code [OK]
Common Mistakes:
  • Thinking @RequestMapping styles HTML output
  • Confusing it with database or scheduling annotations
  • Assuming it only maps URL without HTTP method
2. Which of the following is the correct way to map a GET request to path "/home" using @RequestMapping?
easy
A. @RequestMapping(route = "/home", method = GET)
B. @RequestMapping(path = "/home", method = RequestMethod.GET)
C. @RequestMapping(value = "/home", type = "GET")
D. @RequestMapping(method = "GET", url = "/home")

Solution

  1. Step 1: Recall correct @RequestMapping syntax

    The correct syntax uses 'path' or 'value' for URL and 'method' with RequestMethod enum for HTTP method.
  2. Step 2: Match options with syntax

    @RequestMapping(path = "/home", method = RequestMethod.GET) uses path and method=RequestMethod.GET correctly. Others use invalid attribute names or wrong types.
  3. Final Answer:

    @RequestMapping(path = "/home", method = RequestMethod.GET) -> Option B
  4. Quick Check:

    Correct syntax [OK]
Hint: Use 'path' and RequestMethod.GET for GET mapping [OK]
Common Mistakes:
  • Using 'url' instead of 'path' or 'value'
  • Passing HTTP method as string instead of RequestMethod enum
  • Using wrong attribute names like 'route' or 'type'
3. Given this controller method:
@RequestMapping(path = "/test", method = RequestMethod.POST)
public String test() {
    return "Success";
}
What happens when a client sends a GET request to "/test"?
medium
A. The server crashes with an exception.
B. The method runs and returns "Success".
C. Spring returns a 404 Not Found error.
D. Spring returns a 405 Method Not Allowed error.

Solution

  1. Step 1: Identify the mapped HTTP method

    The method is mapped only to POST requests at path "/test".
  2. Step 2: Understand what happens on GET request

    A GET request to the same path is not handled, so Spring returns 405 Method Not Allowed.
  3. Final Answer:

    Spring returns a 405 Method Not Allowed error. -> Option D
  4. Quick Check:

    GET to POST-only path = 405 error [OK]
Hint: GET request to POST-only path causes 405 error [OK]
Common Mistakes:
  • Assuming GET runs the POST method
  • Thinking it returns 404 Not Found instead
  • Believing server crashes on wrong method
4. What is wrong with this mapping?
@RequestMapping(path = "/data", method = "POST")
public String saveData() {
    return "Saved";
}
medium
A. The method attribute should use RequestMethod.POST, not a string.
B. The path attribute cannot be used with @RequestMapping.
C. The method must return void, not String.
D. The method name must be saveDataPost, not saveData.

Solution

  1. Step 1: Check method attribute type

    The method attribute expects a RequestMethod enum value, not a string.
  2. Step 2: Identify correct usage

    Using method = "POST" is invalid; it should be method = RequestMethod.POST.
  3. Final Answer:

    The method attribute should use RequestMethod.POST, not a string. -> Option A
  4. Quick Check:

    method attribute needs RequestMethod enum [OK]
Hint: Use RequestMethod.POST enum, not string "POST" [OK]
Common Mistakes:
  • Passing HTTP method as string instead of enum
  • Thinking path attribute is invalid
  • Assuming return type or method name causes error
5. You want to create two methods in a controller: one handles GET requests at "/items" and another handles POST requests at the same path "/items". Which is the best way to do this?
hard
A. Use two methods with @RequestMapping(path = "/items", method = RequestMethod.GET) and @RequestMapping(path = "/items", method = RequestMethod.POST).
B. Use one method with @RequestMapping(path = "/items") and check HTTP method inside the method manually.
C. Use @RequestMapping(path = "/items") on both methods without specifying method attribute.
D. Use @RequestMapping(method = RequestMethod.GET) on one method and @RequestMapping(method = RequestMethod.POST) on the other without path.

Solution

  1. Step 1: Understand how to map same path with different methods

    Spring allows multiple methods mapped to the same path but different HTTP methods using method attribute.
  2. Step 2: Evaluate options

    Use two methods with @RequestMapping(path = "/items", method = RequestMethod.GET) and @RequestMapping(path = "/items", method = RequestMethod.POST). correctly uses two methods with same path but different HTTP methods. Use one method with @RequestMapping(path = "/items") and check HTTP method inside the method manually. is less clean and error-prone. Use @RequestMapping(path = "/items") on both methods without specifying method attribute. causes ambiguity. Use @RequestMapping(method = RequestMethod.GET) on one method and @RequestMapping(method = RequestMethod.POST) on the other without path. misses path, so won't map correctly.
  3. Final Answer:

    Use two methods with @RequestMapping(path = "/items", method = RequestMethod.GET) and @RequestMapping(path = "/items", method = RequestMethod.POST). -> Option A
  4. Quick Check:

    Separate methods with same path, different HTTP methods [OK]
Hint: Map same path with different methods by specifying method attribute [OK]
Common Mistakes:
  • Not specifying method attribute causing conflicts
  • Checking HTTP method manually inside one method
  • Omitting path attribute causing mapping errors
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard