일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- FSM
- 이분탐색
- Photon
- Unity3d
- 언리얼엔진
- 워크플로
- Firebase
- 구현
- 유니티
- 프로그래머스
- unityui
- c#
- Unity2D
- 포톤
- 스파르타내일배움캠프
- Unity
- 내일배움캠프
- 스파르타내일배움캠프TIL
- 문자열
- 해시
- 순열
- 유클리드호제법
- UnrealEngine
- 스택
- 알고리즘
- C++
- UE4
- Inventory
- BFS
- QueryDSL
- Today
- Total
개발 낙서장
[JSP] SpringBoot + JSP 설정 본문
JSP란?
JSP(Java Server Pages)는 Java를 기반으로 한 서버 측 웹 개발 기술로, HTML 내에 Java 코드를 작성하여 동적인 웹 페이지를 생성할 수 있는 기술이다.
JSP는 서블릿(Servlet)의 확장 개념으로, 사용자가 웹 서버에 요청을 보내면 서버에서 JSP 파일을 컴파일하여 결과를 HTML로 반환해준다.
여기서 서블릿은 자바에서 HTML 코드를 작성하여 웹 페이지를 생성하는 기술이다.
JSP의 주요 특징
- HTML과 Java의 결합
- HTML 코드에 Java 코드를 삽입해 동적인 데이터 처리와 화면 구성이 가능
- 서블릿의 대체 역할
- 기존 서블릿 코드보다 읽기 쉽고 관리가 편리함
- JSTL 및 커스텀 태그 지원
- JSP 표준 태그 라이브러리(JSTL)로 재사용성과 코드 간소화
- MVC 패턴 구현
- JSP는 주로 View 역할을 담당하며, 비즈니스 로직은 서블릿이나 Service에서 처리
JSP 동작 과정
- 사용자가 JSP 페이지를 요청
- 서버는 JSP를 서블릿으로 변환하고 컴파일
- 서블릿이 실행되어 HTML 결과를 생성
- 서버가 HTML을 사용자에게 반환
JSP의 장단점
장점
- HTML과 Java를 쉽게 결합 가능
- 동적인 웹 페이지를 쉽게 구현 가능
- 다양한 Java 라이브러리와 연동 가능
단점
- 규모가 큰 프로젝트에서는 코드 복잡도가 증가
- React, Vue와 같은 최신 프론트엔드 프레임워크에 비해 유연성이 떨어짐
JSP는 과거 Java 기반 프로젝트에서 많이 사용되었던 기술로 현재는 Thymeleaf, Spring MVC 등 다양한 기술의 등장과 정형화로 대체되고 있다고 한다.
하지만 레거시 코드가 많은 기존 프로젝트에서는 JSP를 요구하므로 심도있게 학습할 필요가 있다고 생각이 되어 시작하게 됐다.
설정
build.gradle
plugins {
id 'java'
id 'war'
id 'org.springframework.boot' version '3.3.5'
id 'io.spring.dependency-management' version '1.1.6'
}
// ...
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
// ...
// JSP
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation group: 'org.glassfish.web', name: 'jakarta.servlet.jsp.jstl', version: '2.0.0'
}
tasks.named('test') {
useJUnitPlatform()
}
JSP는 war 패키징만 가능하다고 한다. 따라서 plugins 설정에 war를 추가해주고 JSP 의존성도 추가해주면 된다.
참고로 Thymeleaf 의존성은 제거해야 한다.
application.properties
# JSP
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
JSP가 들어갈 폴더를 정의한다. 이 설정을 하고 나면 Controller에서 전체 경로를 지정하지 않아도 알아서 인식해서 페이지를 반환해준다.
WEB-INF
JSP는 webapp/WEB-INF/views 안에서 관리해야 한다.
webapp은 웹 애플리케이션의 루트 디렉토리이고 WEB-INF는 webapp에 존재하는 디렉토리이다.
WEB-INF는 웹 애플리케이션의 보안을 담당하는데 해당 경로에 존재하는 관련 파일들을 사용자로부터 숨기는 역할을 한다.
코드 작성
JSP
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
JSP
</div>
</body>
</html>
Controller
package com.bookhub.global.view;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class ViewController {
@GetMapping("/test")
public String index() {
System.out.println("test");
return "test";
}
}
위의 설정을 통해 JSP 파일 이름만 반환해도 해당 파일을 찾아 웹 페이지를 출력해준다.
'Java' 카테고리의 다른 글
[Spring] Redis로 인기 검색어 구현 (0) | 2024.12.18 |
---|---|
[JSP] API 연동 및 데이터 출력 (1) | 2024.12.13 |
[JAVA] compareTo (0) | 2024.11.26 |
[Spring] @RequestPart 테스트 HttpMediaTypeNotSupportedException (0) | 2024.05.17 |
Spring + Redis Cache (0) | 2024.05.13 |