섹션 3. 서블릿, JSP, MVC 패턴 질문 3
@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어노테이션의 누락으로 문제가 발생했습니다. 서블릿 컴포넌트의 올바른 등록 여부를 확인해보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
servlet과 container에 대한 질문입니다
0
21
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
62
1
jsp 의존성 수정 요청
0
75
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
142
1
save() 메서드 문의
0
65
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
99
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
94
1
RequestMapping을 이용한 핸들러, 어댑터
0
118
2
save 후 결과화면
0
86
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
175
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
98
3
파일 오픈 시
0
68
1
스프링 배치 관련
0
77
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
94
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
77
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
73
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
138
1
html 변경하는 부분 적용 문제
0
100
1
한글 깨짐
0
76
2





