@Controller

1. DispatcherServlet

DispatcherServlet

  • 웹 어플리케이션 최전방에서 사용자 요청 접수
  • URL을 기준으로 요청을 처리할 Controller 탐색
  • Controller 호출 및 실행

  • 사용 Annotation: @Controller, @RequestMapping, @Autowired

@RequestMapping

@Controller
@RequestMapping("/path1") //Class Level Mapping
public class exampleController{
	
	@RequestMapping("/path2") //Method Level Mapping
	public String exampleMethod(){
		return "pageName" // /path1/path2/pageName.jsp로 이동
	}
}

@RequestMapping :: @PathVariable

@Controller
@RequestMapping("/path1") 
plblic class exampleController{
	
	@RequestMapping("/{var}") //url을 파라미터로 입력 받음
	public String exampleMethod(@PathVariable String var){
        //요청 url: /path1/test
		return var // /path1/test.jsp로 이동
	}
}

2. ModelAndView를 사용한 모델/뷰 처리

  • 응답으로 View(JSP)와 Model(Domain Object, VO)을 함께 처리할 때 사용
  • 서비스로부터 받아온 데이터를 뷰로 전달해주는 역할
@Controller
plblic class exampleController{
	
	@RequestMapping("/exampleMethod") 
	public ModelAndView exampleMethod(){
        ModelAndView view = new ModelAndView();
        
        view.setViewName("path1/pageName"); //jsp 경로
        view.addObject("key","value"); // 데이터 전달
		return view; /path1/pageName.jsp로 이동
	}
}

리다이렉트(포워드) 처리

  • 컨트롤러에서 클라이너트의 요청을 처리한 후 다른 페이지로 리다이렉트 하고 싶을 때
return "redirect:/path1/pageName" // /path1/pageName으로 redirect
return "forword:/path1/pageName" // /path1/pageName으로 forword