2012-05-08 18 views
7

Bir .jsp uzantısına sahip olmasa bile dosyayı bir JSP olarak yorumlamak ve oluşturmak için standart bir Java EE servlet konteynırını söylemek mümkün müdür?.Jsp uzantılı bir dosyayı JSP olarak oluşturabilir misiniz?

WAR'imin kök dizininde foo.xyz adında bir dosya var mı? Bu dosya, bir .jsp dosyasında beklediğiniz gibi bazı jstl mantığı içerir. http://myserver/myapp/foo.xyz isteğinde bulunursam, metin olarak işlenen dosyadan birebir kodu göreceğim. Web uygulamasını, dosya uzantısını değiştirmeden JSP yorumlayıcısı kullanarak dosyayı oluşturacak şekilde yapılandırmanın bir yolu var mı?

Lütfen bunu neden yapmak istediğimi sorma. Kısıtlamalar karmaşıktır.

cevap

5

Bu URL modelinde bir JSP sunucu haritasını web sunucunuzun web.xml ürününe ekleyin.

<servlet-mapping> 
    <servlet-name>jsp</servlet-name> 
    <url-pattern>*.xyz</url-pattern> 
</servlet-mapping> 

Not Bu servletcontainer kendi JSP Servlet JSP servlet'ten fiili standart servlet adıdır jsp ait servlet adıyla kayıtlı olduğunu varsayar. Emin olmak için servletcontainer'ın kendi web.xml içerisindeki <servlet> girişini doğrulayın. Örneğin, Tomcat, kurulum klasöründe /conf/web.xml dosyasıdır.

+0

Bu çözüm Tomcat üzerinde çalışıyor ancak Websphere üzerinde çalışmıyor. Bence bu bir “hack” ve “fiili standart” değil *. – LaurentG

+0

@LaurentG: Cevabın bu konuyla ilgili olduğunu zaten biliyoruz. Sadece Websphere'in kullandığıyle aynı "" kullanın. – BalusC

+0

Tomcat ile geliştirdiğim ve Websphere üzerinde konuştuğumdan beri, önerdiğim en genel çözümün daha iyi olduğunu düşünüyorum (iki web.xml'yi yönetmek istemiyorum). Ancak en yaygın durum için çözümünüz de iyi çalışıyor. – LaurentG

8

Sen .xyz JSP olarak işlenen beeing ile biten dosyaları yapmak için web.xml aşağıdaki yapılandırması ekleyebilirsiniz: Bu çözüm Tomcat ve Websphere ile çalışıyor

<jsp-config> 
    <jsp-property-group> 
     <url-pattern>*.xyz</url-pattern> 
    </jsp-property-group> 
</jsp-config> 

. Ve muhtemelen herhangi bir JEE uyumlu sunucu kabı ile.