[SPRING] 게시판만들기 5 [ Spring MVC ]

🐷Jinie (juniorDeveloper)·2020년 11월 30일
0

JSP/MVC/SPRING

목록 보기
55/81

  • struts를 비롯한 대부분의 MVC 프레임워크는 비슷한 구조를 가졌다.
  • Spring 프레임워크와 구조가 비슷한 MVC프레임워크를 연습했고
  • 이번에는 Spring MVC를 적용해보자
  • Spring MVC 프레임워크 와 MVC 프레임워크가 다른점은 우리가 직접 DispatcherServlet을 만드느냐 Spring에서 제공하는 DispatcherServlet을 사용하느냐의 차이
    이에따라, String return 대신 ModelAndView형 return
    또한, viewResolver 와 view 두가지가 존재하는 부분이 차이가 있다.

1. web.xml 수정하기

  • Spring MVC에서 가장 중요한 요소가 모든 클라이언트의 요청을 가장 먼저 받아들이는 DispatcherServlet이다.
  • Spring MVC 적용에서 가장 먼저 해야할 일은 WEB-INF/web.xml 파일에 등록된 DispatcherServlet 클래스 설정을 스프링 프레임워크에서 제공하는 DispatcherServlet으로 변경하는 것이다.
  • DispatcherServlet클래스를 스프링에서 제공하는 DispatcherServlet으로 변경한다.
<servlet-class>
	org.springframework.web.servlet.DispatcherServlet
</servlet-class>
  • 사용자의 요청으로 DispatcherServlet 객체가 생성되고 나면 Dispatcher 클래스에 재정의된 init()메서드가 자동으로 실행되어 XmlWebApplicationContext라는 스프링 컨테이너가 구동된다.
  • 이때, XmlWebApplicationContext은 DispatcherServlet이 자동생성
  • DispatcherServlet은 반드시 handlerMapping, viewResolver, Controller와 상호작용

2. 스프링 설정파일 등록

  • DispatcherServlet은 자신이 사용할 객체들을 생성하기 위해서 스프링컨테이너를 구동한다.
  • 이때, 스프링 컨테이너를 위한 설정파일의 이름과 위치는 서블릿 이름을 기준으로 자동결정
  • 필요에따라 이부분을 설정하기 위해서는 서블릿 초기화 파라미터를 이용한다.



3. 인코딩 설정

  • 기존에는 DispatcherServlet파일에 직접적으로 인코딩타입을 UTF-8로 설정했다.
  • 하지만 이부분은 스프링에서 제공하는 DispatcherServlet에서는 없다.
  • 따라서, web.xml파일에 CharacterEncodingFilter 클래스를 필터로 등록한다.
  • 필터는 엘리먼트 이름만 다를 뿐, 서블릿과 거의 비슷한 형태로 동작
  • characterEncoding이라는 이름으로 등록한 CharacterEncodingFilter 객체가 생성되고 나면 init-param으로 설정한 encoding 파라미터 정보를 읽어 인코딩 방식으로 설정.
  • filter-mapping에서 url-pattern을 "*.do"로 설정해서
    확장자가 .do인 모든 파일에서 일괄 한글처리한다.

4. 기존 Controller 정리하기

  • 위와같은 4가지 파일을 삭제한다.
  • 이후, SpringMVC프레임워크로 대체예정
  • 이렇게 springframework에서 Controller로 가져온다.
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글