Portletler ve portallar üzerinde çalışmam isteniyor.
Portlet ile sunucu uygulaması arasındaki farkı bilmek istiyorum.
Portlet, sunucu uygulamasından nasıl / nerede farklılık gösterir (işlevsel olarak olabilir)?
Yanıtlar:
Portletler, portal kapsayıcılarını ve bileşenlerini düzenleyen JSR-168 standardının bir parçasıdır. Bu, web kapsayıcıları (ve sunucu uygulamaları) standartlarından farklıdır. Bu iki standart arasında kesinlikle güçlü paralellikler olmasına rağmen, kapsayıcılar, API'ler, yaşam döngüsü, yapılandırma, dağıtım vb.
Portlet ile sunucu uygulaması arasındaki temel fark, sunucu uygulamacığı her zaman tek bir eylem türüne yanıt verirken - istek , portletin (yaşam döngüsünün doğası ve daha güçlü kapsayıcı bağlamaları nedeniyle) iki tür eyleme yanıt vermesi gerektiğidir: oluşturma ve istek . Elbette daha fazlası var ama bunu, portal geliştirmeyi incelediğimde ikisi arasındaki temel fark olarak buldum.
Kaynaktan Geliştirildi : Servlets Vs Portletler
Benzerlikler
Servletler ve Portletler, uygulanmaları için Java kullanan web tabanlı bileşenlerdir.
Portletler, tıpkı sunucu uygulamasının sunucu uygulaması konteyneri tarafından yönetildiği gibi bir portlet konteyneri tarafından yönetilir.
Hem statik hem de dinamik içerik Portletler ve Servletler tarafından oluşturulabilir.
Portletlerin ve sunucu uygulamalarının yaşam döngüsü konteyner tarafından kontrol edilir
İstemci / sunucu modeli hem sunucu uygulamaları hem de portletler için kullanılır
Paketleme ve dağıtım esasen aynı, SAVAŞ / KULAK.
Uygulama Oturumu hem Servlet hem de Portlet konteynerlerinde mevcuttur. Verilerin (ham Portletler Arası İletişim) portlet konteynerlerindeki işlem aşamasından eylem aşamasına (veya daha düşük aşamalara) kadar paylaşılması yollarından biridir.
Hem Servletler hem de Portletler, onu destekleyen benzer sunucu / VM ortamlarını kullanır. Bununla birlikte, portletlerin onu işaretlemesi için bazı ek yapılandırmalar gerekebilir.
Derleme / DI araçları her ikisi için de benzer - Ant, Maven, Gradle, vb. Tümü desteklenmektedir. Çoğunlukla :) - Bu, Liferay 7 ile biraz değişti.
Farklılıklar
Sunucular tam web sayfalarını oluşturabilirken, portletler html parçalarını işler. Bu parçalar, portal tarafından eksiksiz bir web sayfasında toplanır.
JSR 168 portletinin içerik türü yalnızca cHTML, XHTML, WML olabilir. Diğer içerik türlerini desteklemez.
Portletlerin gövde, çerçeve, çerçeve kümesi, başlık, html veya başlık gibi etiketler içeren HTML kodu oluşturmasına izin verilmez.
Sunucu uygulamacığının aksine bir Portletin kendisine eklenmiş URL'si yoktur, bu nedenle doğrudan erişilemez. Erişim yalnızca portleti tutan portal sayfası üzerinden sağlanır.
Portletler, pencere durumlarını veya portlet modlarını değiştirmek için kontrollerle sağlanabilir.
Tek bir portletin birden çok örneği aynı sayfaya yerleştirilebilir.
Portletler kalıcı yapılandırma ve özelleştirmeyi, profil bilgilerini destekler.
Portletler iki tür istek içerebilir. istek ve eylem isteği oluşturma.
Portletlerin oturum içinde iki kapsamı vardır; portletler arasında iletişim için uygulama kapsamı ve portlet içi iletişim için portlet kapsamı.
Portlet, yanıtın karakter kümesi kodlamasını ayarlayamaz veya HTTP yanıt başlıklarını ayarlayamaz.
Portletlerin istek URL'sine erişimi yoktur. Bu nedenle, URL'ye eklenen sorgu parametrelerine erişemez. Portletler tanımlama bilgileri ayarlayamaz.
Portletini API tipik yöntemler
doView()
,doEdit()
,doHelp()
veprocessAction()
sunucu uygulaması kişilerce ikenservice()
,doPost()
,doGet()
.Servlet Özellikleri - JSR 369 (Servlet 4.0), JSR 340 (Servlet 3.1), JSR 315 (Servlet 3.0), JSR 154 (Servlet 2.5 & 2.4). Portlet Spesifikasyonları - JSR 168 (Portlet Spec v1.0), JSR 286 (Portlet Spec v2.0), JSR 362 (Portlet Spec v3.0)
Portletlerin konuşlandırılması, bir Servlet uygulamasından farklı bir yaklaşım gerektirir . Bazı Sağlayıcılar (Liferay / Alfresco / WebSphere), OSGi gibi özel kitaplıkları kullanarak uygulamayı modüler hale getirmeden sunucu uygulamalarının kullanılması durumunda mümkün olmayan, sunucuyu yeniden başlatmaya gerek kalmadan portletlerin sıcak konuşlandırılmasını destekler.
Düzenle (Yorumlardan)
Bir Portlet kapsayıcısı, bir Servlet kapsayıcısı üzerinde oluşturulur. Dolayısıyla, nihayetinde portletin bir Servlet Konteyner üzerinde çalıştığı söylenebilir. Ancak uygulamaları geliştirirken, bir portlet konteynerini Servlet / Java EE konteynerinden ayrı olarak görüntüleriz.
Hem portletler hem de sunucu uygulamaları bir http isteği alır ve bir yanıt döndürür, bu genellikle bir tarayıcı tarafından işlenebilen bir HTML HTML'dir. Portlet, bir "Portal" bağlamında kullanılır; buradaki fikir, kullanıcı tarafından görülen tek bir sayfanın, her biri farklı bir portletten gelen birçok parçaya sahip olmasıdır.
Artık, normal sunuculardan bu "parçalı" efekti elde edebilirsiniz (nasıl yapılacağına ilişkin bir örnek için bkz. Struts + Döşemeler), portletlerden gelen ekstra bit, portal uygulamacığının daha zengin bir ortamda olmasıdır, böylece ekstra API'ler sağlanır, böylece herhangi bir portlet tarafından görüntülenenler, bireysel kullanıcılar tarafından kendi tercihlerine göre yapılandırılabilir ve porletler birbirleriyle iletişim kurabilir - birinde bir düğmeye basın, diğerinde bir şey olur.
Servletlerin bir java tanımı (HTTP GET / POST isteklerini işleyen uygulamalar) varken, portletlerin bir kullanıcı arayüzü tanımı vardır. Windows vista widget'larına benzer belirli bir işlevi gerçekleştiren bir bileşen veya burada stackoverflow'da kullanılan birçok bileşen. Sunucu tarafındaki sunucu uygulamaları tarafından desteklenmeleri gerekmez. Ancak Portlet standardı java ile birlikte geliştirildi. O'Reilly'nin güzel bir öğreticisi var .
Esasen, Servletler bir tarayıcıda (çerçeve kullanmıyorsanız) tüm sayfayı kaplayan içerik sağlar ve portletler bir pencereyle sarılmış içerik sağlar. Portletlerle, yan yana birden çok portletiniz olabilir ve her biri diğerinden farklı içerik ve işlevsellik sağlayabilir. Bir portlet, bir uygulama türü için tam etkileşim sağlayabilirken, başka bir portlet başka bir uygulama türü için içerik sağlayabilir. Portal, bazı ev tutma işlevselliği sağlayabilir ve bir sayfadaki tüm portletlere güvenli tek giriş noktası sağlayabilir. Aralarındaki ayrıntılara (benzerlikler / farklılıklar) gelince, lütfen okumaya devam edin. İşte bazı benzerlikler: