2011-10-29 13 views
11
<servlet-mapping> 
    <servlet-name> s1</servlet-name> 
    <url-pattern> /abc </url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name> s2</servlet-name> 
    <url-pattern> /abc </url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name> s3</servlet-name> 
    <url-pattern> /* </url-pattern> 
</servlet-mapping> 

Który serwlet zostanie wywołany, jeśli pojawi się żądanie/abc? I dlaczego?co jeśli wzór URL pasuje do wielu serwletów?

Odpowiedz

16

Check this. W skrócie:

  • jeśli odwzorowania mają dokładnie taki sam wzór, nie ma gwarancji, który serwlet zostanie wywołany. A więc unikaj tego.
  • Jeśli wzory nachodzą na siebie, wybierany jest najbardziej szczegółowy. (/abc jest bardziej szczegółowy niż /*)
+0

Niezłe wyjaśnienie, a podany link jest niesamowity, prosty do uchwycenia. – CuriousMind