Spring Boot 프로젝트에 JSP 서블릿과 JQuery를 사용하도록 설정

Gradle 기반의 Spring Boot 프로젝트에서 JSP 서블릿과 JQuery를 사용하는 방법은 다음과 같습니다:

핵심 요약

Spring Boot(Gradle)에서 JSP, 서블릿, JQuery를 연동하려면 tomcat-embed-jasper, JSTL 등의 라이브러리와 JSP 뷰 리졸버 설정, webapp 디렉토리 구조, 서블릿 등록, JQuery 로드 등을 모두 적용해야 합니다.


Gradle 의존성 추가

groovy
plugins {
id 'org.springframework.boot' version '2.4.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
id 'war' // JSP 사용시 war 플러그인 필요
}

group = 'org.example'
version = '1.0-SNAPSHOT'
sourceCompatibility = '11'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

WAR 플러그인은 JSP 처리를 위해 필수입니다.


디렉토리 및 JSP 파일 생성

  • src/main/webapp/WEB-INF/views/ 폴더 생성

  • JSP 파일 생성 예시: src/main/webapp/WEB-INF/views/index.jsp

text
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Spring Boot JSP Example</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<h2>Hello, Spring Boot!</h2>
<button id="btn">버튼</button>
<div id="result"></div>
<script>
$('#btn').click(function() {
$('#result').text('JQuery 동작 확인 완료');
});
</script>
</body>
</html>

JSTL 및 JQuery CDN을 <head>에 삽입하여 JS 코드 사용이 가능합니다.


application.properties 뷰 리졸버 설정

text
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

JSP는 반드시 WEB-INF/views 경로 아래에 위치시키고 prefix/suffix 설정을 적용해야 합니다.


컨트롤러 작성 예시

java
@Controller
public class MyController {
@GetMapping("/")
public String index(Model model) {
model.addAttribute("obj", "SpringBoot와 JSP!");
return "index"; // index.jsp 렌더링
}
}

요청 시 JSP를 반환하고 model 데이터도 활용할 수 있습니다.


서블릿 등록 예시

java
package hello.servlet.basic;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/plain");
resp.setCharacterEncoding("utf-8");
resp.getWriter().write("hello " + req.getParameter("username"));
}
}

Spring Boot에서 @ServletComponentScan 어노테이션으로 서블릿을 자동 등록할 수 있습니다.


JQuery 연동 방법

Spring Boot 프로젝트에 JSP 서블릿과 JQuery를 사용하도록 설정

  • JSP 내에서 JQuery CDN 또는 로컬 파일을 <script> 태그로 삽입합니다.

  • JQuery를 사용해 DOM 조작 및 Ajax, 이벤트 처리를 구현합니다.


이와 같이 Gradle 프로젝트 구조와 설정을 적용하면 Spring Boot 환경에서 JSP 뷰 + 서블릿 + JQuery를 모두 사용할 수 있습니다.