-
[Spring] 게시판 만들기(8) - 디렉토리 구조 및 설정 파일 변경(web.xml, *-context.xml)Spring/4.3.x - 게시판 만들기 2018. 11. 30. 11:45반응형
Spring MVC Project 디렉토리 구조
src/main/java
- 자바 파일 디렉토리
src/main/resources
- 리소스 파일(컴파일되지 않는 비실행 파일) 디렉토리 (mapper, sql 등)
src/test/java :
- 테스트 자바 파일 디렉토리
src/test/resources
- 테스트 리소스 파일 디렉토리
Maven Dependencies
- Maven을 통해 다운받은 라이브러리 파일 (mapper, sql)
src/main/webapp/resources
- 리소스 파일(컴파일되지 않는 비실행 파일) 디렉토리 (js, css, image 등)
WEB-INF 디렉토리는 외부에서 직접 접근이 차단되어 컨트롤러를 통하여 접근이 가능합니다.
src/main/webapp/WEB-INF/classes
- 클래스 파일 디렉토리
src/main/webapp/WEB-INF/spring
- 스프링 환경 설정 파일 디렉토리 (root-context.xml, servlet-context.xml)
src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
- Dispatcher 서블릿과 관련된 view 지원 및 bean을 설정하는 파일입니다.(Controller 등)
src/main/webapp/WEB-INF/spring/root-context.xml
- 공통 bean을 설정하는 파일입니다.(Service, Repository, DB, log 등)
src/main/webapp/WEB-INF/views
- 뷰 파일 디렉토리 (html, jsp)
src/main/webapp/WEB-INF/web.xml
- 설정을 위한 배포 설명자(Deployment Descriptor입니다) 파일입니다. 이 파일은 WAS(Web Application Server)가 최초 구동될 때 즉 톰켓이 최초 구동될 때 web.xml을 읽고 그에 해당하는 설정을 구성합니다. 즉 각종 설정을 위한 설정 파일이라고 할 수 있습니다.
pom.xml
- maven에서 참조하는 설정 파일
설정 파일 변경(web.xml, *-context.xml)
1. index.jsp 추가하기
1_1. web.xml에 welcome-file-list을 추가하세요.
123<welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>cs 1_2. webapp폴더 밑에 index.jsp 파일을 생성하세요.
<welcome-file-list> 태그는 루트 경로로 접근했을 경우에 호출되는 페이지를 설정할 수 있습니다.
1_3. localhost:9090/board 호출 시에 추가한 index.jsp가 호출되는지 확인하세요.
2. web.xml에 servlet, servlet-mapping 태그 변경
클라이언트로부터 어떠한 요청이 오면 Tomcat 같은 ‘ServletContainer’ 가 요청을 받는데, 이때 제일 앞에서 서버로 들어오는 모든 요청을 처리하는 프론트 컨트롤러를 Spring 에서 정의하였고, 이를 DispatcherServlet 이라고 합니다. DispatcherServlet 설정은 web.xml 에서 다음과 같이 할 수 있습니다.
2_1. 하나 이상의 xml 설정 파일을 사용하기 위해서 servlet-context.xml 을 *-context.xml 로 변경하세요.
123456789101112131415<servlet><servlet-name>appServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring/appServlet/*-context.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>appServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>cs 2_2.SampleController.java를 생성하세요.
123456789101112131415161718package com.spring.board;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping(value = "/sample")public class SampleController {@RequestMapping(value = "/getSample")public void getSample(HttpServletRequest request, HttpServletResponse reponse) throws Exception {System.out.println("getSample");}}cs 2_3. localhost:9090/board/sample/getSample 호출 시에 console에 값이 출력되는지 확인하세요.
3. UTF-8 설정 추가
스프링은 웹 요청과 응답에 대한 인코딩 처리를 위해 CharacterEncodingFilter 를 제공합니다. 이를 통해, 인코딩 처리를 하려면 web.xml 에서 CharacterEncodingFilter 를 필터로 등록해두고 <init-param>의 encoding 속성을 통해 인코딩 방식을 설정할 수 있습니다. 또한 <filter-mapping>을 통해 어느 요청 경로에 대해 필터를 적용할 것 인지에 대한 범위 설정도 가능합니다.
12345678910111213141516<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>cs 소스 코드는 Github Repository - https://github.com/tychejin1218/board_v1 (branch : section08) 를 참조하세요.
Github에서 프로젝트 가져오기 - https://tychejin.tistory.com/33반응형'Spring > 4.3.x - 게시판 만들기' 카테고리의 다른 글
[Spring] 게시판 만들기(10) - log4j->logback으로 변경 (7) 2018.12.13 [Spring] 게시판 만들기(9) - MySQL 연동 (11) 2018.12.04 [Spring] 게시판 만들기(7) - MySQL SCHEMA 및 TALBE 생성하기 (8) 2018.11.30 [Spring] 게시판 만들기(6) - MySQL 다운로드 및 설치하기 (1) 2018.11.29 [Spring] 게시판 만들기(5) - Spring MVC 프로젝트 생성 (0) 2018.11.29