회원관리를 위해 로그인 페이지, 로그아웃 처리, 회원가입 페이지, 회원가입 처리 API를 만든다고 가정
@WebServlet(urlPatterns = "/user/login")
public class UserLoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// ...
}
}
@WebServlet(urlPatterns = "/user/logout")
public class UserLogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// ...
}
}
@WebServlet(urlPatterns = "/user/signup")
public class UserSingUpServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// ...
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
// ...
}
}
@Controller
@RequestMapping("/user")
public class UserController {
@GetMapping("/login")
public String login() {
// ...
}
@GetMapping("/logout")
public String logout() {
// ...
}
@GetMapping("/signup")
public String signup() {
// ...
}
@PostMapping("/signup")
public String registerUser(SignupRequestDto requestDto) {
// ...
}
}
@Controller는 해당 클래스가 Controller의 역할을 수행할 수 있도록 등록해줌
@Controller
public class HelloController {...}
각 HTTP Method에 매핑되는 annotation
@GetMapping("/api/get")
public String get() {...}
@PostMapping("/api/post")
public String post() {...}
@PutMapping("/api/put")
public String put() {...}
@DeleteMapping("/api/delete")
public String delete() {...}
중복되는 URL를 단축시켜줌
@Controller
@RequestMapping("/api")
public class HelloController {
@GetMapping("/get")
@ResponseBody
public String get() {
return "GET Method 요청";
}
@PostMapping("/post")
@ResponseBody
public String post() {
return "POST Method 요청";
}
...
}