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

권정익님의 프로필 이미지

작성한 질문수

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

섹션 3. 서블릿, JSP, MVC 패턴 질문 3

해결된 질문

작성

·

95

0

@WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/new-form")
public class MvcMemberFormServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String viewPath = "/WEB-INF/views/new-form.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
        dispatcher.forward(request, response);
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<!-- 상대경로 사용, [현재 URL이 속한 계층 경로 + /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오류가 뜹니다...

그리고 localhost:8080에 들어가거나, 서블릿 MVC 회원가입을 눌러도 인텔리제이 콘솔창에는 아무것도 뜨지 않습니다..

해결방안 주실 수 있나요ㅠㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 권정익님.

404 오류는 대게 요청한 리소스가 서버에서 찾을 수 없을 때 발생합니다. 서블릿을 통한 MVC 구조에서는 주로 서블릿 매핑 오류, JSP 파일 경로 오류 등으로 인해 발생할 수 있습니다. 질문하신 내용을 바탕으로 몇 가지 확인할 사항을 안내드립니다.

  1. 서블릿 매핑 확인: @WebServlet 어노테이션에서 정의된 URL 패턴이 요청 URL과 일치하는지 확인해주세요. 주소창에 입력하는 URL이 @WebServlet 어노테이션의 urlPatterns 속성과 정확히 일치하는지 확인이 필요합니다.

  2. JSP 파일 경로 확인: RequestDispatcher를 사용하여 forward하는 JSP 파일의 경로가 올바른지 확인해보세요. 파일 경로가 정확하지 않으면, 서버가 해당 파일을 찾지 못해 404 Not Found 오류를 반환할 수 있습니다. 특히, "/WEB-INF/views/new-form.jsp" 경로가 프로젝트 내에서 정확한 위치에 있는지 확인해보세요.

  3. 서버 재시작 및 URL 재확인: 변경 사항을 적용한 후에는 서버를 재시작해야 변경 사항이 제대로 적용됩니다. 서버를 재시작한 후, 정확한 URL을 사용했는지 다시 확인해주세요.

  4. IDE와 서버 로그 확인: IntelliJ IDEA와 같은 개발 도구를 사용 중이라면, 서버 로그를 확인하여 추가적인 에러 메시지가 있는지 확인합니다. 이를 통해 문제의 원인을 좀 더 구체적으로 파악할 수 있습니다.

이와 관련하여 비슷한 문제로 질문하고 답변받은 사례를 참고하는 것도 도움이 될 수 있습니다. 아래는 유사한 문제를 경험한 다른 학습자들의 질문과 그에 대한 답변 링크입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

권정익님의 프로필 이미지
권정익
질문자

프로젝트 실행에 계속 오류가 떠서 아예 삭제했다 다시 만들었는데

@ServletComponentScan이 누락되있었습니다ㅠㅠ

감사합니다!