Inflearn brand logo image

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

taeyoul.im님의 프로필 이미지
taeyoul.im

작성한 질문수

3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]

제3강 Spring MVC패턴

http://localhost:8080/Egov_WEB/main2.do 요청 관련

작성

·

87

0

3장 학습 테스트에서
URL 이 https://inf.run/3Ujcb

로 작동합니다.

 

Controller에서의 RequestMapping은

@RequestMapping(value="/main2.do") 로 정의되었습니다.

 

URL에 "Egov_WEB" 이 왜 들어가야 하는 것인가요?

브라우저에서 "http://localhost:8080/main2.do" 로 입력하면 오류가 나구요.

 

 

답변 4

0

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요. 밤늦게 질문을 주셔서 확인이 늦은 점 죄송합니다.

원래 실제로 배포 시에는 프로젝트 이름은 보통 생략해줍니다.

(예:http://localhost:8080/main2.do )

그러나 학습 강의이기에 여기서는 다루지 않았습니다.

[Q강의에서처럼 Egov_WEB이 자동으로 안들어갑니다.]

A해결방법:

1.

프로젝트 생성 시 아래 그림처럼 전자정부프레임워크환경에서 생성을 하셔야 합니다.

 

image.png

2.

프로젝트 실행 시 아래 사진처럼 자동으로 추가되는 것이 원래는 맞습니다.

이를 확인해보심이 좋겠습니다.

복사붙여넣기용도:

<Context docBase="Egov_WEB" path="/Egov_WEB" reloadable="true" source="org.eclipse.jst.jee.server:Egov_WEB"/></Host>

(그림 확대해서 보기:마우스 우 클릭 - 새 탭에서 열기)

(왼쪽 목록의 Servers->server.xml을 열어주세요)

image.png

감사합니다.

0

taeyoul.im님의 프로필 이미지
taeyoul.im
질문자

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

taeyoul.im님의 프로필 이미지
taeyoul.im
질문자

제가 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 등)을 통해 변경될 수 있습니다.

문제의 핵심:

  1. Context Root와 상대 경로: “Egov_WEB”는 프로젝트가 배포된 컨텍스트(root)입니다. 이는 Tomcat 등의 서버에서 프로젝트의 기본 경로가 설정되며, 예제로 들면, http://localhost:8080/Egov_WEB/ 가 됩니다.

  2. 잘못된 경로 사용: “http://localhost:8080/main2.do”로 요청을 하게 되면, Context Root를 무시한 경로가 되어 서버는 해당 경로의 요청을 처리할 수 없다고 판단하여 오류를 반환합니다.

해결 방법:

  • 정확한 경로 사용: URL 요청 시 항상 http://localhost:8080/Egov_WEB/main2.do와 같은 방식을 사용하여 Context Root를 포함해야 합니다. 이는 프로젝트의 기본 경로에 따라 다를 수 있으므로 설정 확인이 필요합니다.

참고 자료:

  • 매핑값 질문입니다! 이 게시물에서는 비슷한 요청 매핑 문제에 대해 다루었으며, 디스패쳐 서블릿 설정과 관련된 다른 문제가 제기되었습니다.

추가적인 도움이 필요하거나 설정 파일(web.xml 등)에 대한 세부적인 점검이 필요하시면 더 많은 정보를 제공해 주시거나, 특정 설정을 첨부해주시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

taeyoul.im님의 프로필 이미지
taeyoul.im

작성한 질문수

질문하기