본문 바로가기

Install & Settings

SpringMVC 라이브러리 및 기초 설정 pom.xml + web.xml

 

# 1. Spring 라이브러리 설정은 pom.xml

 

 

프로젝트 내 라이브러리 지정하는 poom.xml  

생성한 Spring 프로젝트에 

'pom.xml 파일이 있다' = 'Maven 으로 원격 라이브러리를 가져다 쓸 수 있다' 는 뜻. 

 

Dynamic Web Project 로 프로젝트를 생성했다면,

Web Content > WEB-INF 아래에 lib 폴더에 .jar 파일을 추가해주어야 한다. 

 

Spring 으로 생성한 프로젝트는 

라이브러리를 따로 추가해주지 않아도 pom.xml 설정으로 라이브러리를 쓸 수 있다. 

 

 

SpringMVC Project 라이브러리 위치 확인

...더보기

SpringMVC Project 에 있는 라이브러리는

Java Resources - Libraries 혹은 프로젝트에서 마우스 우클릭 - Build Path 에서 볼 수 있다. 

 

1) 프로젝트에서 우클릭  >  Build Path  >  Configure Build Path 
2) Java Build Path > Libraries

 

Java Resources 하위에 있는 Libraries 폴더

 

 

 

# 2. Spring 기초설정은 web.xml

 

라이브러리 확인했다면 web.xml 를 찾는다. web.xml 에서 서블릿을 설정하는데, 

서블릿에 DispatcherServlet 을 설정해두면 Controller 를 찾아 사용자 요청주소를 매핑하여 처리해준다.  

프로젝트를 실행하면 Tomcat 서버가 최초 구동되는데, 이 때 web.xml 을 읽고 해당하는 설정을 준비한다.  

 

* Spring 프로젝트 내부 web.xml 위치는  src > webapp > WEB-INF > web.xml 이다. (기본값)  

 

web.xml 위치 :  src > webapp > WEB-INF > ★ 

 

 

web.xml 에서 Servlet , Filter, Error 페이지를 설정한다.

 

Dispatcher Servlet 

위에 언급한 Servlet 은 web.xml 에 있다. 

DispatcherServlet 으로 웹에서 사용자 요청한 키워드를 프로젝트의 Controller 에 매핑하는 역할을 한다. 

프로젝트의 시작점이다. url-pattern 은 [ 키워드.do ] 로 설정했다.

 

Filter : EncodingFilter

하나 더 설정해준 건 인코딩 필터이다.

web.xml 에 인코딩 필터를 설정해두면, 사용자 요청 키워드를 서버로 보내기 전에

/슬래쉬 이하 모든 구문을 UTF-8 로 변환하는 역할을 한다. 

 

Error 페이지

사용자가 요청한 키워드가 Controller 에 없는 경우, 로직이 잘못된 경우에는 400 번대 에러가 발생한다.

익숙한 건 404 에러. web.xml 에서 에러페이지로의 랜딩을 설정한다.

 

예를 들어 사용자가 브라우저 주소창에서 list.do 로 엔터를 치면, Controller 의 매핑주소 중 list.do 를 찾는데

list.do가 있다면 결과값을 반환하고, 없다면 Error 페이지로 랜딩된다. 

 

 

web.xml 에서 Servlet / Error Page / Encoding설정

 

 

board-servlet.xml 위치 확인 

...더보기

board-servlet.xml 위치 :  src > webapp > WEB-INF > spring > appServlet > ★ 

 

 

ViewResolver 

@Controller 에서 view 페이지로 이동할 때,

View 페이지의 위치와 확장자를 설정해두어, 이동이 쉽도록 도와준다.

파일 위치와 확장자가 미리 고정되어 있어 추가로 입력하지 않아도 된다.

 

추후..

DB + Mybatis 연동시 Bean 설정 을 하게 되는데, 

DataSource / SqlSession + SqlSessionFactory 설정을 servlet-context.xml (default 값) 에서 하게된다. 

(자체적으로 board-servlet.xml 으로 이름을 변경함)

 

 

 

* servlet-class / filter-class 의 정확한 위치를 모른다면? 

...더보기

아무 .java 파일에서 import 로 복사해온다.

 

1) JavaRecources 의 아무 .java 파일이나 들어가서 import 구문에 Dispatcher 입력후 Ctrl + 스페이스바 

2) 검색어 자동완성 처럼 Dispatcher 키워드와 맞는 라이브러리 주소가 검색됨 

3) 키워드에 맞는 구문 선택 후 복사해서 쓰기

 

 

1) 아무 .java 파일이나 들어가서 import 구문에 Dispatcher 입력

 

2) Ctrl + 스페이스바 누르면 검색되는 자동완성 중 키워드에 맞는 구문 선택

 

3) 복사해서 쓰기