programing

스프링: 경로에 대한 /**와 /*의 차이

bestprogram 2023. 2. 26. 16:27

스프링: 경로에 대한 /**와 /*의 차이

경로를 참조할 때 별표 하나 대신 두 개의 별표는 어떻게 다릅니까?

아까는 Spring 3 프로젝트를 디버깅하고 있었습니다.를 사용하여 .swf 를 추가하려고 했습니다.

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

web.xml의 Resource Servlet은 다음과 같습니다.

<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 Ant 라이브러리에서 사용되는 경로 패턴입니다.스프링 팀은 이를 구현하고 프레임워크 전체에서 사용합니다.


당신의 문제로 돌아가세요.의 Javadoc에 따르면 다음 3가지 규칙만 있습니다.

  1. ?1개의 문자와 일치합니다.
  2. *0자 이상의 문자와 일치합니다.
  3. **경로에서 0개 이상의 '디렉토리'와 일치합니다.

업데이트 2022

최신 Spring Framework 버전에는 네 번째 규칙이 있습니다.

  1. {spring:[a-z]+}regexp와 일치합니다.[a-z]+"스프링"이라는 경로 변수로써

자세한 내용은 최신 Spring Framework 버전5 Javadoc: 를 참조하십시오.

언급URL : https://stackoverflow.com/questions/12569308/spring-difference-of-and-with-regards-to-paths