작성
·
87
0
3장 학습 테스트에서
URL 이 https://inf.run/3Ujcb
로 작동합니다.
Controller에서의 RequestMapping은
@RequestMapping(value="/main2.do") 로 정의되었습니다.
URL에 "Egov_WEB" 이 왜 들어가야 하는 것인가요?
브라우저에서 "http://localhost:8080/main2.do" 로 입력하면 오류가 나구요.
답변 4
0
안녕하세요. 밤늦게 질문을 주셔서 확인이 늦은 점 죄송합니다.
원래 실제로 배포 시에는 프로젝트 이름은 보통 생략해줍니다.
(예:http://localhost:8080/main2.do )
그러나 학습 강의이기에 여기서는 다루지 않았습니다.
[Q강의에서처럼 Egov_WEB이 자동으로 안들어갑니다.]
A해결방법:
1.
프로젝트 생성 시 아래 그림처럼 전자정부프레임워크환경에서 생성을 하셔야 합니다.
2.
프로젝트 실행 시 아래 사진처럼 자동으로 추가되는 것이 원래는 맞습니다.
이를 확인해보심이 좋겠습니다.
복사붙여넣기용도:
<Context docBase="Egov_WEB" path="/Egov_WEB" reloadable="true" source="org.eclipse.jst.jee.server:Egov_WEB"/></Host>
(그림 확대해서 보기:마우스 우 클릭 - 새 탭에서 열기)
(왼쪽 목록의 Servers->server.xml을 열어주세요)
감사합니다.
0
main2.jsp 테스트 코드는
<form action="/main3.do" method="post">
<input type="hidden" name="userNo" value="10">
<input type="text" name="id">
<input type="password" name="pw">
<input type="submit" name="제출">
</form>
입니다.
실행을 하여 "제출"버튼을 클릭하면
브라우저에서 "http://localhost:8080/main3.do" 로 실행되어 "HTTP 상태 404 – 찾을 수 없음" 오류가 발생합니다.
<form action="/Egov_WEB/main3.do" method="post"> 로 하면
"http://localhost:8080/Egov_WEB/main3.do" 로 실행되어 정상 작동합니다.
답변해주신 "“Egov_WEB”는 프로젝트가 배포된 컨텍스트(root)" 부분이 어디에서 설정되어야 하는 것인가요?
0
제가 main.jsp에서
<body>
<form action="/main3.do" method="post">
<input type="hidden" name="userNo" value="10">
<input type="text" name="id">
<input type="password" name="pw">
<input type="submit" name="제출">
</form>
</body>
코드를 실행하고, 화면에서 "제출" 버튼을 클릭하면
브라우저에서 "http://localhost:8080/main3.do" 로 실행되어 "HTTP 상태 404 – 찾을 수 없음" 에러가 발생합니다.
강의에서는 정상적으로 실행되는데, 저는 "http://localhost:8080/Egov_WEB/main3.do" 로 실행이 않되어, 오류가 발생하는 것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. taeyoul.im님.
전자정부 프레임워크에서의 URL 매핑 관련 질문에 대해 안내해 드리겠습니다. URL 경로에 “Egov_WEB”가 포함되는 이유는 일반적으로 프로젝트의 Context Root 설정에 의한 것입니다. 웹 애플리케이션 서버(Tomcat 등)에서 Context Root는 기본적으로 프로젝트 폴더명을 따르지만, 경우에 따라 설정 파일(web.xml 등)을 통해 변경될 수 있습니다.
Context Root와 상대 경로: “Egov_WEB”는 프로젝트가 배포된 컨텍스트(root)입니다. 이는 Tomcat 등의 서버에서 프로젝트의 기본 경로가 설정되며, 예제로 들면, http://localhost:8080/Egov_WEB/
가 됩니다.
잘못된 경로 사용: “http://localhost:8080/main2.do”로 요청을 하게 되면, Context Root를 무시한 경로가 되어 서버는 해당 경로의 요청을 처리할 수 없다고 판단하여 오류를 반환합니다.
http://localhost:8080/Egov_WEB/main2.do
와 같은 방식을 사용하여 Context Root를 포함해야 합니다. 이는 프로젝트의 기본 경로에 따라 다를 수 있으므로 설정 확인이 필요합니다.추가적인 도움이 필요하거나 설정 파일(web.xml 등)에 대한 세부적인 점검이 필요하시면 더 많은 정보를 제공해 주시거나, 특정 설정을 첨부해주시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.