SORU
24 EKİM 2008, Cuma


Herkes sunucu eşleme açıklayabilir mi?

Bir web uygulaması SpringMVC kullanarak yazmaya çalışıyorum. Sadece bir harita istiyorum normalde uydurma bir Bahar ön denetleyicisi için dosya uzantısı ve mutlu bir şekilde yaşıyor, ama diğerleri gibi URL ile gidiyorum ben bu sefer dosya adı uzantıları.

Ön denetleyicisi bağlamda yolunda her şeyi bırakalım " . eşleme ^strong>app"ayrıca, bir şey değil (neden henüz başka bir şey icat?) yaparım değil statik dosyaları halletmem gerektiği anlamına gelir tomcat varsayılan sunucu uygulaması ile ilgili bazı kombinasyonu yani (bırakalım "tomcat") gitmek için yol gibi görünüyor.

Çalışmak için bir şey gibi bir şey yapıyorum

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

<servlet-mapping>
  <servlet-name>tomcat</servlet-name>
  <url-pattern>*.ext</url-pattern>
</servlet-mapping>

ve her biri için ikinci tekrar statik içerik dosya uzantıları. Sadece yukarıda eşdeğer olan aşağıdaki kurulumları, işe yaramaz diye düşünüyorum.

<!-- failed attempt #1 -->
<servlet-mapping>
  <servlet-name>app</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>tomcat</servlet-name>
  <url-pattern>*.ext</url-pattern>
</servlet-mapping>

<!-- failed attempt #2 -->
<servlet-mapping>
  <servlet-name>app</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>tomcat</servlet-name>
  <url-pattern>/some-static-content-folder/*</url-pattern>
</servlet-mapping>

Herkes biraz ışık tutabilir?

CEVAP
28 EKİM 2008, Salı


Neler olduğunu biliyorum galiba.

Senin çalışma web.xml sen belirlediğiniz sunucu uygulaması için varsayılan sunucu uygulaması (/ tarafından kendisi varsayılan sunucu adı varsa başka maç) olacak cevap herhangi bir istek yok maç başka bir eşleme.

Başarısız 1 /* eşleme geçerli bir yol bir eşleştirme gibi görünüyor. Web.xml /* eşleme ile diğer yol eşlemeleri dışında tüm istekleri cevaplar. Şartname uzantısı eşleme göre açık eşlemeleri tarafından yazılır örtülü eşlemeleri. Bu uzantısı eşleme başarısız oldu. Her şeyi açıkça uygulama için oluşturuldu.

Başarısız her şeyden sorumlu olduğu Uygulama 2, statik içerik eşleme eşleşen içerik hariç. Hızlı test olarak neler olduğunu göstermek için düzenledim. İşte bir örnek. /some-static-content-folder/ test.png içerir

Erişim test etmek için çalışıyor.png çalıştım:

/some-static-content-folder/test.png

ve dosya bulunamadı. Ancak çalışıyor

/some-static-content-folder/some-static-content-folder/test.png

bu kadar gelir. Tomcat varsayılan sunucu uygulaması (6.0.16 en azından) sunucu eşleme düşer ve kalan yolu kullanarak dosyayı bulmak için çalışacağız öyle görünüyor. Bu yazıya göre Servlet for serving static content İskele davranış verir ve bekliyordum.

Vardır bir sebebi, dinlenmeniz için bir kök dizini göster gibi bir şey yapamazsın diyor. Rest_root klasörü içinde olup biten bir şey için sorumlu, ama başka herhangi bir yerde olduğundan daha app /rest_root/* eşleştirilmiş gibi bir şey başka bir açık eşleştirme yaptığınız sürece Tomcat tarafından ele alınmalıdır. Dinlenmeye ayarı niyet daha iyi eder, çünkü yol bir eşleştirme için sunucu uygulaması, tavsiye ederim. / Veya /* kullanarak özel harita için uygun değil. Bu YÜZDEN bir örnek olarak kullanarak, gerisi benim eşlemeleri gibi bir şey olur

kullanıcılar /kullanıcı/* sunucu uygulaması

/posts*/ mesajlar sunucu uygulaması için

Eşleme sipariş

  1. Açık (Yol eşlemeleri)
  2. Örtülü (Uzantısı eşleme)
  3. Varsayılan (/)

Yanlış var bu doğru bir şey lütfen.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006