Java na serveru: úvod

Java není jen skvělý objektově orientovaný jazyk. Je to i platforma, kterou můžeme použít pro tvorbu svých webových aplikací. Stejně jako ji můžeme použít pro vývoj aplikací pro desktop nebo mobilní telefony. Java je dospělá a léty prověřená technologie, přesto však moderní a stále se rozvíjející.

Seriál: Java na webovém serveru (16 dílů)

  1. Java na serveru: úvod 8.1.2010
  2. Java na webovém serveru: první web 15.1.2010
  3. Java na webovém serveru: práce s databází 29.1.2010
  4. Java na webovém serveru: práce s databází II 12.2.2010
  5. Java na webovém serveru: lokalizace a formátování 19.2.2010
  6. Java na webovém serveru: autorizace a autentizace 26.2.2010
  7. Java na webovém serveru: autorizace a autentizace II 5.3.2010
  8. Java na webovém serveru: porovnání Javy a PHP 10.3.2010
  9. Java na webovém serveru: Vlastní JSP značky a servlety 17.3.2010
  10. Java na webovém serveru: posílání e-mailů a CAPTCHA 24.3.2010
  11. Java na webovém serveru: píšeme REST API 7.4.2010
  12. Java na webovém serveru: SOAP webové služby 14.4.2010
  13. Java na webovém serveru: hlasování a grafy v SVG 28.4.2010
  14. Java na webovém serveru: Komentáře a integrace s Texy 9.6.2010
  15. Java na webovém serveru: AJAX formuláře 23.6.2010
  16. Java na webovém serveru: implementujeme Jabber 30.6.2010

Přes tyto přednosti se mezi běžnými webovými vývojáři netěší takové oblibě a bývá považována za něco, co patří jen do bank a velkých podniků. Důvod je prostý – prakticky 100% hostingů nabízí obvyklý LAMP (Linux + Apache + MySQL + PHP). Zatímco sehnat hosting pro Javu je složitější nebo přinejmenším dražší. Naštěstí s rozmachem VPS hostingů se situace lepší. Také platí, že prakticky každá větší než malá aplikace dostane dedikovaný server nebo alespoň virtuální stroj. Takže prostor pro Javu tu je. Ale pak zase nejsou lidi, protože jsou všichni odkojení PHP a psaním webů pro LAMP. Proto vznikl tento seriál. Doufám tedy, že se řady českých javistů rozrostou o nové vývojáře.

Stručná historie a popis platformy Java EE

Práce na Javě jako takové začala už v roce 1991, tehdy se jazyk ještě jmenoval Oak. První veřejná verze – Java 1.0 spatřila světlo světa v roce 1995. Specifikace Java Server Pages (JSP) 1.0 byla uvolněna v roce 1999 jako odpověď na ASP a PHP. Dnes jsou aktuální tyto verze specifikací: Servlety 3.0, JSP 2.2, JSF 2.0.

Java EE zastřešuje bohatou škálu technologií. Aplikační server, v kterém „enterprise“ aplikace běží, za nás řeší věci jako např. správu databázových spojení (connection pooling), řízení práv a uživatelských rolí nebo třeba volání vzdálených služeb.

Komu je seriál určen

Předpokládám, že ovládáte Javu SE, proto se nebudu věnovat syntaxi jazyka jako takového. Pokud jste v Javě ještě nic nepsali, ale programujete v jiném jazyce, můžete se pokusit Javu doučit „za chodu“.

Seriál je určen začátečníkům – takže pokud pracujete na pozici Java EE vývojáře, pravděpodobně se tu nic nového nenaučíte.

Cílem seriálu je uvést čtenáře do problematiky Java EE, resp. její malé části, kterou je tvorba webových aplikací. Mějte to prosím na paměti, až budete chtít do diskuse psát o „kanónu na vrabce“ – opravdu to tak někdy bude, ale tématem není: „Vytváříme webovou stránku pomocí úžasného frameworku během 10 minut“. Také se příliš nebudeme zabývat vzhledem aplikace, takže bude, alespoň zpočátku, trochu ohavná, ale nastylování webové stránky pomocí CSS nezávisí na použitém programovacím jazyku a jistě to zvládnete lépe než já.

Aby se dosáhlo velkého, je třeba začít s menším“ – praví klasik, takže budeme zpočátku stavět pouze na standardních prostředcích platformy bez dodatečných frameworků – ty sice usnadní spoustu práce, ale zároveň zakrývají podstatu věci (kromě toho, že by každý z nich vydal na samostatný seriál).

Instalace potřebných programů

K vývoji javových aplikací budeme překvapivě potřebovat Javu, resp JDK. V Linuxu na bázi Debianu nebo Ubuntu si ji nainstalujeme příkazem:

# aptitude install sun-java6-jdk

Zkontrolujeme si nainstalovanou verzi:

$ java -version
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02, mixed mode)

V jiných distribucích je postup obdobný – např. OpenSuse, Mandriva.

Pokud používáte Windows, budete si muset stáhnou instalátor ze stránek Sunu a proklikat se jím.

Poznámka: kromě implementace Javy od Sunu existují i další – hlavně OpenJDK – ve kterých by vám aplikace měla fungovat stejně.

Emacs a VIM jsou skvělé editory, ale pro vývoj v Javě se daleko více hodí IDE. Nainstalujeme si tedy Netbeans. Aktuální verze je 6.8. Zvolíme edici Java nebo All.

Netbeans

Dále budeme potřebovat aplikační server na kterém náš program poběží. Použijeme GlassFish v3, obsažený v instalaci Netbeans IDE.

glassfish

Ukázková aplikace a zdrojové kódy

Během tohoto seriálu budeme společně vyvíjet webovou aplikaci. Ta je sice šitá na míru výukovým účelům, ale nakonec by měla i fungovat. Protože nerad chodím do zakouřených hospod, vytvoříme databázi nekuřáckých podniků. Není to nic originálního, takových stránek existuje spousta, ale pro potřeby seriálu toto téma postačí – je dostatečně jednoduché a snad i zajímavé.

Zdrojový kód si stáhnete tímto příkazem:

$ hg clone http://hg.vps.frantovo.cz/nekurak.net/
$ cd nekurak.net

Mercurial je distribuovaný verzovací systém a pokud chcete aktualizovat svoje (místní) úložiště na verzi, která je na serveru, použijte k tomu příkaz  pull:

$ hg pull

Pro každý díl seriálu vytvořím v úložišti verzi označenou příslušným štítkem. Na úroveň dnešní verze zdrojových kódů se dostanete pomocí příkazu:

$ hg up "1. díl"

Případně si můžete stáhnout danou verzi přes webové rozhraní mercurialu jako .bz2 archiv.

Dnešní díl byl trochu rozehřívací, ale tak to chodí na začátku každého projektu. Cílem je, nainstalovat si potřebné nástroje, zkompilovat aplikaci a nasadit („deploynout“) ji na svůj lokální server. Na http://localhost:8080/…rak.net-web/ byste měli vidět totéž, co na http://nekurak.net/. A příště už začneme vyvíjet.

Odkazy

Franta Kučera působí jako Java vývojář na volné noze. Programování je jeho koníčkem už od dětství. Kromě toho má rád Linux, relační SŘBD a XML.

Komentáře: 117

Přehled komentářů

boban Prosím o vysvětlení
Milan Re: Prosím o vysvětlení
Jara Re: Prosím o vysvětlení
Almad Re: Prosím o vysvětlení
Michal Kára Re: Prosím o vysvětlení
Kamil Re: Prosím o vysvětlení
Jiří Knesl Re: Prosím o vysvětlení
Vebloud Re: Prosím o vysvětlení
Ped Re: Prosím o vysvětlení
. Re: Prosím o vysvětlení
Vykook Re: Prosím o vysvětlení
Vykook Re: Prosím o vysvětlení
honza Re: Prosím o vysvětlení
. Re: Prosím o vysvětlení
honza Re: Prosím o vysvětlení
. Re: Prosím o vysvětlení
honza Re: Prosím o vysvětlení
Ped Re: Prosím o vysvětlení
Martin Malý Re: Prosím o vysvětlení
alef0 Re: Prosím o vysvětlení
, Re: Prosím o vysvětlení
alef0 Re: Prosím o vysvětlení
logik Re: Prosím o vysvětlení
alef0 Re: Prosím o vysvětlení
b*d Re: Prosím o vysvětlení
pr.rybar Re: Prosím o vysvětlení
b*d Re: Prosím o vysvětlení
alef0 Re: Prosím o vysvětlení
pr.rybar Re: Prosím o vysvětlení
b*d Re: Prosím o vysvětlení
pr.rybar Re: Prosím o vysvětlení
b*d Re: Prosím o vysvětlení
František Kučera Školství
alef0 Re: Prosím o vysvětlení
dc Re: Prosím o vysvětlení
pr.rybar Re: Prosím o vysvětlení
alef Re: Prosím o vysvětlení
František Kučera Re: Prosím o vysvětlení
František Kučera Re: Prosím o vysvětlení
Láďa Re: Prosím o vysvětlení
rooobertek novoročné predsavzatie
K-Kamil Re: novoročné predsavzatie
rooobertek Re: novoročné predsavzatie
ahl Re: novoročné predsavzatie
Láďa Re: novoročné predsavzatie
Satai Re: novoročné predsavzatie
multi pod poklickou
rooobertek Re: pod poklickou
MD Re: pod poklickou
Melme Re: pod poklickou
xtonda Re: pod poklickou
b*d Re: pod poklickou
Mr.Dan Re: pod poklickou
ahl Re: pod poklickou
uf Re: pod poklickou
ah01 Re: pod poklickou
pr.rybar Re: pod poklickou
Vykook Re: pod poklickou
pr.rybar Re: pod poklickou
ah01 Re: pod poklickou
pr.rybar Re: pod poklickou
xtonda Re: pod poklickou
pr.rybar Re: pod poklickou
František Kučera Re: pod poklickou
pr.rybar Re: pod poklickou
alef0 Re: pod poklickou
pr.rybar Re: pod poklickou
alef0 Re: pod poklickou
Milan Re: pod poklickou
xtonda Re: pod poklickou
František Kučera Re: pod poklickou
b*d Re: pod poklickou
alef0 Re: pod poklickou
b*d Re: pod poklickou
pr.rybar Re: pod poklickou
Vykook Re: pod poklickou
xtonda Re: pod poklickou
alef0 Re: pod poklickou
xtonda Re: pod poklickou
alef0 Re: pod poklickou
Richard Má význam tento seriál ?
ornyx Re: Má význam tento seriál ?
Almad Re: Má význam tento seriál ?
b*d Re: Má význam tento seriál ?
Almad Re: Má význam tento seriál ?
Kakihara spusteni
Martin Malý Re: spusteni
HFechs Re: spusteni
Alternate Aplikační server
Richard Re: Aplikační server
alef0 Re: Aplikační server
Alternate Re: Aplikační server
alef0 Re: Aplikační server
ah01 Re: Aplikační server
Alternate Re: Aplikační server
b*d Re: Aplikační server
ktv Jenom k rychlosti
ktv Re: Jenom k rychlosti
František Kučera Drupal – PHP nad Javou
ktv Re: Drupal – PHP nad Javou
František Kučera Re: Drupal – PHP nad Javou
ktv Re: Drupal – PHP nad Javou
opicak aplikacni server?
alef0 Re: aplikacni server?
pr.rybar Re: aplikacni server?
alef0 Re: aplikacni server?
pr.rybar Re: aplikacni server?
alef0 Re: aplikacni server?
pr.rybar Re: aplikacni server?
opicak Re: aplikacni server?
František Kučera Re: aplikacni server?
em supr
František Kučera Re: supr
uf Re: supr
Honza Nefunkční odkazy
František Kučera Zdrojové kódy
Milan Re: Zdrojové kódy
Zdroj: https://www.zdrojak.cz/?p=3147