이 글은 '코드로 배우는 스프링 웹 프로젝트 개정판' 책과 학원 강의 내용을 토대로 정리한 내용입니다. |
#
이클립스에서 Spring Legacy Project를 생성하면 스프링의 기본 버전은 3.x이고, JDK 버전도 1.6으로 설정되어 있습니다.
그래서 개발하기 전에 몇 가지 설정하는 과정을 거쳐야합니다.
# 기본 설정 (1)
Spring Legacy Project 선택 → 우클릭 → Properties → Project Facets 에서 아래 목록을 선택, 버전 변경을 합니다.
- Dynamic Web Module Version 3.1 (톰캣 버전이 8.5이면 3.1로 선택)
- Java 선택 Versiont 1.8 (JDK 버전과 동일한 버전)
- JavaScript 선택 Version 1.0
- 우측 [Runtimes] 에서 서버(Apache Tomcat v8.5) 선택
# 기본 설정 (2)
아래 두 가지는 이미 선택되어 있을 경우가 높지만 확인하면 좋습니다.
- Java Compiler 를 선택한 후 Enable project specific settings 이 선택되어 있는지 확인
- Compiler compliance level이 1.8로 되어 있는지 확인
# pom.xml 설정
다음은 pom.xml 파일의 설정을 변경합니다. 참고로 코드 수정 후 저장을 하면 바로 빌드가 되기 때문에 pom.xml에서 변경할 설정을 다 바꾼 뒤 마지막에 저장하는 것을 권장합니다.
1. Java, Spring 버전 수정
- Java 버전은 설치된 JDK 버전과 맞춰줍니다.
- Spring Framework 버전은 최신 버전이 있지만 저는 4.0.0.으로 하겠습니다.
(※ 스프링의 더 다양한 버전은 Maven Repository(여기)에서 확인할 수 있습니다.)
<java-version>1.8</java-version>
<org.springframework-version>4.0.0.RELEASE</org.springframework-version>
2. Javax.servlet 버전 수정
servlet-api 앞에 javax. 문자열을 추가하고 servlet과 jsp-api 버전을 수정합니다.
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
3. apache.maven-compiler-plugin 버전 수정
플러그인 버전은 Java 버전과 동일하게 변경합니다.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
4. 추가할 의존 라이브러리를 <dependencies></dependencies> 안에 작성
이 부분은 나중에 추가해도 됩니다. (예를 들어 Oracle DB를 사용하기 위해서 관련 라이브러리를 가져오는 등)
5. 프로젝트 업데이트
pom.xml 수정을 마치면 Project 우클릭 → Maven → Update Project 선택해서 업데이트 합니다.
업데이트 완료 후 Package Explorer에서 라이브러리 버전이 1.8로 된 것을 확인할 수 있습니다.
# web.xml 설정
pom.xml 파일 설정이 끝나면 web.xml 파일로 넘어갑니다. 위치는 src/main/webapp/WEB-INF/ 안에 있습니다.
1. Welcom File List 추가
web.xml 파일 상단에 아래의 코드를 추가합니다.
웰컴 파일 리스트는 최상위 경로 요청이 들어오면 웰컴 파일(home.do)로 forward 이동시킵니다.
사용자가 주소창에 google.com/home.do 라고 검색(요청)하지 않고 google.com만 검색해도 index페이지(home.do)로 이동하게 하는 것입니다.
<welcome-file-list>
<welcome-file>home.do</welcome-file>
</welcome-file-list>
2. appServlet의 경로 설정
서블릿 맵핑 안의 url 패턴이 /로 되어있는데 *.do로 변경합니다.
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3. 인코딩 필터(UTF-8)
post 방식으로 전송될 때 한글이 깨지지 않도록 web.xml 파일 하단에 인코딩 필터를 정의하고 맵핑합니다.
<!-- 필터 정의 -->
<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>
</filter>
<!-- 필터 맵핑 /* 는 모든 경로의 파일을 말한다. -->
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
# HomeController.java 수정
Java Resources → src/main/java → 패키지 → HomeController.java 파일을 열어서 @Controller, @RequestMapping을 재설정 합니다.
@Controller
public class HomeController {
@RequestMapping("/home")
public String home() {
return "home";
}
}
# home.jsp 템플릿 설정
Windows → Preferences 를 클릭합니다.
오른쪽 메뉴 중에서 Web → JSP File → Editor → Templates 을 선택합니다.
템플릿 중 New JSP File (html 5) 을 선택하고 Edit을 클릭합니다.
기존의 템플릿을 지우고 아래 템플릿으로 변경합니다.
코드 중에 trimDirectiveWhitespaces는 나중에 브라우저에서 '소스보기'를 할 경우 스크립트 코드로 인한 공백을 제거하는 기능입니다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=${encoding}"
pageEncoding="${encoding}"%>
<%@ page trimDirectiveWhitespaces="true" %>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
<meta charset="${encoding}" />
</head>
<body>
${cursor}
</body>
</html>
# home.jsp 페이지 다시 생성
기존에 있던 home.jsp 페이지를 삭제하고 동일한 이름으로 재생성 합니다.
조금 전에 수정한 JSP File 템플릿으로 나오는지 확인합니다.
# Run on Server
여기까지 초기 설정을 마쳤으면 Project 우클릭 → Run As → Run on Server 를 클릭해서 실행되는지 확인합니다.
주의할 점은 개별 파일(Ex. home.jsp)을 선택해서 실행하면 경로가 잘 못 요청되어서 404error가 발생하니 반드시 프로젝트를 선택해야 합니다.)
아래 사진 처럼 화면이 나오면 정상적으로 설정 완료 된 것입니다.
'웹 개발 > Spring' 카테고리의 다른 글
[Spring/Maven] 메이븐 설치, 환경변수 설정 (1) | 2021.03.02 |
---|---|
[Spring/Plugin] 이클립스에 STS 설치, Spring Legacy Project 생성과 기본 구조 (1) | 2021.02.27 |
[Tomcat/Windows 10] 아파치 톰캣(Apache Tomcat) 8.5 설치, 연동 (0) | 2021.02.20 |