해결된 질문
작성
·
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 파일 경로 오류 등으로 인해 발생할 수 있습니다. 질문하신 내용을 바탕으로 몇 가지 확인할 사항을 안내드립니다.
서블릿 매핑 확인: @WebServlet
어노테이션에서 정의된 URL 패턴이 요청 URL과 일치하는지 확인해주세요. 주소창에 입력하는 URL이 @WebServlet
어노테이션의 urlPatterns
속성과 정확히 일치하는지 확인이 필요합니다.
JSP 파일 경로 확인: RequestDispatcher
를 사용하여 forward하는 JSP 파일의 경로가 올바른지 확인해보세요. 파일 경로가 정확하지 않으면, 서버가 해당 파일을 찾지 못해 404 Not Found 오류를 반환할 수 있습니다. 특히, "/WEB-INF/views/new-form.jsp"
경로가 프로젝트 내에서 정확한 위치에 있는지 확인해보세요.
서버 재시작 및 URL 재확인: 변경 사항을 적용한 후에는 서버를 재시작해야 변경 사항이 제대로 적용됩니다. 서버를 재시작한 후, 정확한 URL을 사용했는지 다시 확인해주세요.
IDE와 서버 로그 확인: IntelliJ IDEA와 같은 개발 도구를 사용 중이라면, 서버 로그를 확인하여 추가적인 에러 메시지가 있는지 확인합니다. 이를 통해 문제의 원인을 좀 더 구체적으로 파악할 수 있습니다.
이와 관련하여 비슷한 문제로 질문하고 답변받은 사례를 참고하는 것도 도움이 될 수 있습니다. 아래는 유사한 문제를 경험한 다른 학습자들의 질문과 그에 대한 답변 링크입니다:
RequestDispatcher 시 404 에러 - 이 사례에서는 new-form.jsp
파일명의 오타로 문제가 발생했습니다. 파일명과 URL 패턴이 정확한지 확인하는 것이 중요합니다.
MVC 패턴 적용 중 404 에러가 납니다. (/servlet-mvc/members/new-form) - 이 사례에서는 @ServletComponentScan
어노테이션의 누락으로 문제가 발생했습니다. 서블릿 컴포넌트의 올바른 등록 여부를 확인해보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
프로젝트 실행에 계속 오류가 떠서 아예 삭제했다 다시 만들었는데
@ServletComponentScan이 누락되있었습니다ㅠㅠ
감사합니다!