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

깨위님의 프로필 이미지
깨위

작성한 질문수

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

MVC 패턴 - 적용

404..오류... new-form.jsp,, save-result.jsp등등..

작성

·

1.4K

0

안녕하세요..

jsp까지 잘 되다가, mvc에서 계속 404가 떠서 질문 드립니다..

영한님 코드 복붙까지 해봤는데도 안돼서요..

폴더구조, 파일명 모두 대조해봤는데 문제가 없음을 확인했습니다.

"mvc패턴 적용" 강의 코드가 적용이 되지 않습니다..

대체..뭐가 문제일까요?

 

MvcMemberFormServlet.class 

new-form.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!-- 주의
상대경로 사용, [현재 URL이 속한 계층 경로 + /save]
ex ) servlet-mvc/members/save
-->
<form action="save" method="post">
    username: <input type="text" name="username" />
    age: <input type="text" name="age" />
    <button type="submit">전송</button>
</form>
</body>
</html>

 

404

 


ServletApplication.class

build.gradle

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

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

configurations {
   compileOnly {
      extendsFrom annotationProcessor
   }
}

repositories {
   mavenCentral()
}

dependencies {
   implementation 'org.springframework.boot:spring-boot-starter-web'
   compileOnly 'org.projectlombok:lombok'
   annotationProcessor 'org.projectlombok:lombok'
   providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
   testImplementation 'org.springframework.boot:spring-boot-starter-test'


   implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
   implementation 'javax.servlet:jstl'
   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 이상



}

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

 

답변주시면 감사하겠습니다..

답변 2

0

안녕하세요, 깨위 님. 공식 서포터즈 y2gcoder 입니다.

공유해주신 프로젝트 확인해봤습니다.

혹시 프로젝트 공유해주실 때는 코드를 좀 바꿔서 올려주신 것인지 궁금합니다.

먼저 처음 프로젝트를 시작할 때 프로젝트 구동부터 되지 않고

image

해당 에러가 발생했습니다.

원인은 바로 위에 보이는 RequestBodyJsonServlet의 @WebServlet name 속성이 이전의 RequestBodyStringServlet의 @WebServlet name 속성과 겹쳐서 일어나는 문제였습니다.

해당 코드가 제대로 반영되어 있지 않은 것으로 보여

강의 코드와 동일하게 맞춰준 후, 다시 실행하니 정상적으로 실행되었습니다.

또한

image

http://localhost:8080/servlet-mvc/members/new-form 도 정상적으로 불러오는 것을 알 수 있습니다.

해당 방법대로 해보시길 권해드리고 혹시나 캐시가 남아있을 수도 있으니 Intellij의 File > Invalidate caches 등을 이용해 캐시 초기화를 하신 후에 다시 실행해주십시오 :)



감사합니다.

0

안녕하세요. 깨위님, 공식 서포터즈 y2gcoder입니다.

현재 올려주신 코드 상에서 고쳐야 할 부분은

build.gradle에서

implementation 'javax.servlet:jstl' // 3.0 이상에서는 이걸 지워주셔야 합니다.

해당 부분을 고쳐보시고 안되시면 아래대로 소스코드를 보여주셔야 할 것 같습니다 :)



전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.

구글 드라이브 업로드 방법 링크

주의: 업로드시 권한 문제 꼭 확인해주세요

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.
2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

깨위님의 프로필 이미지
깨위
질문자

알려주신 대로 제외하고 실행해도 404오류가 뜨는 것 같습니다.

https://drive.google.com/file/d/1AUwPijLVWf3NO2fzro5HnUmYU4gQgoSp/view?usp=sharing

프로젝트 링크 첨부 하겠습니다..

 답변주시면 감사하겠습니다..

깨위님의 프로필 이미지
깨위

작성한 질문수

질문하기