İlkbahar veya hazırda bekletme modunu veya başka herhangi bir java web çerçevesini öğrenmek için sunucu uygulamalarını ve JSP'yi bilmem gerekir mi? [kapalı]


17

Java web geliştirme öğrenmeye nereden başlayacağımı soruyorum, zaten çekirdek java'yı (Threading, Generics, Collections, (JDBC) ile küçük bir deneyim) biliyorum ama JSP'leri ve sunucuları bilmiyorum. Sunucu tarafı için PHP ve istemci tarafı için HTML, CSS, Javascript, HTML5 kullanan birkaç web tabanlı uygulama ile gelişimimdeki adil payımı yaptım.

Sorduğum çoğu insan, Hibernate'e hemen atlamamı söyledi, bazıları ise sunucuları ve jsps öğrenmek zorunda olmadığımı ve hemen Bahar çerçevesini incelemem gerektiğini söyledi. Bu doğru mu? hazırda bekletme veya Bahar öğrenmek için sunucu uygulamaları ve JSP'leri öğrenmem gerekmez mi?

Tüm cevapları beni şaşırttı ve şimdi ne öğreneceğimi veya çalışacağımı tamamen kaybettim. JSP ve sunucuları öğrenmeyi atlarsam, gelecekte kesinlikle bana yardımcı olacak birçok önemli konsepti kaçırdığımı hissediyorum.

Yani soru, bahar veya hazırda bekletme modunu veya başka herhangi bir java web çerçevesini öğrenmek için vakıf / bilmek sunucuları ve JSP'ye ihtiyacım var mı?


3
Hazırda bekletme modunun sadece bir veritabanı soyutlama katmanı olduğunu, başka bir şey olmadığını ve sadece bir web uygulaması değil, herhangi bir java uygulamasına bir veri kaynağı bağlamak için kullanılabileceğini unutmayın.
Ed Griebel

1
Servlet ve JSP hakkında bilgi sahibi olmak acıtmaz, "Head First - Servlets ve JSP" ye bir göz atın. Anlaması kolay bir okuma, ama aynı zamanda çok şey kapsar.
Jaydee

@Jaydee Şu anda Marty Hall + Murach'ın servletleri ve JSP tarafından Core Servlets ve JSP'ye gidiyorum.
KyelJmD

Bu sorunun yeterince cevaplandığını düşünmüyorum. Bear Bibeault, iyi bilinen bir geliştirici ve yazarlar HERHANGİ BİR çerçeveyi öğrenmeden önce JSP ve Servlet'leri öğrenmekte ısrar ediyor. Bugün bunun neden geçerli olup olmayacağını göstermek isteyen var mı? İşte yazısı - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

Tamam, bazı cevaplar aldım Bear Bibeault. Bu iki bağlantıya bakın - coderanch.com/t/633527/Spring/… ve coderanch.com/t/633526/JSP/java/…
Borat Sagdiyev

Yanıtlar:


17

HTML, CSS ve JavaScript'i iyi bir şekilde kavradıysanız, web geliştirme yapan birçok kişi hakkında bir fikriniz var. JSP'nin arkasındaki kavramlar PHP'ye çok benzer. Tuhaflıklar farklı. Sunucu uygulaması, bir istek sunan Java kodunun adıdır. Gerçekten bu kadar. Tüm orijinal Struts çerçevesi tek bir sunucu uygulamasıydı.

Öğrenmek için teknoloji listenize Tomcat veya Jetty eklerim . Tomcat, orijinal Java Servlet Container uygulamasıdır ve tam özellikli ve oldukça popüler bir web sunucusu olarak da görülür. GlassFish üzerine inşa edilmiştir. Daha yeni, daha basit, daha esnek ve daha hızlı olduğu için Tomcat yerine Jetty kullanıyorum. Jetty, web uygulamalarının aksine web hizmetleri yapmak için tasarlanmıştır. Ancak bir web uygulaması, yalnızca ham HTTP isteklerine yanıt olarak HTML sunan bir web hizmetidir, bu nedenle HTTP'yi anlarsanız (birkaç saatten bir güne kadar önemli kısımlarını öğrenebilirsiniz), çalışmak çok kolaydır.

Tomcat ve JSP ( burada öğretici veya JSF) ile sadece ne bildiğinizi bilerek ve birkaç saat dersler geçirerek küçük bir web sitesi yapabilirsiniz . Bu şekilde uzanmadan önce rahat olduğunuz yerden başlayabilirsiniz. Sonra "<html> <head> <title> Merhaba </title> </head> <body> <h1> Merhaba Dünya </h1> </body> </ html yazan bir javax.servlet.http.HttpServlet yapın . > "öğesini yanıt nesnesine Tomcat web.xml'nizde listeleyin ve bir web tarayıcısından bir HTTP isteği gönderin. Bu roket bilimi değil. Tüm Java web çerçeveleri bu iki temel etkinliğin varyasyonlarıdır.

İskele rotasına giderseniz, daha az yapılandırılmıştır. Bu Hello Jetty örneğine göz atın .

Bir blog veya standart e-ticaret sitesi yapacaksanız SquareSpace veya Wordpress veya başka bir şeyle başlarım . Raftan çok fazla şey alıyorsunuz, artık özel kodlamayı haklı çıkarmanın bir yolu yok.

Web uygulamaları için Java'nın gücü güvenilirliği, sürdürülebilirliği ve performansıdır. PHP veya Ruby / Rails daha basittir, ancak Java gitmek istediğiniz kadar ölçeklendirilir. Java web çerçevelerinin hiçbiri tarafından desteklenmiyorum. Büyük bir web uygulaması üzerinde çalışan bir ekibiniz olduğunda veya Hazırda Bekletme modunu kullanmanız gerektiğinde, Spring gibi bir çerçeve gerçekten parlar. Bahar en popüler olanıdır. Sunucu uygulamaları ve JSP / JSF hakkında bilgi sahibi olduğunuzda, Spring'in bunları bir veri modeliyle nasıl bağladığını öğrenin.

Bir blog veya içerik yönetim sistemi oluşturuyorsanız, belki bir NoSQL veritabanı ile kurtulabilirsiniz. Ancak, NoSQL veritabanlarının ilişkisel veritabanlarını değiştirmek yerine temelde sadece bir dosya sisteminde bir önbellek katmanı olduğunu iddia ediyorum. Bir NoSQL veritabanı için uygun bir projenin Java'da geliştirilmesinin uygun olacağına inanıyorum.

Hala özel, yüksek performanslı kod gerektiren şeyler (Java, PHP, her ne olursa olsun) muhtemelen bunları destekleyen bir ilişkisel / SQL veritabanı olacaktır. Öncelikle SQL ve JDBC (Java Veritabanı Bağlantısı) ile temel bir aşinalık kazanmanızı öneririm. Java nesneleri dünyası ve ilişkisel veritabanları ve SQL dünyası ile rahat olduktan sonra , nesne dünyasını ilişkisel dünyaya bağlayan Ebean / JPA (Java Persistence API) / ORM ( Nesneden İlişkisel Haritalama) öğrenebilirsiniz .

ORM'ler aldatıcı ve tuhaf. Çoğu sonunda mücadeleye değer. Ebean bildiğim en basit olanı. 8 ay sonra 12 yıl sonra Hazırda Beklettiğimden daha rahatım. Spring'i Hibernate ile kullanan birçok insan tanıyorum ve herhangi bir sorun yaşamıyorlar, hatta Hibernate'in ne olduğunu veya ne yaptığını özellikle bilmiyorlar, bu yüzden Hibernate'i kullanacaksanız bunu söylerim Bahar Belki de onunla daha uzun süre çalıştığım için, Hibernate'i test için birkaç karma harita ile tamamen saplamayı başardım, bu harika (istek üzerine genel bakış mevcut).

Şimdiden en önemli becerileriniz var. Diğerlerini birer birer alın ve bunalmamaya çalışın.


adı geçen teknolojileri öğrenmeye başlayabileceğim herhangi bir bağlantınız veya eğiticiniz var mı? ya da belki bir kitap için iyi bir öneri. Yaptığım çoğu uygulama SQL Server'dan basit bir MySQl'ye kadar bir RDBMS kullanır.
KyelJmD

Cevabımı temizledim ve istendiği gibi bağlantılar ekledim. Hazırda Bekletme / JPA ve çeşitli web çerçevelerinin öğrenilmesi ve ustalaşması zaman alır. Diğer teknolojilerin çoğu, birkaç saat veya bir gün içinde çalışabilmeniz gerektiğini zaten biliyorsunuz. Spring'i bilmiyorum, ancak web sitelerindeki belgelere bakın veya Amazon'da yüksek puan alan bir kitap alın.
GlenPeterson

Bunun soruyu nasıl cevapladığını anlamıyorum. Bear Bibeault, iyi bilinen bir geliştirici ve yazarlar HERHANGİ BİR çerçeveyi öğrenmeden önce JSP ve Servlet'leri öğrenmekte ısrar ediyor. Bunun neden bugün uygulanabileceğini veya uygulanmayabileceğini göstermeye özen gösteriyor musunuz? İşte yazısı - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

@GlenPeterson, "Tüm orijinal Struts çerçevesi tek bir sunucu uygulamasıydı." anlam? Her http çağrısını yavaşlatmaz mı?
Pacerier

@Pacerier Tomcat'te Struts 1'i sunucu uygulaması olarak yüklerdik. Struts Controller sunucu uygulaması, bir web sunucusunun yaptığı gibi farklı iş parçacıklarına kapsayıcı düzeyi yerine sunucu uygulaması düzeyinde farklı istekler gönderir. Tepegöz az hayal ediyorum. En yavaş olma eğilimi veritabanı çağrılarıdır. En yavaş 2. HTML oluşturmak ve istemciye döndürmek. O zaman hız için statik içerik için ayrı bir sunucu kullanmak popülerdi, bu yüzden işe yaradı.
GlenPeterson

4

İlkbaharda basitleştirilmiş kavramları kavramanıza yardımcı olacağı için temel JSP ve Servlet'leri öğrenmenizi öneririm. PHP tabanlı CGI'larla ilgili deneyiminiz olduğundan, JSP / Servlet'lerin çoğu, aşina olduğunuz şeyleri yapmanın farklı yollarını bu yüzden oldukça hızlı bir şekilde gitmelidir. Bulabileceğiniz en zor şey, java dünyasındaki benzersiz deyimleri toplamak olacaktır.

Hibernate'e gelince, MebAlone ile aynı fikirdeyim ve eğer gerekiyorsa öğrenirim diyorum, ama zaten kurulmuşsa, başkalarının yaptıklarını kapatarak ihtiyacınız olan şeyin% 90'ını yapabilirsiniz.


2

Java ile sunucu tarafı web geliştirme öğrenmek istediğiniz gibi geliyor. Bir dizi çerçeve var. Bahar MVC aslında en popüler olanı, olgun, çok özellikli ve bilmek için iyi bir çerçeve. Spring MVC ve diğer java web çerçeveleri programcıdan java servlet API'sini soyutlar - teknik olarak bunu bilmenize gerek yoktur. Ama temelleri, özellikle de anahtar sınıfları öğrenmenizi öneririm. Bir gün eğitim seni oraya götürmeli.

JSP'ye gelince, PHP'yi biliyorsanız, temel bilgileri zaten biliyorsunuzdur. JSP, java'nın sunucu tarafı komut dosyası oluşturma sürümüdür.

Hazırda Bekletme, nesnelerin RDBMS'ye kalıcı hale getirilmesi için java özelliği olan JPA'nın (en popüler) bir uygulamasıdır. NOSQL db'lerin (Hadoop, Mongo, vb.) Popülaritesindeki patlama ile Hibernate, 18 ay öncesine göre bile 'bilmeli' bir şeyden çok daha az. Şahsen depolama teknolojilerini bilmesi gerekenler temelinde öğreniyorum çünkü bunların çoğu var ve kullanmadığınız şeyleri kaybediyorsunuz.


Spring MVC için hangi kitabı önerebilirsin? Spring ve Spring MVC arasındaki fark nedir?
KyelJmD

Spring, çok çeşitli projeler içeren bir java teknolojisi yığınıdır. Spring MVC sunucu tarafı web çerçevesidir. Spring'in çevrimiçi dokümantasyonu ve örnek uygulamaları, Spring MVC'yi öğrenmenin en iyi yoludur.
MebAlone

2

Kısa cevap: hayır, Bahar MVC ve diğer birçok Java web çerçevesi için ön koşul olarak Servlets ve JSP'leri öğrenmenize gerek yoktur .

Önce Hazırda Beklet modunu resimden çıkaralım. Bu bir kalıcılık katmanı çerçevesidir ve Servlets ve JSP'lerle hiçbir ilgisi yoktur.

Servlet API, hemen hemen tüm Java web çerçeveleri için en düşük düzeydir. JSP'ler bile sunucu uygulamalarına derlenir.

Spring MVC, Servlet API'nin üstünde, birçok yararlı uzantı ve Spring Core ile entegrasyon içeren bir katman. JSP'leri Spring MVC için bir oluşturma mekanizması olarak kullanabilirsiniz. Bahar MVC öğretici web uygulamaları oluşturmak için baştan aşağı götürecek. Siz ilerledikçe JSP'leri öğreneceksiniz ve Servlet API'sini de anlayacaksınız.


Spring MVC'yi öğrenmek için hangi kitabı veya video eğitimini önerirsiniz?
KyelJmD


1
@YuriyZubarev - Bunun soruyu nasıl cevapladığını anlamıyorum. Bear Bibeault, iyi bilinen bir geliştirici ve yazarlar HERHANGİ BİR çerçeveyi öğrenmeden önce JSP ve Servlet'leri öğrenmekte ısrar ediyor. Bunun neden bugün uygulanabileceğini veya uygulanmayabileceğini göstermeye özen gösteriyor musunuz? İşte yazısı - coderanch.com/t/521300/JSP/java/JSP-servlets-struts
Borat Sagdiyev

-1

son zamanlarda karşılaştığım bir konuya sıkışmış gibi görünüyorsun. Amacım Java ile sunucu tarafı geliştirmeyi öğrenmekti. Servlet'lerle başladım, çalışmalarını anladım ve TomCat sunucusunda çalıştırmak için bazı basit programlar yazdım. TomCat, bir ön koşuldur. Daha fazla ilerlemek istiyorsanız TomCat'ı ​​kesinlikle tanımanız gerekir. Payanda2 veya Yay söz konusu olduğunda, payanda2 ve yay, kuluçka üzerine inşa edilmiş çerçevelerdir, bu da temelde güçlü olmak istiyorsanız kuluçkaların derinlemesine anlaşılmasını zorunlu kılar. Java Brains öğreticileriyle başladım. Yeni başlayanlar için, bu öğreticiler şaşırtıcı. Jakob Jenkov'un blogundaki bazı çalışmaları da gerçekten şaşırtıcı. Servlet'leri bildiğinizde Struts2 ve Spring daha basit hale gelir. Hazırda bekletme söz konusu olduğunda, JDBC'ye gerçekten aşina olmakla başlamanızı öneririm. Adım adım gidin, sunucu uygulamaları, payandalar, JDBC, Bahar, Hazırda Bekletme. Umarım cevabım yardımcı olur :).


bu yazıyı okumak oldukça zor (metnin duvarı). Sakıncası var düzenleyebilir daha iyi bir şekle ing?
gnat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.