Veritabanları ve HTML Olmayan İçerik – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Veritabanları ve HTML Olmayan İçerik
Çoğu web uygulamasının, dinamik içerik oluşturmak veya kullanıcılardan veri toplamak ve depolamak veya her ikisi için bir veritabanıyla iletişim kurması gerekir. Sunucu uygulamacıkları ile bu iletişim, “JDBC” olarak tanımlanan JDBC API kullanılarak kolaylıkla gerçekleştirilir.
JDBC ve servlet yaşam döngüsünün genel olarak mantıklı tasarımı sayesinde, servlet’ler bir veritabanı ile web istemcileri arasında mükemmel bir aracıdır.
Tartışılan genel JDBC ilkelerinin çoğu “JDBC”, servlet’ler için geçerlidir. Bununla birlikte, servlet geliştiricileri, optimum performans için birkaç şeyi akılda tutmalıdır. İlk olarak, sunucu uygulamasının init() yönteminde JDBC Connection nesneleri oluşturulabilir.
Bu, servlet’in her istekte veritabanına (à la CGI) yeniden bağlanmaktan kaçınmasına olanak tanır ve her tek sayfa isteğinde bir saniye veya daha fazla tasarruf sağlar. Yüksek hacim bekliyorsanız, birkaç bağlantı oluşturmak ve aralarında geçiş yapmak isteyebilirsiniz. Mükemmel bir ücretsiz bağlantı havuzlama sistemi mevcuttur.
Veya JDBC 2.0 kullanıyorsanız, javax.sql paketi bir bağlantı havuzu oluşturma mekanizması sağlar. Son olarak, JDBC’nin işlem desteğini kullanmayı planlıyorsanız, her istek için ayrı bağlantılar oluşturmanız veya havuzlanmış bir bağlantının özel kullanımını elde etmeniz gerekir.
Şimdiye kadar tüm sunucu uygulamalarımız standart HTML içeriği üretmiştir. Tabii ki, çoğu servlet’in şimdiye kadar yaptığı tek şey bu, ancak yapabilecekleri tek şey bu değil. Örneğin, şirketinizin kolayca erişilebilecekleri bir Oracle veritabanında büyük bir PDF belgeleri veritabanı sakladığını varsayalım.
Şimdi bu belgeleri Web’de dağıtmak istediğinizi varsayalım. Şans eseri, servlet’ler, bir MIME başlığıyla tanımlanabilecek herhangi bir içerik biçimini gösterebilir. İkili veri iletmeniz gerekiyorsa tek yapmanız gereken uygun içerik türünü ayarlamak ve bir ServletOuputStream kullanmaktır. Örnek, bir Adobe Acrobat belgesinin bir Oracle veritabanından nasıl çekileceğini gösterir.
Servlet API’si
Sun, Kasım 1998’de Servlet API’sinin 2.1 Sürümü belirtimini kullanıma sundu. API’nin bu sürümü, onu daha tutarlı ve kullanımını daha kolay hale getiren bazı küçük “temizlik” değişiklikleri içerir. Örneğin, yöntem adları “URL”yi büyük harfle yazacak şekilde standartlaştırılmıştır, yani encodeUrl() encodeURL() lehine kullanımdan kaldırılmıştır, vb.
GenericServlet artık doğrudan ServletContext’i uygular ve kendi servlet’lerinizde geçersiz kılabileceğiniz argümansız bir init() yöntemi sağlar. ServletContext arabirimi, desteklenen en son API sürümünü belirleyebilen getMajorVersion() ve getMinorVersion() adlı iki yeni yöntem içerir.
Sun, bu küçük güncellemelere (“API Hızlı Referansı”nda bahsedilen diğer birkaç güncellemeye) ek olarak, birkaç gerçekten yeni özellik ekledi. Bazıları oldukça küçüktür. Örneğin, bir sunucu uygulaması artık yeni bir ServletException nesnesi oluştururken bir “temel neden” istisnası belirtebilir.
Temel neden, ServletException’ın yeni getRootCause() yöntemiyle okunabilir. Bu, soruna gerçekten neden olan istisnadan getMessage() tarafından döndürülen değerle bir ServletException oluşturmaya yönelik eski yaklaşımdan biraz daha fazla bilgi sağlar.
İstek gönderme ve paylaşılan öznitelikler dahil olmak üzere diğer yeni özellikler daha önemlidir ve sonraki bölümlerde ele alınmaktadır. Bu yazıyı yazarken, birkaç sunucu uygulaması motorunun Servlet API’sinin 2.1 Sürümündeki yeni özellikleri desteklediğini unutmayın.
Veritabanı Türleri
Veritabanı ne demek
Veri tabanı uygulamaları
Veri tabanları örnekleri
Veritabanı programları
Veritabanı yönetim sistemi Nedir
Veri tabanı Nedir Ne İşe Yarar
Telefonda veri tabanı Nedir
Sevk Talebi
Yeni istek gönderme işlevi, bir sunucu uygulamasının istek işlemeyi sunucudaki diğer bileşenlere devretmesine izin verir. Bir sunucu uygulaması, bir isteğin tamamını başka bir sunucu uygulamasına iletebilir veya diğer bileşenlerden içerik parçalarını kendi çıktısına dahil edebilir.
Her iki durumda da bu, yeni getRequestDispatcher() yöntemiyle ServletContext’ten elde edilen bir RequestDispatcher nesnesi ile yapılır. Bu yöntemi çağırdığınızda, isteği gönderdiğiniz sunucu uygulamasının yolunu belirtirsiniz.
Bir istek gönderdiğinizde, istek özniteliklerini ServletRequest’in setAttribute() yöntemini kullanarak ayarlayabilir ve getAttribute() yöntemini kullanarak okuyabilirsiniz. Kullanılabilir özniteliklerin bir listesi getAttributeNames() tarafından döndürülür. Bu yöntemlerin üçü de Sürümde yenidir Yalnızca String nesnelerini (parametreler gibi) almak yerine, bir öznitelik herhangi bir geçerli Java nesnesi olabilir.
RequestDispatcher, istekleri göndermek için iki yöntem sağlar: forward() ve include(). Bir isteğin tamamını başka bir sunucu uygulamasına iletmek için forward() yöntemini kullanın.
forward() kullanılırken, ServletRequest nesnesi yeni hedef URL’yi içerecek şekilde güncellenir. ServletResponse nesnesinden bir ServletOutputStream veya PrintWriter zaten alınmışsa, forward() yöntemi bir IllegalStateException oluşturur.
RequestDispatcher’ın include() yöntemi, gönderici içeriğinin tıpkı bir sunucu tarafı içermesi gibi ana sunucu uygulamacığı çıktısına dahil edilmesine neden olur. Bunun nasıl çalıştığını görmek için, birkaç farklı sunucu üzerinde canlı tutma kontrolü yapan bir sunucu uygulamacığı parçasına bakalım.
Paylaşılan Özellikler
ServletContext arabirimi, servlet’lerin öznitelikleri paylaşma yeteneğini destekleyen bir dizi yeni yöntem içerir. Yeni setAttribute() yöntemi, bir sunucu uygulamasının, kendi ServletContext’inde yaşayan diğer tüm sunucu uygulamaları tarafından paylaşılabilen bir öznitelik ayarlamasına olanak tanır. Önceden servletlerin sabit kodlanmış sunucu özniteliklerini almasına izin veren getAttribute() yöntemi öznitelik değerlerine erişim sağlarken, getAttributeNames() tüm paylaşılan özniteliklerin bir Sıralamasını döndürür.
Paylaşılan nitelikler bazı heyecan verici yeni olasılıklar açar. Tek bir web uygulamasındaki birden çok servlet, yapılandırma bilgilerinin yanı sıra kullanıcı kimlik doğrulamasını işleyen bir CORBA nesnesi veya bir veritabanı bağlantı havuzu gibi karmaşık programatik kaynakları kolayca paylaşabilir.
İlgili bir notta, Servlet API’sinin 2.1 Sürümü, doğası gereği güvensiz oldukları gerçeğinden dolayı, diğer sunucu uygulamacıklarına doğrudan erişimle ilgili tüm yöntemleri kullanımdan kaldırmaktadır. Böylece, getServlet() ve getServletNames(), zaten kullanımdan kaldırılmış olan getServlet()’e katılır. Buradaki sorun, getServlet()’in yanlışlıkla bir sunucu uygulamacığın başka bir sunucu uygulamacığın yaşam döngüsü yöntemlerini çağırmasına izin vermesiydi.
Kaynak Soyutlama
Kaynak soyutlama, bir servlet’in HTML dosyası gibi bir web sunucusundaki bir kaynağa, kaynağın gerçekte nerede olduğunu bilmeden erişmesine izin veren yeni bir özelliktir. Bu işlevsellik, sunucu uygulamacıklarını bir web sunucusunda ve hatta web sunucuları arasında, örneğin yük dengeleme amaçlarıyla taşımayı çok daha kolaylaştırır.
Bir sunucu uygulaması, ServletContext’in newgetResource() yöntemini kullanarak bir kaynağa erişim sağlar. Kaynağa bir URI yolu belirtirsiniz ve istenen kaynağı incelemenizi sağlayan bir URL nesnesi alırsınız. Web sunucusu, URI yolu parametrelerinin gerçek kaynaklarla nasıl eşleştiğini kontrol eder.
Bu işlevsellik tarafından yönetilen kaynakların, başka bir sunucu uygulaması veya bir CGI betiği gibi etkin bir kaynak olamayacağına dikkat edin; bu tür kaynaklar için RequestDispatcher’ı kullanın. Diyelim ki sayfanın sunduğu içerik için karmaşık bir başlık yazan bir sunucu uygulamamız var.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)