작성
·
68
0
안녕하세요 강의를 따라 진행하면서 /front-controller/v1/members/new-form에 들어가면 404오류가 뜨고있습니다
어떻게 해결할지 몰라 질문글을 남깁니다
https://drive.google.com/file/d/11KMx5ovVj1_bTCjTaOx2u7fx4uxQcV6g/view?usp=sharing
답변 2
0
안녕하세요. 참깨햄스터님, 공식 서포터즈 y2gcoder입니다.
보내주신 코드 살펴보았습니다! 각 단계를 순서대로 진행해주십쇼!
1) build.gradle 정리
build.gradle 에서 서블릿 관련 의존성 들이 중복되어있습니다! 스프링 부트 3버전 이상이므로 그 이전의 의존성은 필요없습니다! 지워주십쇼
(지우고 꼭 오른쪽 위의 코끼리를 눌러 gradle 을 리프레시 해주십쇼!)
2) build tool 변경
스프링 부트 3버전 부터는 build tool을 gradle 로 변경해주시길 권장하고 있습니다! Settings > Build, Execution, Deployment > Build Tools > Gradle 로 들어가셔서 모두 Gradle 로 변경해주십쇼! 그 후에 Apply & OK 를 눌러 적용해주십쇼!
이유에 대해서 궁금하시다면 자주하는 질문(클릭) 을 참고해주십쇼!
3) FrontControllerServletV1 오타 수정
urlPatterns 에 v1 앞에 스페이스바가 있습니다! 지워주십쇼!
4) 각 Member***ControllerV1 의 내부 코드가 서로 잘못 적혀있는 것으로 보입니다!
강의자료를 보고 각 이름에 맞게 코드를 다시 작성해주십쇼! 예를 들어 지금 작성해주신 MemberFormControllerV1 의 코드는 이렇습니다
package hello.servlet.web.frontcontroller.v1.controller;
import hello.servlet.domain.member.Member;
import hello.servlet.domain.member.MemberRepository;
import hello.servlet.web.frontcontroller.v1.ControllerV1;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
public class MemberFormControllerV1 implements ControllerV1 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@Override
public void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
memberRepository.save(member);
request.setAttribute("member", member);
String viewPath = "/WEB-INF/views/save-result.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);
}
}
강의자료에 있는 MemberFormControllerV1의 코드는 이렇습니다! 나머지 코드들도 강의자료 참고 후 변경해주십쇼!
그 후에 애플리케이션을 실행해주시면!
해당 화면을 볼 수 있게 됩니다 🙂
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 참깨햄스터님.
스프링 MVC 강의를 진행하면서 404 오류를 만나셨군요. 404 오류는 주로 URL 매핑이 제대로 되지 않았을 때 발생합니다. 여기에 몇 가지 일반적인 해결 방법들을 정리해 드리겠습니다.
URL 매핑 확인: 먼저, FrontControllerServletV1
클래스에서 해당 URL이 제대로 매핑되어 있는지 확인해 보세요. @WebServlet("/front-controller/v1/*")
와 같은 애너테이션으로 URL 패턴을 매핑해야 합니다.
파일 경로 확인: JSP 파일 혹은 다른 뷰 파일이 제대로 위치해 있는지 확인하세요. 보통 WEB-INF/views
내에 파일이 있어야 합니다. 또한 강의에서 제공한 디렉토리 경로와 실제 프로젝트의 디렉토리 구조가 일치하는지 확인하세요.
오타 확인: 경로나 파일 이름에 오타가 있는 경우도 많습니다. 특히 대소문자 실수는 자주 발생하니 주의 깊게 확인해 보세요.
다음은 Inflearn의 유사한 질문과 답변 링크입니다. 이 유사한 해결책들이 도움이 될 수 있습니다:
- “Controller V2 404 에러” - 디렉토리 이름과 코드의 경로가 일치하는지를 확인하는 것이 중요하다는 내용이 포함되어 있습니다.
- “SpringMemberFormControllerV1 404 에러” - 캐시 문제로 인한 오류일 가능성과 해결 방법에 대해 다룹니다.
질문 하신 상황과 꼭 맞는 해결 방법을 찾기 어려울 때는, 공유 주신 구글 드라이브 링크에서 소스 코드 및 설정을 한번 더 자세히 살펴보시고, 코드에 문제점이 없는지 디버깅 해보시기를 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
누적된 캐시도 지워보고 인텔리제이 다시 켜보기도 했지만 500오류가 계속납니다