본문 바로가기
Java/└ Maven

Maven) Maven 사용해보기

by 박채니 2022. 8. 2.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


Maven 사용해보기

 

index.jsp

<script src="${pageContext.request.contextPath}/js/jquery-3.6.0.js"></script>
<body>
	<h2>Hello World!</h2>
	<button id="btn">ajax</button>

<script>
document.querySelector("#btn").addEventListener('click', (e) => {
	$.ajax({
		url : "${pageContext.request.contextPath}/helloworld",
		success(response) {
			console.log(response);
		},
		error : console.log
	});
});
</script>
</body>

 

HelloworldServlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Map<String, Object> map = new HashMap<>();
    map.put("msg", "안녕하세요");
    map.put("num", 123);
    map.put("today", new Date());

    // gson의 의존을 maven을 통해 프로젝트에 주입받기
    // 1. pom.xml 의존등록
    // 2. gson의존을 지역저장소에 다운
    // 3. project와 연결
    Gson gson = new Gson();
}

Gson 형식으로 데이터를 보내려고 하는데, gson.jar 파일이 없어 컴파일 오류가 나는 상황입니다.

기존에는 파일을 다운로드 받아 WEB-INF/lib 파일에 직접 저장하여 사용 (프로젝트가 gson.jar에 의존)하였지만,

gson 의존을 maven을 통해 프로젝트에 주입 받아보겠습니다.

 

① pom.xml 의존등록

https://mvnrepository.com/

<dependency>를 복사하여 pom.xml에 붙여넣어줍니다.

<dependencies>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.9.0</version>
</dependency>
</dependencies>

 

저장함과 동시에 

② gson 의존을 지역저장소에 다운 받기 시작하며, ③ project와 연결 시켜줍니다.

 

HelloworldServlet의 Gson이 auto import되는 것을 확인할 수 있으며, 사용 가능합니다.

import com.google.gson.Gson;

/**
 * Servlet implementation class HelloworldServlet
 */
@WebServlet("/helloworld")
public class HelloworldServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Map<String, Object> map = new HashMap<>();
		map.put("msg", "안녕하세요");
		map.put("num", 123);
		map.put("today", new Date());
		
		// gson의 의존을 maven을 통해 프로젝트에 주입받기
		// 1. pom.xml 의존등록
		// 2. gson의존을 지역저장소에 다운
		// 3. project와 연결
		Gson gson = new Gson();
		response.setContentType("application/json; charset=utf-8");
		gson.toJson(map, response.getWriter());
	}
}

잘 출력되는 것을 확인할 수 있습니다.


지역저장소 확인하기

C드라이브 - 사용자 - .m2 - repository

<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.0</version>

groupId, artifactId, version이 패키지 형태이므로, 폴더형태로 되어있습니다.

 

com - google - code - gson - gson - 2.9.0

gson-2.9.0.jar가 존재하는 것을 확인할 수 있으며, source 코드까지 다운로드 된 것을 확인할 수 있습니다.

 


다만, JSTL 관련해선 오류가 발생!

 

pom.xml에 JSTL 등록 후 사용 시

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

 

index.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<script src="${pageContext.request.contextPath}/js/jquery-3.6.0.js"></script>
<body>
	<c:set var="txt">jstl</c:set>
	${txt}

절대 URI값을 찾을 수 없다며 500 오류가 발생한 것을 확인할 수 있습니다.

 

이런 경우, 기존과 동일하게 WEB-INF/lib 폴더를 생성하여 위치 시켜주면 됩니다.

이미 다운로드가 되었으므로 지역저장소에서 다운로드된 파일을 가져와 위치 시켜주었습니다.

잘 출력되는 것을 확인할 수 있습니다.

'Java > └ Maven' 카테고리의 다른 글

Maven) Maven이란?, 프로젝트 생성 및 환경설정  (0) 2022.08.02