JEE tutorial. Zsíros Levente, 2012

Hasonló dokumentumok
Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Bevezető. Servlet alapgondolatok

Java technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.

Java programozási nyelv /ősz 9. óra. Java Server Pages. JSP technika alapjai

Web-fejlesztés NGM_IN002_1

Szervlet-JSP együttműködés

JavaServer Pages (JSP) (folytatás)

Web-fejlesztés NGM_IN002_1

JAVA webes alkalmazások

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Osztott rendszerek, Java EE. Általános bevezető

A. függelék Webalkalmazások

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Enterprise JavaBeans 1.4 platform (EJB 2.0)

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

Java Web technológiák

Webfejlesztés alapjai

Menetkövetés lehetőségei

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet

A Java EE 5 plattform

Adatbázisok webalkalmazásokban

Interaktív weboldalak készítése

Bevezetés a Seam keretrendszer használatába

Osztályok. 4. gyakorlat

Adatkezelés. 11. előadás (Entity Beans)

Java Servletek alapjai

Java Servlet technológia

Bevezetés J2EE komponensek Java2EE API-k Web alkalmazások Dokumentáció Fejlesztői környezet. JAVA technológiák - bevezető

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Biztonság java web alkalmazásokban

Java szervlet technológia

Java és web programozás

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

A JavaServer Pages (JSP)

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Struts2 keretrendszer

A Java Persistence API PersistenceAPI / 3

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

A JavaServer Pages (JSP)

Java servlet technológia 1 / 40

Webfejlesztés alapjai

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

COSC 2206 Internet Tools. Java Servlets

Hello, EJB! Egy egyszerű példa

Korszerű webes architektúrák hatékonyság-vizsgálata

Adatbányászat és Perszonalizáció architektúra

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

Symfony kurzus 2014/2015 I. félév. Controller, Routing

SZAKDOLGOZAT CSEHI MIKLÓS DEBRECEN 2009.

Stateless Session Bean

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Parsing and Application

Java servlet technológia. Web alkalmazások. Servlet-et használni érdemes, ha. JSP-t használni érdemes, ha. Servlet-JSP kombináció (MVC) szükséges, ha

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

OOP: Java 8.Gy: Abstract osztályok, interfészek

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

Ajax és Echo 2. Bokor Attila

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Webalkalmazás fejlesztés Java EE környezetben NetBeans segítségével: JavaServer Faces 1.2 AJAX

A JavaServer Pages (JSP)

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

2. rész: JSP-k és szervletek készítése. Bakay Árpád NETvisor kft (30)

9.óra CodeIgniter Framework #1. Gyimesi Ákos

JAVA SE/ME tanfolyam tematika

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

Az Apache Wicket keretrendszer

Entity Framework alapú adatbáziselérés

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Enterprise Java Beans. EJB - Általános bevezető

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

Web-fejlesztés NGM_IN002_1

Java és web programozás

Java programozási nyelv 4. rész Osztályok II.

Programozási nyelvek Java

A WEB programozása - Szervletek dr. Gál Tibor tavaszi félév

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Web programoz as

OOP: Java 8.Gy: Gyakorlás

GeoServer, OpenLayers és WFS. Dolleschall János

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Webtárhely létrehozása a helyen. Lépések Teendő 1. Böngészőbe beírni: 2. Jobb oldalon regisztrálni (tárhelyigénylés).

Symfony kurzus 2014/2015 I. félév. Security: authentication, authorization, user provider, role-ok, access control, FOS user bundle

Objektum Orientált Programozás. 5. JAVA osztályok 21/1B IT MAN

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

Java és web programozás

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Junior Java Képzés. Tematika

Átírás:

JEE tutorial Zsíros Levente, 2012

A J2EE részei Webkonténer Szervletek JSP oldalak EJB (Enterprise Java Bean) konténer Session Bean Entity Bean (Java Persistence API-t használják) A Glassfish és JBoss tartalmaz egy webkonténert és egy EJB konténert is. A Tomcat csak webkonténert tartalmaz.

Hello World szervlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<!doctype HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n" + "<HTML>\n" + "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello WWW</H1>\n" + "</BODY></HTML>"); } }

Hello World szervlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { A request.getpararameter(string) metódussal ki lehet nyerni egy űrlap paramétereit. response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<!doctype HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n" + "<HTML>\n" + "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello WWW</H1>\n" + "</BODY></HTML>"); } }

Hello World szervlet import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWWW extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<!doctype HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "<HTML>\n" + "Transitional//EN\">\n" + Mivel elég körülményes HTML oldalt ilyen módon generálni, kitalálták a JSP oldalakat. "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" + "<BODY>\n" + "<H1>Hello WWW</H1>\n" + "</BODY></HTML>"); } }

HTTP Session HttpSession session = request.getsession(true); session.setattribute("user_id", userid);

JSP oldalak PHP oldalhoz hasonlít Tetszőleges Java kód lehet benne, de csak megjelenítésre használják (az üzleti logikát hagyományos szervletekbe szokták tenni) Előre definiált változók: request, response, session, out http://www.hscripts.com/tutorials/jsp/variables.php

Hello world JSP(1) <HTML> <BODY> <% // This scriptlet declares and initializes "date" System.out.println( "Evaluating date now" ); java.util.date date = new java.util.date(); %> Hello! The time is now <% // This scriptlet generates HTML output out.println( String.valueOf( date )); %> </BODY> </HTML> Tetszőleges Java kód elhelyezhető a <% és a %> tag-ek közé.

Hello world JSP(2) <HTML> <BODY> Hello! The time is now <%= new java.util.date() %> </BODY> </HTML> Tetszőleges Java kifejezést ide lehet írni, a kapott objektumra meghívódik a tostring metódus, is kiíródik az out stream-re.

Hozzunk létre Netbeans-ben egy WebJPA mintaprojektet és nézzük meg, hogy működik.

Először is cseréljük le az alapértelmezett Derby adatbázist MySql-re. Ezt azért érdemes megtenni, mert a Derby konzol-ban nehéz dolgozni és rosszul is dokumentált. MySql konzolban inicializáljuk az adatbázist. create database webjpa_db; create user webjpa_dbuser; grant all on webjpa_db.* to webjpa_dbuser; SET PASSWORD FOR webjpa_dbuser = PASSWORD('abc123');

Ezután állítsuk be ugyanezeket a paramétereket a persistence.xml-ben.

Hova lettek az adatbázis beállítások?

Ez a régi konfiguráció. Nem kell ezzel törődni.

Most már nyugodtan nyomhatunk egy Run-t a projektünkre.

Nézzük meg, mi történt az adatbázis oldalon.

Hogyan jött létre ez a tábla? Automatikusan. Mivel a persistence.xml-ben Create volt megjelölve, deploy-oláskor létrehozta a glassfish az adatbázis táblákat. Mi alapján? A Person osztály alapján.

Amint látható, a tábla illetve oszlop hozzárendelések annotációban vannak rögzítve.

Fontos, hogy egy entitás osztálynak legyen paraméter nélküli konstruktora is.

Ez csak kényelmi funkciót lát el, a keretrendszer nem használja.

A többi csak getter és setter.

Nézzük meg a szervlet osztályokat is.

Itt mondjuk meg, hogy milyen URL-en lesz elérhető ez a szervlet. Tehettük volna a web.xml-be is ezt az információt. Esetünkben nincs web.xml.

Az adatbázist ezen keresztül fogjuk elérni. A J2EE keretrendszer inicializálja ezt az attribútumot, ezt Dependency Injectection-nek hívjuk.

Nem SQL lekérdezés, hanem EJBQL lekérdezés.

A request.setattribute() segítségével tetszőleges objektumot tárolhatunk. Ezt majd a ListPerson.jsp-ben fogjuk kiolvasni.

Ezt JSTL EL-nek nevezzük. Ha ezt használjuk, a JSP valid XML lesz, nem úgy mint szkriptletekkel, de nyugodtan használhattok szkriptleteket is a házitokban.

Nézzük meg, hogyan írunk az adatbázisba.

Figyeljük meg, hogy nincs.jsp a végén! A /CreatePerson.jsp URL-t már más használja.

Ezt úgy hívjuk, hogy user managed transaction. Ha Session Bean-t használunk, erre nem lesz szükség, a tranzakciókezelés automatikusan fog menni. ( Bean managed transaction )

Ezzel írunk az adatbázisba.

Nézzünk meg egy bonyolultabb esetet EntityBean-re, ahol idegen kulcsokkal is kell dolgozni és bonyolultabb EJBQL lekérdezést kell használni. Ehhez a videoteka5 projektet használjuk. (folyt. köv.)