초웹개_스프링5_SpringMVC(1)

네코·2022년 5월 15일
0

초웹개

목록 보기
8/10
post-thumbnail

스프링MVC 시작

프로젝트 설정

프로젝트 구조

Intellij 환경에서 기본적인 maven 프로젝트를 생성하고 폴더를 하나씩 추가했다.
책의 예제와 같이 pom.xml를 작성했다.
기존에 tomcat을 설치 해둬서 edit configuration을 통해 서버를 설정했다.

스프링 mvc 설정

  • HandlerMapping, ViewResolver 설정
  • DispatcherServlet 설정

WebMvcConfigurer 인터페이스를 구현한 MvcConfig 클래스

  • @EnableWebMvc는 스프링 MVC를 활성화한다.
  • DispatcherServlet의 매핑 경로를 '/'로 주었을 떄 jsp/html/css등을 올바르게 처리하기 위한 설정 추가 (configureDefaultServletHandling 메서드)
  • jsp를 이용해 컨트롤러의 실행 결과를 보여주기 위한 설정(configureViewResolvers 메서드)

web.xml 파일에 DispatcherServlet 설정

스프링은 DispatcherServlet을 통해 웹의 요청을 받아서 처리한다.

  • 10-13행 : DispatcherServlet을 dispatcher이름으로 등록한다.
  • 14-19행 : contextClass 초기화 파라미터를 설정한다.
    자바의 경우 AnotationConfigWebApplicationContext 클래스를 사용한다.
  • 20-26행 : contextConfiguration 초기화 파라미터 값을 지정한다. 지정된 파라미터 ( 설정 파일)을 이용해서 스프링 컨테이너를 초기화한다.

구현과 실행

  • 클라이언트의 요청을 처리할 컨트롤러
  • 결과를 보여줄 jsp

두가지 코드를 작성한다.

컨트롤러란 웹 요청을 처리하고 결과를 뷰에 전달하는 스프링 빈 객체이다.

  • 8행 : @Controller 붙여진 클래스는 스프링mvc에서 컨트롤러로 사용된다.
  • 11행 : 메서드가 처리할 요청 경로 설정, Get에 대한 요청
  • 12행 : Model 인자는 컨트롤러의 처리 결과를 view에 전달할 때 사용
    @RequestParam은 request의 인자 값을 메서드의 파라미터로 전달할 때 사용한다.
    value속성은 HttpRequest파라미터의 이름을 지정하고 required 속성은 필수 여부를 나타낸다.
  • 13행 : greeting 이라는 모델 속성에 값을 설정한다.
  • 14행 : 컨트롤러에서 처리결과를 보여줄 뷰 이름을 호출한다.

Jsp코드

  • 앞서 MvcConfig에서 registry.jsp()를 통해 jsp를 뷰 구현으로 사용할 수 있도록 설정했다.
    뷰 이름이 hello인 경우 접두사,접미사를 붙여 해당 파일을 탐색한다.

  • hello.jsp파일의 14행은 el을 사용했다.
    스프링 MVC가 모델에 추가한 속성을 HttpServletRequest에 옮겨 줘서 사용이 가능하다.

결과화면

0개의 댓글