Web-fejlesztés NGM_IN002_1

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

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

A JavaServer Pages (JSP)

Bevezető. Servlet alapgondolatok

JavaServer Pages (JSP) (folytatás)

JEE tutorial. Zsíros Levente, 2012

A JavaServer Pages (JSP)

JAVA webes alkalmazások

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

A JavaServer Pages (JSP)

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.

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

Java Servlet technológia

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

A JSP életciklusa Szkript elemek Dinamikus tartalom létrehozása Kifejezés nyelv Tartalom újrafelhasználása Vezérlés átadása Visszatekintés

Web-fejlesztés NGM_IN002_1

JSP életciklusa Szkript elemek, implicit objektumok, bean-ek, EL include, (forward) Visszatekintés MVC

A Java Server Pages technológia. JSP és JSP elemkönyvtárak, JSTL alapok

Web-fejlesztés NGM_IN002_1

A JSP életciklusa Szkript elemek Dinamikus tartalom létrehozása Kifejezés nyelv Tartalom újrafelhasználása Vezérlés átadása Visszatekintés

JSP technológia. A JSP elemek kétféle szintaxissal használhatók: A JSP

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

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

JSP (Java Server Pages) technológia

Java servlet technológia 1 / 40

Stateless Session Bean

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

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

Struts2 keretrendszer

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

MVC. Model View Controller

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

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

Az Apache Wicket keretrendszer

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

JavaServer Pages programozóknak

Web programoz as

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

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

Java Web technológiák

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

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

A. függelék Webalkalmazások

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

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

Web-fejlesztés NGM_IN002_1

RIA Rich Internet Application

Enterprise JavaBeans 1.4 platform (EJB 2.0)

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Biztonság java web alkalmazásokban

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

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

Ajax és Echo 2. Bokor Attila

MUNKAIDŐ-NYILVÁNTARTÁS ALKALMAZÁS

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

Java szervlet technológia

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.

Szabad navigáció okozta problémák webes környezetben

Java Programozás 11. Ea: MVC modell

A Java EE 5 plattform

Adatbázisok webalkalmazásokban

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Webfejlesztés alapjai

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

Model View Controller alapú alkalmazásfejlesztés

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

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

Java és web programozás

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

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET) Webfejlesztés MVC architektúrában Fejlesztés ASP.

API tervezése mobil környezetbe. gyakorlat

Mobil Informatikai Rendszerek

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT

Webfejlesztés alapjai

ANDROID ALKALMAZÁSFEJLESZTÉS

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Eddig még nem használt vezérlőket is megismerünk: PlaceHolder, RadioButtonList.

Java Servletek alapjai

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

Internetes GIS MapServer alapokon

Nyilvántartási Rendszer

BME IK 2 JAVA SERVER FACES UML-1 20/11/2013. Apache Struts. Spring MVC. Java Server Faces. Google Web Toolkit. Képességek

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Web programozás I. 4. előadás

Internet programozása. 1. előadás

Reaktív programozás szerver oldalon

JNDI - alapok. Java Naming and Directory Interface

KROMESCH SÁNDOR APP FELHŐ. API-k és Webszolgáltatások a Cloudban. Magyarországi Web Konferencia November 8.

Menetkövetés lehetőségei

Webes alkalmazások fejlesztése 2. előadás. Webfejlesztés MVC architektúrában (ASP.NET Core) Cserép Máté

Szerver oldali technológiák Szerver oldali script nyelvek PHP

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

10.óra CodeIgniter Framework #3. Gyimesi Ákos

Programozási nyelvek Java

Átírás:

Web-fejlesztés NGM_IN002_1 Dinamikus tartalom 3. Template feldolgozás

Template feldolgozás Statikus (HTML) fájlok dinamikus tartalom beszúrással (speciális tagek) Template processzor PHP Cold Fusion ASP JSP Adatbázis lekérdezések Vezérlési szerkezetek Iteratív feldolgozás Templatek el!nyei Létrehozás, karbantartás nem programozó oldaltervez!k által minél fejletebb megoldás annál inkább programozási tevékenység Tartalom és megjelenítés szétválasztása MVC tervezési minta template mint interfész

JSP technológia Üzleti logika és megjelenítés szétválasztása megjelenítés: XML, HTML üzleti logika: Java Beans, taglib-ek Kiterjeszthet!ség Servlet technológia Kliens Szerver <html> <body> Dinamikus tartalom </body> </html> <html> <body> <jsp:usebean.../> <jsp:getproperty.../> <jsp:getproperty.../> </body> </html> A JSP el!nyei vs. ASP J2EE vs. PHP Java API vs. Servletek módosíthatóság separation of concerns script és tag alapú dinamikus tartalom szerver oldali fordítás -> hatékony specifikáció hordozhatóság többféle implementáció

JSP vs. servletek servlet tisztán servlet public class OrderServlet...{ public void doget(...) { if(isordervalid(req)){ saveorder(req); out.println("<html>"); out.println("<body>");... private void isordervalid(...) {... private void saveorder(...) {... kérés feldolgozás megjelenítés public class OrderServlet...{ public void doget(...) { if(bean.isordervalid(req)){ bean.saveorder(...);... forward("conf.jsp"); <html> <body> <ora:loop name="order">... </ora:loop> </body> </html> üzleti logika isordervalid() JSP JavaBeans saveorder() JSP elemek " "Expressions: <%= expression %> " "Statements: <% statement %> " "Declarations: <%! declaration %> " "JSP directives: <%@ directive %> Alternative XML syntax: " "<jsp:expression>...</jsp:expression> " "<jsp:scriptlet>...</jsp:scriptlet> " "<jsp:declaration>...</jsp:declaration> " "<jsp:directive.../> " "<jsp:include.../>

JSP feldolgozás hello.jsp GET /hello.jsp helloservlet.java Kliens HTTP/1.1 200 OK <html>... Szerver helloservlet. class JSP és servlet együttm#ködés Tipikus megközelítés servlet: tartalom kezelés Javaban JSP: megjelenítés HTML-ben Kommunikáció HttpSession attribútumok RequestDispatcher

Tartalom generálási lehet!ségek JavaBeanek öndokumentálás alkalmazás kialakítása programozás nélkül Scriptelemek kódbeágyazás script nyelven (java) kerülend! (szeparálás) JavaBean JavaBeanek jellemz!i paraméter nélküli constructor nincs public példány változó perzisztens értékek -> properties getxxxx, setxxx metódusok szerializálhatóság megoszthatóság usebean scope page (PageContext) request (ServletRequest) session (HttpSession) application (ServletContext)

JSP és MVC model adatok, feldolgozási m#veletek java osztályok view megjelenítés JSP oldalak controller kérések fogadása, model update servlet Apache Struts framework Struts

PHP Szerver oldali script nyelv Apache modul C-szer# szintaxis objektum orientáltság beágyazás html oldalba xml szer# <?php...?> sgml szer# <??> script <script language= php > fels!bb szint# template megoldások Smarty JSP példa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Welcome to Our Store</TITLE> </HEAD> <BODY> <H1>Welcome to Our Store</H1> <SMALL>Welcome, <!-- User name is "New User" for first-time visitors --> <%= Utils.getUserNameFromCookie(request) %> To access your account settings, click <A HREF="Account-Settings.html">here.</A> </SMALL> <P> Regular HTML for all the rest of the on-line store$s Web page. </BODY> </HTML>

...... Generált servlet <% response.adddateheader("expires", 0); %> <html><head><title>jsp</title></head> <body><h1>hello World!</h1> <%! private int hits = 0; %> You are visitor number <% synchronized(this) { out.println(++hits); %> since the last time the service was restarted. <p> This page was last updated: <%= new java.util.date().tolocalestring() %> </body></html> response.setcontenttype("text/html;charset=iso-8859-1"); pagecontext = _jspxfactory.getpagecontext(this, request, response,"", true, 8192, true); application = pagecontext.getservletcontext(); config = pagecontext.getservletconfig(); session = pagecontext.getsession(); out = pagecontext.getout(); // begin [file="/helloworld2.jsp";from=(0,2);to=(0,41)] response.adddateheader("expires", 0); // end // HTML // begin [file="/helloworld2.jsp";from=(0,43);to=(3,0)] out.write("\r\n<html><head><title>jsp</title></head>\r\n<body><h1>hello World!</h1>\r\n"); // end // HTML // begin [file="/helloworld2.jsp";from=(3,28);to=(4,23)] out.write("\r\nyou are visitor number "); // end // begin [file="/helloworld2.jsp";from=(4,25);to=(4,70)] synchronized(this) { out.println(++hits); // end // HTML // begin [file="/helloworld2.jsp";from=(4,72);to=(7,28)] out.write("\r\nsince the last time the server was restarted.\r\n<p>\r\nthis page was last updated: "); // end RequestDispatcher public class Register extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws IOException, ServletException { String email = request.getparameter("email"); HttpSession session = request.getsession(true); session.setattribute("email", email); RequestDispatcher dispatcher = getservletcontext().getrequestdispatcher ("/present.jsp"); dispatcher.forward(request, response);

Script vs. Bean <% %> ShoppingCart cart = (ShoppingCart)session. getattribute("cart"); // If the user has no cart, create a new one if (cart == null) { cart = new ShoppingCart(); session.setattribute("cart", cart); <jsp:usebean id="cart" class="cart.shoppingcart" scope="session"/> Bean használata <%@ page language="java" contenttype="text/html" %> <html> <body bgcolor="white"> <jsp:usebean id="clock" class="java.util.date" /> The current time at the server is: <ul> <li>date: <jsp:getproperty name="clock" property="date" /> <li>month: <jsp:getproperty name="clock" property="month" /> <li>year: <jsp:getproperty name="clock" property="year" /> <li>hours: <jsp:getproperty name="clock" property="hours" /> <li>minutes: <jsp:getproperty name="clock" property="minutes" /> </ul> </body> </html>

JavaBean /** Simple bean to illustrate sharing beans through * use of the scope attribute of jsp:usebean. */ public class AccessCountBean { private String firstpage; private int accesscount = 1; public String getfirstpage() { " return(firstpage); public void setfirstpage(string firstpage) { " this.firstpage = firstpage; public int getaccesscount() { " return(accesscount++); Bean scope <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Shared Access Counts: Page 1</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <TABLE BORDER=5 ALIGN="CENTER"> <TR><TH CLASS="TITLE"> Shared Access Counts: Page 1 </TH></TR></TABLE> <P> <jsp:usebean id="counter" class="coreservlets.accesscountbean" scope="application"> " <jsp:setproperty name="counter" property="firstpage" value="sharedcounts1.jsp" /> </jsp:usebean> Of SharedCounts1.jsp (this page), <A HREF="SharedCounts2.jsp">SharedCounts2.jsp</A>, and <A HREF="SharedCounts3.jsp">SharedCounts3.jsp</A>, <jsp:getproperty name="counter" property="firstpage" /> was the first page accessed. <P> Collectively, the three pages have been accessed <jsp:getproperty name="counter" property="accesscount" /> times. </BODY> </HTML>