Spring MVC를 이용한 웹 페이지 작성 1

oyeon·2021년 1월 19일
0
post-custom-banner

환경 설정

  1. maven project webapp으로 생성
  2. resources 폴더와 같은 위치에 java 폴더 생성
  3. pom.xml 라이브러리 추가
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>kr.or.connect</groupId>
	<artifactId>mvcexam</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>mvcexam Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<spring.version>4.3.5.RELEASE</spring.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>2.3.1</version>
			<scope>provided</scope>
		</dependency>

		<!-- https://mvnrepository.com/artifact/jstl/jstl -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>mvcexam</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.6.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
  1. Project Facets
  • Dynamic Web Module : 3.1
  • Java : 1.8
  • JavaScript : 1.0
  1. Navigator 내에서 mvcexam/.settings/org.eclipse.wst.common.project.facet.core.xml 수정
  • version="2.3" -> version="3.1"
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="jst.web" version="3.1"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
  <installed facet="java" version="1.8"/>
</faceted-project>
  1. 404 Error
  • 19일 실습 중 web.xml 자체를 인식을 못하여 404 에러가 발생했다. 이를 해결하기 위해 19일에 밤을새고, 20일 오후 8시에 결국 해결했다.
  • jdk, eclipse를 각각 부스트 코스 환경과 동일하게 1.8 version, neon 으로 재설치하니깐 그제서야 동작했다.
  • 사실 미리 눈치챌 수 있는 포인트가 존재했다. 강의 중 mvcexam/.settings/org.eclipse.wst.common.project.facet.core.xml 을 수정해야 했다. pom.xml을 수정하고 maven update를 했을 때 이 부분이 자동 업데이트 되어야 했다. 하지만 내 경우는 파일 내용이 비어있었고, project facets에서 Dynamic Web Module과 javascript 부분도 체크되지 않았다. 이를 대수롭지 않게 여기고 직접 체크하고 넘어갔다.
  • 일단 나는 Java11을 사용하고 있었는데, 찾아보니 Java11은 spring 5.1 version 이상에서 지원한다. 그래서 Spring version을 변경해보기도 하고, .m2 폴더의 파일을 지우고, clean 하는등의 작업을 계속 진행했다. 하지만 결국 잘 되지 않았다. 다른 문제점 때문일 수도 있지만 나는 Java11이 다른 라이브러리들과의 호환이 잘 되지 않아 제대로 인식하지 못한 것 같다고 결론을 내렸다. 결국 jdk를 1.8 버전, eclipse을 Neon 버전으로 재설치 후 다시 해보니 정상적으로 동작하였다.
  • 비록 이틀 동안 아무것도 못했지만 이 경험으로 인해 부스트 코스를 수료할 때까지 환경 설정을 걱정할 필요는 없어진 것 같다. + Tomcat 서버 등등 만져보며 환경 설정에 대한 이해도가 높아졌다.
profile
Enjoy to study
post-custom-banner

1개의 댓글

comment-user-thumbnail
2021년 1월 20일

ㅎㅇ

답글 달기