28 Ağustos 2020 Cuma

WEB.XML

web.xml dosyası, oluşturulan uygulamayla ilgili konfigürasyonları içeren dosyadır. Bu bilgilerin okunması ve ilgili servleta aktarılması web container'ın sorumluluğundadır. Yapısı şöyledir:

<web-app>
.
// Gerekli konfigürasyonlar
.
</web-app>

Bazı parametreler:

  • <init-param>: Web container her bir servlet için initialize ederken ServletConfig nesnesi oluşturur ve bunu servlet'e yollar ( public void init(ServletConfig config) { this.config = config } ).
    init fonksiyonu sadece servlet çağrılırken yaratılır bu yüzden bu parametreyi değiştirdikten sonra uygulamayı yeniden başlatmak gerekir.
    Bunu kullanmanın avantajı ise, sonradan değiştirilebilecek değerleri java kısmında yazarsak, değişiklik yapmak gerektiğinde her seferinde yeniden derlemek gerekir. Bu durumda ise sadece uygulamayı yeniden başlatmak yeterli olacaktır.
    Bu parametrelere getServletConfig() metodu ile erişilebilir. getServletConfig fonksiyonu ServletConfig tipinde bir config nesnesi döndürür. Bu config nesnesi getInitParameter(String) metodu içerir. Bu metodla istenilen parametreye ulaşılabilir.
    Örnek kullanımı ise şöyledir:
<servlet>
    <servlet-name>admin</servlet-name>
    <servlet-class>Admin</servlet-class>
    <init-param>
        <param-name>username<param-name>
        <param-value>omeraytekin<param-value>
    </init-param>
    <init-param>
        <param-name>password<param-name>
        <param-value>123456<param-value>
    </init-param>
</servlet>

  • <context-param>: <init-param>'a benzerdir. Farklı olarak her bir servlet için ayrı ayrı değil, tüm uygulama için tanımlanmasıdır. Çoğu servlet için ortak kullanılan bir değer varsa context param ile belirtilir bu sayede değişiklik durumunda bütün servletler için ayrı ayrı değiştirmeye gerek kalmaz.
    Bu parametrelere getServletContext() ile erişilebilir. Bu metod ServletContext tipinde bir context nesnesi döndürür. Bu context nesnesi getInitParameter(String) metodu içerir. Bu metodla istenilen parametreye ulaşılabilir.
    Şöyle bir kullanımı vardır:
<web-app>
.
.
.
<context-param>  
<param-name>db</param-name>  
<param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>  
</context-param>
.
.
.
</web-app>


ServletContext içinde getAttribute ve setAttribute metodları içerir. ServletContext tüm uygulama için bir tane olur ve bütün servletlara aynı nesne yollanır. Bu sayede ServletContext kullanarak servletlar arası haberleşme sağlanabilir. setAttribute ile yollanır, getAttribute ile okunur.

0 yorum:

Yorum Gönderme