인프런 커뮤니티 질문&답변

gh3298님의 프로필 이미지
gh3298

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

JSP로 회원 관리 웹 애플리케이션 만들기

jsp 파일 인식문제

작성

·

761

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

 

build.gradle

plugins {
   id 'java'
   id 'war'
   id 'org.springframework.boot' version '3.2.5'
   id 'io.spring.dependency-management' version '1.1.4'
}

group = 'hello'
version = '0.0.1-SNAPSHOT'

java {
   sourceCompatibility = '17'
}

configurations {
   compileOnly {
      extendsFrom annotationProcessor
   }
}

repositories {
   mavenCentral()
}

dependencies {
   implementation 'org.springframework.boot:spring-boot-starter-web'

// jsp 추가
   implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:10.1.17'
   implementation 'javax.servlet:jstl'
// jsp 추가 끝

   compileOnly 'org.projectlombok:lombok'
   annotationProcessor 'org.projectlombok:lombok'
   providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
   testImplementation 'org.springframework.boot:spring-boot-starter-test'
   testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
   useJUnitPlatform()
}

현재 aaa.html과 new-form.jsp 파일이 같은 경로에 있는데 jsp 파일만 못찾겠다고 뜹니다..

해결해 보려고 webConfig 파일 만들어서 설정도 해보고 properties파일에도 설정을 해보았는데 안되네요.. 무엇이 문제일까요??

 

WebConfig.java

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/static/jsp/members/");
        resolver.setSuffix(".jsp");
        registry.viewResolver(resolver);
    }
}

application.properties

spring.mvc.view.prefix=/static/jsp/members/
spring.mvc.view.suffix=.jsp

 

resources/static/jsp/members/new-fom.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/jsp/members/save.jsp" method="post">
    username: <input type="text" name="username">
    age: <input type="text" name="age">
    <button type="submit">전송</button>
</form>
</body>
</html>

webapp폴더가 없이 resources폴더가 있는게 문제인걸까요? 김영한강사님 강읠르 보면 webapp/... 이런경로에 파일을 생성하시던데 저는 프로젝트를 생성하니 webapp폴더 없이 resources폴더만 있어서 그냥 사용하고 있는데..

답변 2

0

안녕하세요. gh3298님, 공식 서포터즈 OMG입니다.

build.gradle의 jsp 의존성은 다음을 적용해주세요

image

//JSP 추가 시작
 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
 implementation 'jakarta.servlet:jakarta.servlet-api' //스프링부트 3.0 이상    implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' //스프링부트 3.0 이상
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //스프링부트 3.0 이상
//JSP 추가 끝

image

그리고 jsp는 아래 경로에 추가해주시면 됩니다.

WEB-INF 경로를 참고해주세요.

src > main > webapp > WEB-INF 대소문자 및 '-'주의

image

 

image

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

gh3298님의 질문상황과 관련하여, JSP 파일 인식 문제와 관련된 해결책을 찾기에 가장 적합한 기존 답변을 찾았습니다. 답변은 Spring Boot에서 JSP 파일을 적용하는 방법과 관련된 내용을 포함하고 있으며, 특히 Spring Boot 3.x 버전 이상에서 필요한 설정 변화에 대해 언급하고 있습니다.

Spring Boot 3.x 버전부터는 javax.servlet:jstl 대신 jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-apiorg.glassfish.web:jakarta.servlet.jsp.jstl 의존성을 사용해야 합니다. 이는 Servlet과 JSP가 Jakarta EE로 이전함에 따라 발생하는 변화의 일부입니다.

또한, webapp 폴더 내에 JSP 파일을 위치시키는 것이 일반적인 접근 방식입니다. resources/static 폴더는 정적 리소스를 위한 곳으로 JSP 파일을 처리하기에는 적합하지 않습니다.

gh3298님의 build.gradle 설정과 application.properties 설정에서 JSP 관련 올바른 설정이 적용되지 않은 것 같습니다. 아래 링크에 있는 내용은 스프링 부트 3.x 버전 이상에서 JSP를 사용하기 위한 정확한 방법을 안내하고 있으니, 참고하시어 문제를 해결해 보시길 바랍니다:

해당 답변에서 y2gcoder님이 JSP를 적용하는 올바른 방법을 설명해 주셨습니다. 관련 내용은 스프링 부트 3.0 이상 버전에 적합한 JSP 설정 방법을 가르쳐 주며, .gradle 파일의 의존성 변경과 application.properties 혹은 application.yml 내 설정 방법에 대해 설명합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

gh3298님의 프로필 이미지
gh3298

작성한 질문수

질문하기