SORU
10 Kasım 2010, ÇARŞAMBA


Sunucu uygulaması haritalama / ve /* arasındaki fark desen url

Tanıdık kodu:

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

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

Benim anlayışıma göre http://host:port/context/* /* haritalar.

Nasıl /? Kesinlikle http://host:port/context kök sadece harita değil. Aslında http://host:port/context/hello, kabul ama http://host:port/context/hello.jsp reddetmek olacaktır.

Herkes nasıl http://host:port/context/hello eşleştirilmiş açıklayabilir mi?

CEVAP
10 Kasım 2010, ÇARŞAMBA


<url-pattern>/*</url-pattern>

Bir sunucu üzerinde /* diğer tüm sunucu uygulamalarını geçersiz kılar. Ateş isteği ne olursa olsun, bu uygulamasında sona erecek. Bu nedenle sunucu uygulamalarını için kötü bir URL kalıbı. Genellikle, Filter bir tek /* kullanmak istediğiniz. İsteğin devam edebilmesi için, sunucu uygulamalarını FilterChain#doFilter() çağırarak daha özel bir URL kalıbı dinleyen herhangi yapabiliyor.

<url-pattern>/</url-pattern>

/ herhangi bir diğer sunucu geçersiz kılmaz. Sadece başka bir kayıtlı sunucu uygulaması uymuyor ki tüm isteklerin servletcontainer bu yerleşik varsayılan sunucu uygulaması yerini alır. Bu normalde statik kaynakları (resim CSS/JS//etc) ve dizin listeleri üzerinde çağrılır. Bu servletcontainer bu yerleşik varsayılan sunucu uygulaması da HTTP istekleri önbelleğe dosya indirme işlemi devam eder başa çıkabilecek kapasiteye sahip değil. *.jsp servletcontainer bu yerleşik durumda JspServlet çağrılan, / sunucu uygulaması çağrılan olmayacak. Bu nedenle de sunucu uygulamalarını için kötü bir URL kalıbı. Genellikle, aksi takdirde tüm görevleri dikkate almak zorunda olduğu gibi, varsayılan sunucu geçersiz kılmak istemiyorum.

<url-pattern></url-pattern>

Sonra da boş bir dize URL deseni . Bu bağlamda kök istenildiğinde çağrılacak. Bu herhangi bir alt istendiğinde çağrılan değil mi bu <welcome-file> yaklaşımı farklıdır. Bu büyük olasılıkla aslında bir isterseniz, aradığınız URL desen "Ana Sayfa sunucu uygulaması".

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • kylelandry

    kylelandry

    9 AĞUSTOS 2007