Java EE web geliştirme, nereden başlayabilirim ve hangi becerilere ihtiyacım var? [kapalı]


216

En azından temel düzeyde, Java web uygulamaları (.NET arka planından geliyor) nasıl oluşturulacağını öğrenmek istiyorum. Baştan sona basit bir CMS türü uygulama oluşturmak, dağıtmak istiyorum.

Tam olarak ne öğrenmem gerekiyor?

Tomcat, Java için iyi bir web sunucusu gibi görünüyor.

Web için hangi seçenekler var? ORM için Hazırda Bekletme olduğunu biliyorum .

Java'nın MVC'si var mı? JSP ne olacak ? MVC ve JSP birlikte olabilir mi? NetBeans ?

Belki bunların hepsini kapsayan bir kitap?

Yanıtlar:


261

(Mart 2020'de güncellendi)

Her şeyden önce, "Java EE" Eylül 2019'dan beri sürüm 8'den başlayarak " Jakarta EE " olarak yeniden adlandırıldı . Tarihsel olarak, 1.4'e kadar 1.2 sürümlerini kapsayan "J2EE" terimi de vardı. "Java EE", 8 - 8 arasındaki sürümleri kapsamaktadır. Ayrıca bkz. Java Platform, Enterprise Edition, Wikipedia'da Geçmiş .

Tam olarak ne öğrenmem gerekiyor?

HTML , CSS ve JS gibi istemci tarafı teknolojilerine zaten aşina olduğunuzu varsayıyorum , bu yüzden bununla ayrıntılı olarak ilgilenmeyeceğim. Ayrıca temel Java'yı zaten bildiğinizi varsayalım. Oracle'ın The Java Tutorials'ı izleyin ve mümkünse bir OCP kitabı veya kursu da alın.

Daha sonra Java web geliştirmenin temel kavramlarını öğrenmek için JSP / Servlet ile başlayabilirsiniz. İyi öğreticiler Oracle'ın Java EE 5 öğretici bölüm II bölüm 3 - 8'de ve Coreservlets.com'da ( Başlangıç-Orta ve İleri, ayrıca JDBC ) bulunabilir. Java EE 6'dan beri, JSP'nin JSF lehine Java EE öğreticisinden kaldırıldığını ve JSP'nin o zamandan beri temelde değişmediğini unutmayın. Bu nedenle bunun için oldukça eski Java EE 5 öğreticisini güvenle kullanabilirsiniz. JSP ile ilgili en önemli şey, JSP dosyalarına <%scriptletler kullanarak düz Java kodu yazmanın %>2003'ten beri resmi olarak cesaret kırılmasıdır . Ayrıca bakınız JSP dosyalarında Java kodunu nasıl önleyebilirim? Bu yüzden hala senaryoları kapsayan tüm öğreticiler atlanmalıdır, çünkü kesinlikle sizi kötü uygulamaları öğrenmenin aşağı doğru bir sarmalına götürürler.

Burada Stack Overflow'da, temel bilgileri öğrenebileceğiniz ve daha yararlı bağlantılar bulabileceğiniz JSP , Servlets , JSTL ve EL hakkında güzel wiki sayfaları da bulabilirsiniz .


Tomcat, Java için iyi bir web sunucusu gibi görünüyor.

Bu. Ancak yetenekleri sınırlıdır. Temelde, büyük Java EE API'sının yalnızca JSP / Servlet bölümlerini uygulayan bir barebone sunucu uygulaması konteyneri. EJB veya JPA'ya gitmek isterseniz, başka bir tane seçmek istersiniz, örneğin WildFly , TomEE , Payara , Liberty , WebLogic , vb. Aksi takdirde Java EE yerine Spring'i kullanmanız gerekir. Çekirdek motoru değiştirmeden EJB'yi barebone sunucu uygulaması konteynerine kurmak mümkün değildir, Tomcat'in temel olarak TomEE'yi yeniden keşfetmesi durumunda. Ayrıca bkz. Java EE tam olarak nedir? , Maven üzerinden JSF kitaplıklarını düzgün şekilde nasıl kurabilir ve yapılandırabilirim? ve Tomcat üzerine CDI nasıl kurulur ve kullanılır?


ORM için Hazırda Bekletme olduğunu biliyorum.

Daha önce, J2EE döneminde, JPA mevcut olmadığında ve EJB2 korkunç olduğunda, Hibernate bağımsız bir çerçeveydi ve EJB'yi desteklemek için sık sık Spring ile birlikte kullanılıyordu. Java EE 5 (2006) 'da JPA'nın piyasaya sürülmesinden bu yana, Hibernate bir JPA uygulaması haline gelmiştir. JPA'yı Jakarta EE öğretici bölümü VIII'de öğrenebilirsiniz . Ayrıca EJB3, İlkbahardan öğrenilen derslere dayanarak çok gelişti. Ayrıca bkz. Spring veya EJB3'ü veya hepsini birlikte kullanmak ne zaman gereklidir veya uygundur?


Java'nın MVC'si var mı? JSP ne olacak? MVC ve JSP birlikte olabilir mi? JavaBeans?

Yapabilirsiniz , ancak bu , görünümü görünümle (dönüşüm, doğrulama, dinleyicileri değiştirme vb.) Bağlama söz konusu olduğunda tekerleğin yeniden icat edilmesi çok fazladır . Java EE'nin MVC çerçevesine JSF adı verilir . Java EE 6'dan önce, oldukça eski bir görünüm teknolojisi olan JSP'de çalışırdı. JSP, Facelets ile değiştirildi . JSF'yi Jakarta EE öğretici bölüm III 7 - 17 bölümlerinde öğrenebilirsiniz . Bu arada Tomcat'te JSF'yi de kullanabilirsiniz, sadece ayrı olarak yüklemeniz gerekir. Kurulum talimatları Mojarra ana sayfasında bulunabilir. Tam bir Java EE uygulaması olarak WildFly, TomEE, Payara, Liberty, WebLogic, vb zaten kutudan JSF (ve CDI, BV, JSONP, JAX-RS, EJB, JPA, vb.) Sağlar, böylece ayrı olarak kurun. Ayrıca bkz. Maven yoluyla JSF kitaplıklarını nasıl düzgün şekilde kurabilir ve yapılandırabilirim?


Belki bunların hepsini kapsayan bir kitap?

Birkaç kitap var. Ben bir kitap ile başlamak öneriyoruz genel olarak Cakarta EE odaklanmış bir kitap daha JSF odaklanmış ve bir kitap daha JPA üzerinde duruldu . Konuyu kapsayan en son kitabı seçtiğinizden emin olun. Önce en güncel sürümü inceleyin ve ardından seçilen kitabın bunu kapsadığından emin olun. Bu nedenle, şu anda zaten Jakarta EE 8 ve JSF 2.3 mevcutken Java EE 5 veya JSF 1.0 için eski bir kitap seçmeyin.

Son olarak, gülindia, tutorialspoint, javabeat, journaldev, javatpoint, codejava, vb. afiş ve içeren JSP kod parçacıklarını scriptlets .

Ayrıca bakınız:


Azam! yararlı, teşekkür ederim. .Net'te genellikle Wrox Press'in kitabı .net'teki tüm bilgileri kapsayabilir. Çok kalın bir kitap.
gfan

5
StackOverflow'un Pin yayını özelliği yok mu? Keşke yapsaydım, bu yüzden bu cevabı sabitleyebilirim. Teşekkürler!
dww

JavaEE 5 eğitimine bir alternatif olmalı. Ben bir çaylağım olduğumu biliyorum ve bu konuda çok iyi. Ama ... Bu öğreticiden öğrenmeye çalışıyorum. Çok kilitli ve belirli ayarlara bağlı. Bu yüzden NetBeans öğrenmem gerekiyor. o zaman sunucumdan vazgeçmek ve prolly cami çalıştırmak ve wasnt kolay öğrenmek için örnek kodu bulmaya çalışıyorum gerekir. Sunucuda çalıştıramadım. onun yerine maven build adında bir şeyle karşılaştım. Ben denedim düşündüm hangi tutulması gidiş nutz sonuçlandı! aparently ben de maven öğrenmek gerekir, ve bu, diğer ve şeytanlar büyükanne ...
velet

@brat: cevap alternatiflere ve kitaplara bağlantılar içerir.
BalusC

İyi. Sadece çok şey kapsar. Coreserv ... Burada ve orada parçacıklar almak zorunda kaldım. Ben şimdi officiall JavaEE tut ile tam gitti :) Sadece bir SDK bulmak için, örnek kod çalıştırmak için JDK 10 ile çalışmayan bir GlassFish sunucu var :(, başlangıçta NullPointerException. Bir kesmek stackoverflow.com / sorular / 47458119 /… ve bu yüzden indirmem gerekiyor ... vb. Sanırım öğrenmek için çemberlerden atlamak zorunda kaldığım için biraz aşağı ve şirretli davranıyorum . :(. noobs x) Şerefe :)
velet

28

Tam olarak ne öğrenmem gerekiyor?

Minimal,

  • Java dili
  • Veritabanı erişimi için JDBC dahil API API'sı
  • Bir IDE veya bir metin editörü + Ant
  • Java EE, temel olarak sunucu uygulamaları ve JSP
  • Bir sunucu uygulaması kabı (Tomcat gibi)

Tomcat, Java için iyi bir web sunucusu gibi görünüyor.

"İyi". EJB'lere dahil değilseniz, muhtemelen başka bir şey öğrenmeniz gerekmeyecektir. Glassfish 3 son zamanlarda oldukça havalı gözüküyor, ancak henüz çok fazla oynamadım. Bir web sunucusundan "daha fazla" olduğunu unutmayın. Bir sunucu uygulaması kapsayıcısıdır (yani sunucu uygulamalarını kullanarak uygulamaları çalıştırabilir).

Web için hangi seçenekler var?

Yaklaşık bir milyon farklı çerçeve. Gerçekten, birini seçmek gerçekten "zor". Hepsini denemek çok cazip ama sonuçta mümkün değil.

Bir ORM için hazırda bekletme olduğunu biliyorum.

Ben biraz anti-ORM, ama bir "tam" ORM gerekiyorsa Hazırda Bekleme. Spring'in JDBC desteği veya iBatis gibi "kısmi" ORM'leri de deneyebilirsiniz.

Java'nın MVC'si var mı? JSP ne olacak? MVC ve JSP birlikte olabilir mi? Fasulyeler?

Evet, çoğu Java web çerçevesi MVC yapar. Bahar'ın MVC güzel, ama başka bir şey tavsiye edemez (özellikle, değil Struts 1!). JSP sadece bir HTML (veya XML) şablonlama motorudur. Katıştırılmış Java koduna sahip eski JSP, soğutulmamış; etiket dosyaları ve kütüphaneleri ile modern JSP oldukça iyidir.

Sanırım çoğu çerçeve, V'lerinizi oluşturmak için JSP kullanmanıza izin verecektir; Spring'in MVC ve Struts yapıyor. Bazıları da başka bir şey kullanmanıza izin verecektir (Hız, Freemarker, vb.).

Fasulye sadece nesneler için bir sözleşmedir. Temel olarak, alıcıları ve ayarlayıcıları (veya bazı alternatifleri) kullandığınız ve bazı kurallara uyduğunuz anlamına gelir. Bunlar, nesnenizin belirli araçlarla manipüle edilmesine izin vermelidir. Tipik bir örnek bir GUI'dir, bazı araçlar keyfi çekirdekleri düzenlemek için GUI bileşenleri oluşturmanıza izin verir (yani, alanlarını düzenlemek için bir form oluştururlar).


16

HTML, CSS ve JavaScript'e ihtiyacınız var - web geliştirme için her zamanki şüpheliler.

Tomcat'in yerleşik bir web sunucusu var, ancak sunucu uygulaması / JSP motoru . Apache saf web sunucusudur.

HTML çıktısı üreten sunucu uygulamaları oluşturmak için cazip bir dil olan JSP'yi öğrenmeniz gerekir. Bunları komut dosyaları değil JSTL kullanarak yazmak isteyeceksiniz.

CRUD uygulamaları yapıyorsanız, JDBC ve ilişkisel veritabanlarını öğrenmeniz gerekir. Hazırda Bekletme veya başka bir ORM'yi denemeden önce bunu yapmalısınız, çünkü bunlar inşa edildikleri temeldir.

JavaBeans sadece Java nesneleri için standartlardır.

Eğer hazırsanız, Spring framework'ü tavsiye ederim.


Tomcat'in yerleşik bir web sunucusu olduğunu söylüyorsunuz, o zaman başka ne var? tüm bu bir web sunucusu olduğunu düşündüm?
mrblah

6
mrblah - Tomcat bir sunucu uygulaması motorudur. Servlet sınıflarını (jsp'lerin dönüştürüldüğü şey) işlemek ve çıktıyı bir tarayıcıya sunmak için yapıldı. Bunun yanı sıra, bir web sunucusunun yaptığı gibi tüm normal dosyaları (resimler, html, css, vb.) Sunar. Bir php modülü ile Apache ile karşılaştırılabilir.
Nemi

13

Java'nın MVC'si var mı?

Java'nın Struts2 , Spring MVC gibi farklı çerçeveleri var

JSP ne olacak?

JSP şablon kütüphanesidir. FreeMarker ve Velocity gibi deneyebileceğiniz birkaç alternatif var . AFAIK Freemarker iyi bir şablon kütüphanesi olarak ortaya çıkmaktadır. JSP'den daha hafif . Bu FreeMarker'a göz atın : JSP'ye açık bir alternatif - JavaWorld

MVC ve JSP birlikte olabilir mi?

MVC'yi daha önce bahsedilen bir çerçeve olarak alıyorum. Tüm çerçevelerin JSP desteği vardır, ancak ilgili çerçeve belgelerindeki diğer şablon kitaplıkları için desteği kontrol etmeniz gerekir. AFAIK Struts2 , Freemarker için çok iyi bir desteğe sahip.

Fasulyeler?

Bu konuda fazla bir şey bilmiyorum. Ancak fasulye kullanarak form verilerini doğrudan veritabanlarıyla eşleştirebiliriz.

Belki bunların hepsini kapsayan bir kitap?

Her çerçevenin kendi kitabı vardır. For Struts2 - Eylem Struts 2

String MVC - Spring ve Spring MVC için kitap öneren bu sorulara bir göz atın. Bahar çerçevesi ve Bahar Kitapları için kitap önerisi : Hangisini seçmelisiniz

Fremarker çok iyi bir belgeye sahip - FreeMarker Manual

Java ile web geliştirmeye başlamak için -

alternatif metin

http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596


5

Geleneksel Java web geliştirme seçeneklerinin çoğunun oldukça ağır olduğunu düşünüyorum ve bazı iyi alternatifler var:

  • Oyun , daha dinamik JVM tabanlı bir dilin aksine saf Java ile yapışırken hafif, basit ve hızlı gelişime odaklanan bir MVC çerçevesidir. Oldukça yeni ama zaten etkileyici ve etrafında iyi bir topluluk hızla oluştu.

  • Grails , Java tabanlı bir betik dili olan Groovy ile yazılmış ve kullanılan Ruby on Rails'ten esinlenen bir MVC çerçevesidir . Grails, güçlü bir toplulukla olgun, sağlam ve yaygın bir şekilde saygı görmektedir. Groovy temelde daha iyi sözdizimi ve kapaklar gibi bazı harika özelliklere sahip bir Java üst kümesidir, bu yüzden öğrenmek Java'yı öğrenmek için harika bir yoldur.

  • RESTful web sitelerine / hizmetlerine / uygulamalarına ihtiyacınız varsa / oluşturmak istiyorsanız, Restlet harika bir çerçevedir - ben büyük bir hayranıyım. Basit, anlaşılır ve esnek. Çok büyük bir topluluk.

  • Google'ın App Engine'i de ilginç bir seçenektir. İlgi çekici veya ilgi çekici olmayabilir, ancak oldukça basit bir API ve iyi bir SDK'ye sahiptir.

Eminim başkaları da vardır, ama bunlar kafamın üstünden düşünebileceğim şeyler.

İyi şanslar ve iyi eğlenceler!


Oh, ve geçen gün Prudence'i yeni keşfettim: threecrickets.com/prudence
Avi Flax

3

Ben bir PHP / C programlama ve Java programlama doğasında bulunan tüm sınıfları ve paradigmaları öğrenmeden Java'ya atlamak için harika etkin buldum. Groovy, java ve mevcut tüm araçlar / çerçeveler / kütüphaneler hakkında daha fazla bilgi edinmek için zaman ayırırken hızlı bir şekilde üretken olmamı sağladı.


3

Html, css, xml, javascript vb. İle çalışmayacaksanız ..

Vaadin çerçevesini deneyin , iyi belgelenmiş, öğrenmesi kolay ve basit bir şekilde iyi görünümlü kullanıcı arayüzü oluşturmanıza olanak tanır. (sadece Java kodu yazın, elbette bazı sunucu uygulaması sunucusuna ihtiyacınız var, Tomcat veya Jetty iyi olacak)


2

Java öğrenmek daha sonra Servlets ve JSP öğrendikten sonra MVC için gitmek Struts veya Bahar veya herhangi bir diğer java / java etkin çerçeve gidin.


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.