web.xml에서 서블릿맵핑을 "/" 으로 설정했다면 모든 경로에 대한 요청을 서블릿이 처리하려고 하는 문제

------

DispatcherServlet 대한 /src/main/webapp/WEB-INF/web.xml 설정

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>
/</url-pattern>
</servlet-mapping>

확장자에 관계 없이 모든 요청에 대한 DispatcherServlet 통제 하려고 하면서 생기는 문제

-------




해결:


CoC 방식


특정 확장자 또는 특정 폴더 아래의 파일들만 DispatcherServlet 통제하도록 /src/main/webapp/WEB-INF/web.xml 설정

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>
/*.do</url-pattern>
</servlet-mapping>

또는

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>
/Spring/</url-pattern>
</servlet-mapping>



CoC 방식 II


/src/main/webapp/resources 폴더 밑으로 css, js, img DispatcherServlet 통제하지 않을 파일들을 옯겨 놓기



설정 방식 I - 강력 추천


/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 파일에 폴더 등록

<resources mapping="/resources/**" location="/resources/" />

참고 하여 다른 폴더들도 리소스라고 등록해 준다.

<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/css/**" location="/css/" />
<resources mapping="/js/**" location="/js/" />
<resources mapping="/img/**" location="/img/" />



설정 방식 II - 막장 방식


/src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml 파일에 폴더 등록

<resources mapping="/resources/**" location="/resources/" />

참고 하여 다른 폴더들도 리소스라고 등록해 준다.

<resources mapping="/resources/**" location="/resources/" />
<resources mapping="/css/**" location="/css/" />
<resources mapping="/js/**" location="/js/" />
<resources mapping="/**" location="/img/" />

/**
하나의 라인만 가능



출처 : https://groups.google.com/forum/#!msg/ksug/J1fc5iq39hk/S3gHEW-1dvcJ

http://tibang.tistory.com/entry/jsp%EC%97%90%EC%84%9C-%EB%A6%AC%EC%86%8C%EC%8A%A4-%EA%B4%80%EB%A0%A8-%EA%B2%BD%EB%A1%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EB%AC%B8%EC%A0%9C

'웹 개발 > JAVA' 카테고리의 다른 글

[Spring] @Schedule 스케쥴 설정  (0) 2020.08.03

+ Recent posts