라벨이 EGOV인 게시물 표시

[Spring] Spring & Egov *.do 확장자 없이 URL 접근 가능토록 하기

 기존 프로젝트에서 *.do 확장자만 사용하다 API 기능을 추가해야하는 상황이 왔다. API 주소에 *.do 확장자를 사용하게 하고 사용하라고 하면 되지만.. 적절하지도 않고 크롤링도 아니고 API 인데 확장자를 *.do 를 쓰게 할 수는 없었다. 결과적으로 변경한 코드는 매우 간단했지만 꽤나 시간을 소비하였다. webapp/WEB-INF/web.xml 파일이 존재할 것이다. 이 부분에 servlet-mapping 설정 관련이 있을 것이다. 기존의 파일의 경우 아래와 같이 *.do 일 때 설정해놓은 servlet-class 로 이동토록 하였다.. <servlet-mapping> <servlet-name> action </servlet-name> <url-pattern> *.do </url-pattern> </servlet-mapping> url-pattern 을 *.do -> /* 이렇게 변경하면 서버 구동은 되겠지만 jsp 화면이 나오지 않을 것이다. 이유는 기본적으로 *.jsp, *.js 등 servlet-mapping 이 따로 설정되어있었기 때문이다. 그렇기에 /* 로 변경하면 *.jsp 도 위 action 에 설정이 될 것이다. 그렇다면 어떻게 해야하는가? /* -> / 로 변경하면 된다. <servlet-mapping> <servlet-name> action </servlet-name> <url-pattern> / </url-pattern> </servlet-mapping> 위와 같이 하면 화면은 보이겠지만 img 등은 보이지 않을 것이다. 이유는 url-pattern 을 /  으로 설정하여 기존에 있던 기본 servlet 을 우리가 덮어 사용하였기 때문이다. 여러 파일을 제대로 불러와주기 위해서는 아래와 같은 추가적인 servlet-mapping 이 필요하다. ( 출처 ) ...