[spring] 봄 : 경로와 관련하여 / ** 및 / *의 차이

경로를 참조 할 때 하나의 별표 대신 두 개의 별표의 차이점은 무엇입니까?

이전에는 Spring 3 프로젝트를 디버깅하고있었습니다. .swf를 추가하려고했습니다.

<spring:url var="flashy" value="/resources/images/flash.swf"/>

내 web.xml의 ResourceServlet이 다음과 같이 보입니다.

<servlet-name>Resource Servlet </servlet-name>
<url-pattern>/resources/*</url-pattern>

하지만 불행히도이 오류가 발생했습니다.

WARN org.springframework.js.resources.ResourceServlet - An attempt to access a protected resource at /images/flash.swf was disallowed.

images폴더의 모든 이미지 가 액세스 되었기 때문에 정말 이상하다는 것을 알았습니다. 그런데 왜 내 .swf가 “보호”되었습니까?

그 후, 나는을 변경하기로 결정 /resources/*/resources/**하고 마침내했다. 내 질문은 … 왜?



답변

이것은 Apache antSpring 팀 에서 사용 된 경로 패턴으로 프레임 워크 전체에서 구현하고 사용합니다.

참고로 AntPathMatcher의 javadoc을 참조하십시오 ( 최신 javadoc에 문제가있는 것 같으 므로 이전 파일을 연결합니다).

문제로 돌아가서 문서에 따르면 3 가지 규칙 만 있습니다.

  1. ? 한 문자와 일치
  2. * 0 개 이상의 문자와 일치
  3. ** 경로에서 0 개 이상의 ‘디렉토리’와 일치


답변