본문 바로가기
JSP

23.01.24 request.getContextPath()

by SoulMania 2023. 1. 24.

미니 jsp프로젝트 중

 

request.getContextPath()+"/view/notice/readNotice.jsp" 라 하면 404 에러가 나는 것에 대한 이해를 돕기 위한 자료

 

https://history1994.tistory.com/27

 

ContextPath - ServersSide & ClientSide

서버단 언어이든 클라이언트 단 언어이든 어떤 특정 파일을 사용하기 위해서 경로를 알고 있어야 하는 경우가 있다 여기서 경로를 잘못 입력하게 되면 404 에러가 떠버린다... 그렇기 때문에 경

history1994.tistory.com

 

간단히 설명하면 java 클래스파일은 서버측 이므로 request.getContextPath()+ 를 굳이 해주지 않아도

 

기본적으로 서버가 나머지 주소 앞에 더하여 판단함.

 

예) 프로젝트 명이 test이고 server.xml 설정을 수정하지 않았다는 가정하에 contextPath 는 프로젝트 명과 동일하게 /test라 하면

그냥 "/view/notice/readNotice.jsp" 요청시

 

서버가 알아서

 

 

URI를 /test/view/notice/readNotice.jsp 라고 인식한다는 것.

 

그런데 위와같이

request.getContextPath()+"/view/notice/readNotice.jsp" 라 고 적게 되면 서버측에서는

 

/test/test/view/notice/readNotice.jsp 라고 두 번 인식 하게 된다는 것.

 

다른 프로젝트에서는 이렇게 해도 에러가 없었는데 다시 확인해보니 contextPath를 그냥 /로 주었기 때문에 404에러가 나지 않았다.

contextPath가 그냥 / 일시에

 

request.getContextPath()+"/view/notice/readNotice.jsp" 라고 요청하면 서버측에서는

 

 

///view/notice/readNotice.jsp  으로 인식되어 404 에러가 나지 않고 잘 동작 됐던 것.

 

따라서 view단 즉,. 클라이언트 단이 아닌 서버단에서 코딩시에는 

 

request.getContextPath() 를 무조건 붙여서는 안된다는 것.!!!