Parsing and Application
|
|
- Géza Halász
- 8 évvel ezelőtt
- Látták:
Átírás
1 XML Parsing - SAX 1
2 Parsing and Application Parsing Well-formed ness checking & Validating Reading Application Manipulating Creating Writing and Sending 2
3 SAX Historical Background Simple API for XML Started as community-driven project xml-dev mailing list Originally designed as Java API Others (C++, Python, Perl) are now supported SAX 2 Namespaces 3
4 SAX Features Event-driven You provide event handlers Fast and lightweight Document does not have to be entirely in memory Sequential read access only One-time access Does not support modification of document 4
5 SAX Operational Model Input Events XML Document Parser Provided Handler 5
6 SAX Programming Collection of Java interfaces and classes org.xml.sax package Interfaces Parser XMLReader Event handlers ContentHandler 6
7 SAX Programming Procedures Create XML Parser XMLReader parser = XMLReaderFactory.createXMLReader(); Create Event Handler myhandler handler = new myhandler(); Call Parser and Set Event Handler parser.parse(args[0]); Parse Handling SAX parser calls methods on the event handler Event Handler Processing public void startdocument(){ } System.out.println( XML Document Start ); 7
8 XMLReader Interface Represents SAX parser SAX2 parser implementation has to implement this interface Methods for Registering event handlers Initiating parsing Configuring features and properties Validation on and off 8
9 XMLReader Interface public interface XMLReader{ public boolean getfeature (String name) throws SAXNotRecognizedException, SAXNotSupportedException; public void setfeature (String name, boolean value) throws SAXNotRecognizedException, SAXNotSupportedException; public Object getproperty (String name) throws SAXNotRecognizedException, SAXNotSupportedException; public void setproperty (String name, Object value) throws SAXNotRecognizedException, SAXNotSupportedException; public void setentityresolver (EntityResolver resolver); public EntityResolver getentityresolver (); public void setdtdhandler (DTDHandler handler); public DTDHandler getdtdhandler (); public void setcontenthandler (ContentHandler handler); public ContentHandler getcontenthandler (); public void seterrorhandler (ErrorHandler handler); public ErrorHandler geterrorhandler (); public void parse (InputSource input) throws IOException, SAXException; public void parse (String systemid) throws IOException, SAXException; } 9
10 XMLReader Instance Concrete implementation instance bound to XMLReader interface Has to be created before parsing Gets created by using static method of createxmlreader() method of helper class XMLReaderFactory 10
11 XMLReader Example XMLReader parser = null; try { // Get SAX parser instance reading org.xml.sax.driver // system property. parser = XMLReaderFactory.createXMLReader(); // Parse the document }catch(saxexception ex){ // Couldn t create XMLReader // either because org.xml.sax.driver system property // was not set or set incorrectly. } 11
12 Setting Features setfeature(string, boolean) method of XMLReader interface Features General features SAX features DOM features 12
13 Features General Features SAX Features 13
14 Example XMLReader parser = null; try { // Create an instance of Apache s Crimson SAX parser parser = XMLReaderFactory.createXMLReader(); // Set features parser.setfeature(" true); // Parse the document }catch(saxexception ex){ } 14
15 Parse Methods void parse(string uri) throws SAXException, IOException void parse(inputsource source) throws SAXException, IOException 15
16 XMLReader parser = null; try { parser = XMLReaderFactory.createXMLReader(); Example // Parse the document parser.parse( ); // Capture SAX events }catch(saxexception ex){ // exception occurs maybe because document // is malformed } 16
17 XMLReader parser = null; try { parser = XMLReaderFactory.createXMLReader(); Example // Parse the document in File URI form parser.parse( file:/tmp/people.xml ); // Capture SAX events }catch(saxexception ex){ // exception occurs maybe because document // is malformed } 17
18 InputSource Objects Encapsulates information about an input source as a single object Passed to the XMLReader.parse() method May include the following: Public identifier System identifier A byte stream A character stream 18
19 Parser Behavior on InputSource If character stream is available, parser will read that stream directly Else if byte stream is available, parser will read byte stream Else open URI connection to resource specified in System identifier 19
20 SAX Event Handlers Interfaces ContentHandler ErrorHandler DTDHandler EntityResolver Attributes Class DefaultHandler 20
21 SAX Event Handlers <<interface>> ContentHandler Implements <<interface>> ErrorHandler DefaultHandler <<interface>> DTDHandler <<interface>> EntityResolver 21
22 ContentHandler Interface public interface ContentHandler{ void startdocument () throws SAXException; void enddocument() throws SAXException; void startelement(string namespace, String name, String qname, Attributes atts) throws SAXException; void endelement(string namespace, String name, String qname) throws SAXException; void characters(char [ ] ch, int start, int length) throws SAXException; void ignorablewhitespace(char [ ]ch, int start, int length) throws SAXException; void processinginstruction(string target, String data) throws SAXException; void setdocumentlocator(locator locator); void startprefixmapping(string prefix, String uri) throws SAXException; void endprefixmapping(string prefix) throws SAXException; void skippedentity(string name) throws SAXException; } 22
23 Simple SAX Example: Parser XMLReader parser = null; try { // Create XML (non-validating) parser parser = XMLReaderFactory.createXMLReader(); // Create event handler mycontenthandler handler = new mycontenthandler(); parser.setcontenthandler(handler); // Call parsing method parser.parse(args[0]); }catch(saxexception ex){ System.err.println(ex.getMessage()); }catch(exception ex){ System.err.println(ex.getMessage()); } 23
24 Simple SAX Example: Event Handler class mycontenthandler implements ContentHandler { // ContentHandler methods public void startdocument(){ System.out.println( XML Document START ); } public void enddocument(){ System.out.println( XML Document END ); } public void startelement(string namespace, String name, String qname, Attributes atts){ System.out.println( < + qname + > ); } public void endelement(string namespace, String name, String qname){ System.out.println( </ + qname + >); } public void characters(char[] chars, int start, int length){ System.out.println(new String(chars, start, length); } 24
25 Character Data Character data void characters(char [ ] ch, int start, int length) throws SAXException Parsers are allowed to break up character data any way desired Character data are in Unicode regardless of encoding scheme specified in XML document 25
26 White Space White space Nonvalidating parser void characters(char [ ] ch, int start, int length) throws SAXException Validating parser void ignorablewhitespace(char [ ]ch, int start, int length) throws SAXException Ignorable white space includes spaces, tabs and newlines 26
27 Attributes Interface public interface Attributes{ public abstract int getlength(); public abstract int getindex(string qname); public abstract int getindex(string namespace, String name) public abstract String getlocalname(int index) public abstract String getqname(int index) public abstract String gettype(int index) public abstract String gettype(string qname) public abstract String gettype(string namespace, String name) public abstract String getvalue(string qname) public abstract String getvalue(string namespace, String name) public abstract String getvalue(int index) public abstract String geturi(int index) } 27
28 Locator Interface Tells application where events occurred public interface Locator{ public int getlinenumber(); public int getcolumnnumber(); public String getpublicid(); public String getsystemid(); } 28
29 Locator Interface SAX parser passes implementation instance of Locator interface to the ContentHandler.setDocumentLocator() It should be saved to a local reference if the application needs it 29
30 Locator Example Locator loc; public void setdocumentlocator(locator loc){ this.loc = loc; } public void startelement(string namespace, String name, String qname, Attributes a){ System.out.println(name); System.out.println( line: + loc.getlinenumber()); System.out.println( ID: + loc.getsystemid()); } 30
31 ErrorHandler Interface public interface ErrorHandler{ void error(saxparserexception e) throws SAXException void fatalerror(saxparseexception e) throws SAXException void warning(saxparseexception e) throws SAXException } 31
32 DTDHandler Methods Public interface DTDHandler{ void notationdecl(string name, String publicid, String systemid) throws SAXException void unparsedentitydecl(string name, String publicid, String systemid, String notationname) throws SAXException } 32
33 EntityResolver Interface Public interface EntityResolver{ InputSource resolveentity(string publicid, String systemid) throws SAXException } This method is used to return an InputSource so the content of the external entity can be read An external entity External Parsed Entities Unparsed Entities 33
34 DefaultHandler Class Helper class Implements ContentHandler ErrorHandler DTDHandler EntityResolver Just subclass and override the methods you are interested in. Completely optional for use 34
35 JAXP/SAX Code Sample 01 import javax.xml.parsers.*; 02 import org.xml.sax.*; SAXParserFactory factory = 05 SAXParserFactory.newInstance(); factory.setvalidating(true); 08 SAXParser parser = factory.newsaxparser(); // can also parse InputStreams, Files, and 11 // SAX input sources 12 parser.parse(" 13 mysaxeventhandler);
36 Benefits Of SAX It is very simple It is very fast Useful when custom data structures are needed to model the XML document Can parse files of any size without impacting memory usage Can be used to gather a subset of a document s information 36
37 Drawbacks Of SAX SAX provides read-only access No random access to documents Searching of documents is not easy 37
38 DOM (Document Object Model) 38
39 Historical Background DOM is a standard defined by the W3C, just like XML DOM was not designed specifically for Java technology (unlike SAX) DOM is cross-platform and cross-language Uses OMG s IDL to define interfaces IDL to language binding 39
40 DOM Characteristics Access XML document as a tree structure Composed of mostly element nodes and text nodes Can walk the tree back and forth Larger memory requirements Fairly heavyweight to load and store Use it when for walking and modifying the tree 40
41 DOM in Action XML Document Input Parser Creates Tree 41
42 DOM Tree and Nodes XML document is represented as a tree A tree is made of nodes There are 12 different node types Nodes may contain other nodes (depending on node types) parent node contains child nodes 42
43 Node Types Document node Document Fragment node Element node Attribute node Text node Comment node Processing instruction node Document type node Entity node Entity reference node CDATA section node Notation node 43
44 JDOM a DOM API for Java JDOM is an open source API designed to represent an XML document and its contents to the typical Java developer in an intuitive and straightforward way. Java optimized. It behaves like Java, it uses Java collections, and it provides a low-cost entry point for using XML. JDOM users don't need to have tremendous expertise in XML to be productive and get their jobs done. JDOM interoperates well with existing standards such as the Simple API for XML (SAX) and the Document Object Model (DOM). 44
45 Java EE 45
46 Alapfogalmak Java = Objektumorientált programozási nyelv Hordozható byte code A byte code-ot futtató virtuális gép (jvm) Standard API-k gyűjteménye A Java platform kiadásai Micro Edition (Java ME) Mobiltelefonok, set-top-box-ok, PDA-k Standard Edition (Java SE) Egy felhasználó elé kerülő desktop alkalmazások fejlesztése Enterprise Edition (Java EE) Vállalati szintű, többrétegű, sokfelhasználós alkalmazások 46
47 A Java EE platform alapgondolata A platform felelőssége A fejlesztő felelőssége Konkurrencia Biztonság Rendelkezésre állás Skálázhatóság Perzisztencia Tranzakciók Életciklus menedzsment Felügyelet A prezentációs logika Az üzleti logika (A teszt logika) Ismerni a platform nyújtotta összes szolgáltatást :-) 47
48 Miért Java EE? Szabvány A platformfüggetlen Java SE környezetre épülő API-k és konténerek összessége A gyártók együttműködnek a specifikációk készítésénél és többnyire csak az implementációk minősége, szolgáltatásai terén versenyeznek A sokezer USD/CPU-s terméktől a nyílt forrású Java EE kiszolgálóig széles a termékek palettája A fejlesztők szabadon választhatnak a Java EE szabvány adott verzióját implementáló futtatókörnyezetek között Java EE kompatibilitás Alkalmazás hordozhatóság gyártói platformok között 48
49 Java EE 5 A Java Standard Edition (leánykorában J2SE) 5-ös változata jelentős nyelvi változásokat hozott a Java világba Generikus típusok (ami nagyon más, mint a C++ template-ek) Annotációk (címkék a kódban, melyek belefordulnak a byte code-ba és dinamikusan felderíthetőek futás közben) Az annotációk segítségével a Java EE fejlesztés jelentősen egyszerűsödik XML alapú deployment descriptor-ok helyett a.java forrásba írt annotációk írják le a fejlesztett komponens és a kiszolgáló által nyújtott konténer közötti kapcsolatot 49
50 Java EE API-k 50
51 Gyakran használt Java EE API-k Java Message Service üzenetek küldése/fogadása Java Transaction API JavaMail API üzenetek kezelése Java API for XML Web Services Java Architecture for XML Binding SOAP with Attachments API J2EE Connector Architecture Java Naming and Directory Interface Java Authentication and Authorization Service 51
52 Java EE rétegek 52
53 Java EE konténerek 53
54 Java EE konténerek Web konténer A HTTP kérések kiszolgálását végző Java EE komponens Feladatkör: webalkalmazások, webszolgáltatások kezelése EJB konténer Az Enterprise JavaBean technológiát alkalmazó komponensek futtatására képes Java EE komponens Feladatkör: üzleti logika, objektum perzisztencia, üzenetküldés, kapcsolódás EIS rendszerekhez Application client container Az alkalmazásszervert elérő, a kliensen futó standalone Java alkalmazások futtatási környezete 54
55 Konténerek szolgáltatásai Komponensek és erőforrások felderítése JNDI API Komponensek életciklusának menedzselése Alkalmazások, modulok telepítése (deploy), törlése (undeploy) Alkalmazások elindítása, megállítása Egyebek Monitoring (JMX) Naplózás (java.util.logging) 55
56 Alkalmazáscsomagok Standard könyvtárstruktúrák.ear (enterprise archive).war (web archive).rar (resource archive) Standard és gyártófüggő alkalmazásleírók (deployment descriptor) application.xml web.xml ejb-jar.xml 56
57 Perzisztencia Egy objektum által tárolt információ elmentése valamilyen háttértárba Sok lehetséges megoldása létezik a problémának Objektumszerializáció XML szerializáció (JAXB) Objektum-relációs leképezés (ORM) Korábbi szabványok (EJB 2.1 Entity Beans, JDO) Open source framework-ök tömkelege (pl Hibernate, Torque) Kereskedelmi szoftverek (pl Toplink) Java EE 5: Java Persistence API Az egyre népszerűbb, open source framework-ök által megcélzott útvonal beemelése a Java EE szabványokba 57
58 Java Persistence API Könnyebb fejlesztés és deployment az előd EJB Entity API-hoz képest A perzisztálandó objektumok között öröklődési kapcsolat lehet, polimorfizmus megengedett Használható Java EE konténereken kívül is (nem kell hozzá alkalmazásszerver könnyíti a unit testinget is) Az entitások egyszerű, megfelelően annotált Java osztályok 58
59 Java Persistence public class Customer { private Long id; private String name; private Address address; private Collection<Order> orders = new HashSet(); public Customer() public Long getid() { return id; } protected void setid (Long id) { this.id = id; } 59
60 Java Persistence API // Relationship between Customer and public Collection<Order> getorders() { return orders; } public void setorders(collection<order> orders) { this.orders = orders; } 60
61 Entity public class OrderEntry { // Dependency injection of Entity Manager for // the given persistence EntityManager em; public void enterorder(int custid, Order neworder){ // Use find method to locate customer entity Customer c = em.find(customer.class, custid); // Add a new order to the Orders c.getorders().add(neworder); neworder.setcustomer(c); } } 61
62 A JPA Entity-k életciklusa 62
63 Az üzleti logika rétege Java EE módon: EJB 3.0 Lightweight módon: A web rétegben egyszerű Java osztályokban Spring A programozó felelőssége ezek életciklusának felügyelete, tranzakciók kezelése, jogosultságvizsgálatok lefolytatása, stb Az Inversion of Control és a Dependency Injection tervezési mintákat implementáló, J2EE környezetben, vagy anélkül is használható keretrendszer XML konfigurációs file-ok alapján konfigurált alkalmazások 63
64 EJB 3.0 Enterprise JavaBeans Maguk az üzleti logikát implementáló osztályok Két típusa létezik Session Bean-ek (stateless/stateful) Message Driven Bean A konténer gondoskodik az erőforrások eléréséről, a szálkezelésről (az EJB-k thread safe objektumok), az authorizációról, a tranzakciókról (akár XA, two phase commit), stb ennek konfigurációja annotációkkal public class SimpleMessageBean implements MessageListener private MessageDrivenContext mdc; 64
65 Session Bean Session Bean interfész Local vagy Remote public interface Converter { public BigDecimal dollartoyen(bigdecimal dollars); public BigDecimal yentoeuro(bigdecimal yen); } Session Bean osztály POJO, ami az interfészt public class ConverterBean implements Converter { public BigDecimal dollartoyen(bigdecimal dollars) { BigDecimal result = dollars.multiply(yenrate); return result.setscale(2, BigDecimal.ROUND_UP); } 65
66 A Session Bean-t használó kliens public class ConverterClient private static Converter converter; public ConverterClient(String[] args) { } public static void main(string[] args) { } ConverterClient client = new ConverterClient(args); client.doconversion(); public void doconversion() { try { BigDecimal param = new BigDecimal("100.00"); BigDecimal yenamount = converter.dollartoyen(param); 66
67 Session Bean Egyetlen kliens session-jét reprezentáló objektum Két típusa van: Állapotmentes (Stateless) A bean esetleges attribútumai nem őriződnek meg a kliens két hívása között Az állapotmentesség miatt jobban skálázható a stateless session bean-eket használó alkalmazás Csak állapotmentes session bean lehet webszolgáltatás végpont Állapottal rendelkező (Stateful) Két hívás között, a kliens és a bean közötti kapcsolat lezáródásáig megörződik a bean állapota, attribútumainak értéke Bizonyos körülmények között a konténer kiíhatja az állapotot valamilyen háttértárba (passziválás) 67
68 Webes keretrendszerek Az alapok: a Servlet API, JSP, MVC Kérés-válasz alapú keretrendszerek Struts Komponens alapú keretrendszerek JSF Wicket 68
69 Az alapok: a Servlet API, JSP, MVC Web Tier EJB Tier 69
70 A Servlet Java objektum, ami a servlet keretrendszert és API-t használja és egy HTTP kiszolgáló funkcionalitását bővíti Nagyon sikeres API (gyakorlatilag minden más web framework erre épül) public class HelloServlet extends HttpServlet { } public void doget(httpservletrequest request, HttpServletResponse response){ response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<title>hello World!</title>"); }... 70
71 Servlet életciklus service( ) init( ) Init parameters Ready destroy( ) doget( ) dopost( ) Request parameters 71
72 Webalkalmazások (.war) struktúrája 72
73 CGI modell vs Servlet modell CGI Servlet Bármely nyelven írható Nehezen skálázható, felügyelhető Gyakori biztonsági hibák Pazarlóan bánik az erőforrásokkal (fork()) Platform és alkalmazás specifikus Java objektum Erős, megbízható és hatékony Skálázható, újrahasznosítható A Java beépített biztonsági modelljét használja Platformfüggetlen 73
74 CGI modell vs Servlet modell Request Request CGI1 CGI1 Request Request CGI2 CGI2 Request Request CGI1 CGI1 CGI CGI Based Based Webserver Webserver Child Child for for CGI1 CGI1 Child Child for for CGI2 CGI2 Child Child for for CGI1 CGI1 Request Request Servlet1 Servlet1 Servlet Servlet Based Based Webserver Webserver Request Request Servlet2 Servlet2 Request Servlet1 JVM JVM Servlet1 Servlet1 Servlet2 Servlet2 74
75 A Servletek tulajdonságai Többszálú végrehajtás egyetlen objektumon Beépített HTTP session kezelés (cookie vagy GET paraméter alapon) Beépített (container managed) authentikáció (basic, form, digest, cert) ContextListener-eken keresztül a kérések, session kezelése több ponton befolyásolható A web container újraindítás nélkül képes a web alkalmazások életciklusát kezelni 75
76 Objektumok láthatósága Web context (ServletConext) Egyazon webalkalmazásban lévő összes servlet összes kliense eléri (Application scope) Session Egyazon webalkalmazásban lévő összes servlet egyetlen kliense éri el Request Az adott kérést kiszolgáló komponens éri el 76
77 Java Server Pages Lehetővé teszi a prezentációs logika elválasztását magától a prezentációtól A prezentáció HTML és/vagy XML/XSLT A prezentációs logikát Java osztályok vagy custom tag-ek valósítják meg a prezentáción belül Az eredmény egy fokkal jobban karbantartható, mint ha egy servlet-ből out.println( <html> )-eznénk Minden.jsp oldalból a deployment során valójában egy out.println()-eket tartalmazó servlet generálódik 77
78 Java Server Pages Egy szöveges file, ami egy dinamikus tartalmat ír le arról, hogy mit is generálunk vissza a böngésző felé <html> Hello World! <br> <jsp:usebean id="clock" class= calendar.jspcalendar /> Today is <ul> <li>day of month: <%= clock.getdayofmonth() %> <li>year: <%= clock.getyear() %> </ul> </html> 78
79 Servlet vs JSP Servlet JSP HTML Java-ba ágyazva Nehezen karbantartható a statikus tartalom Java kód HTML-be ágyazva Könnyen karbantartható statikus (HTML) tartalom Futás időben servletként fut, viselkedik 79
80 Servlet, vagy JSP? A gyakorlatban a kettőt együtt használják MVC (Model, View, Controller) architektúra A Controller általában egy Servlet A JSP egy lehetséges technológia a View megvalósítására 80
81 JSTL Szabványos tag library Alapfunkcionalitást tartalmaz gyakori JSP elemekre Iteráció és feltételes végrehajtás XML kezelés Direkt adatbázis elérés Lokalizáció Java kód nélküli deklaratív prezentációs logika létrehozását teszi lehetővé 81
82 JSTL példa <c:set var="customertable" scope="application"> <table border="1"> <c:foreach var="customer" items="${customers}"> <tr> <td>${customer.lastname}</td> <td><c:out value="${customer.address}" default="no address specified"/></td> <td> <c:out value="${customer.address}"> <font color="red">no address specified</font> </c:out></td> </tr> </c:foreach> </table> </c:set> 82
83 Komponens alapú A fő ígéret: framework-ök Kérés-válasz és oldalakban gondolkodó alkalmazások helyett valódi objektumorientált alkalmazások fejlesztése Magasabb fokú újrahasznosítás, jobb programozók:) Gyorsabb fejlesztési ciklus, ugyanakkor kevésbé skálázódó alkalmazások Több megközelítés létezik: Echo2, RIFE, Tapestry, Wicket 83
84 Web programming in Java 84
85 Web Application & Components Web Application is a deployable package Web components (Servlets and JSP's) Static resource files such as images Helper classes Libraries Deployment descriptor (web.xml file) Web Application can be represented as A hierarchy of directories and files (unpacked form) or *.WAR file reflecting the same hierarchy (packed form) 85
86 Web Application Development and Deployment Steps 1.Write (and compile) the Web component code (Servlet or JSP) and helper classes referenced by the web component code 2.Create any static resources (for example, images or HTML pages) 3.Create deployment descriptor (web.xml) 4.Build the Web application (*.war file or deploymentready directory) 5.Deploy the web application into a Web container Web clients are now ready to access them via URL 86
87 1. Write and compile the Web component code Create development tree structure Write either servlet code or JSP pages along with related helper code Create build.xml for Ant-based build (and other application development life-cycle management) process IDE (i.e. NetBeans) handles all these chores 87
88 Development Tree Structure Keep Web application source separate from compiled files facilitate iterative development Root directory (example from hello2 sample code from J2EE 1.4 tutorial) build.xml: Ant build file src: Java source of servlets and JavaBeans components web: JSP pages and HTML pages, images 88
89 Example: hello2 Tree Structure (before ant build command) Hello2 src/servlets GreetingServlet.java ResponseServlet.java web WEB-INF web.xml duke.waving.gif build.xml 89
90 2. Create any static resources HTML pages Custom pages Login pages Error pages Image files that are used by HTML pages or JSP pages Example: duke.waving.gif 90
91 3. Create deployment descriptor (web.xml) Deployment descriptor contains deployment time runtime instructions to the Web container URL that the client uses to access the web component Every web application has to have it 91
92 4. Build the Web application Either *.WAR file or unpacked form of *.WAR file Build process is made of create build directory (if it is not present) and its subdirectories compile Java code into build/web-inf/classes directory Java classes reside under./web-inf/classes directory copy web.xml file into build/web-inf directory copy image files into build directory 92
93 Example: hello2 Tree Structure (after asant build command) Hello1 src web build.xml build WEB-INF classes GreetingServlet.class ResponseServlet.class web.xml duke.waving.gif 93
94 5. Deploy Web application Deploy the application over deployment platform such as Tomcat 94
95 6. Perform Client Access to Web Application From a browser, go to URL of the Web application 95
96 96
97 Running Web Application 97
98 Web Application Web application can be deployed in two different forms a *.war file or an unpacked directory laid out in the same format as a *.war file (build directory) Use *.war file when you have to deploy on a remote machine 98
99 What is *.WAR file? Ready to deploy'able package over web container Similar to *.jar file Contains things to be deployed Web components (servlets or JSP's) Server-side utility classes Static Web presentation content (HTML, image, etc) Client-side classes (applets and utility classes) Reflects contents in build directory 99
100 Document Root & Context Document Root of the Web application Top-level directory of WAR Contains JSP pages, client-side classes and archives, and static Web resources are stored Also contains WEB-INF directory A context is a name that gets mapped to the document root of a Web application /hello1 is context for hello1 example Distinguishes a Web application in a single Web container Has to be specified as part of client URL 100
101 Directory Structure of *.WAR file 101
102 Directory Structure of *.WAR file 102
103 How to Create *.WAR file? 3 different ways Use IDE (NetBeans) Use ant tool after putting proper build instruction in build.xml file asant create-war (under J2EE 1.4 tutorial) Use jar cvf <filename>.war. command under build directory 103
104 Example: Creating hello2.war via asant create-war command C:\j2eetutorial14\examples\web\hello2>asant create-war Buildfile: build.xml... create-war: [echo] Creating the WAR... [delete] Deleting: C:\j2eetutorial14\examples\web\hello2\assemble\war\hello2.war [delete] Deleting directory C:\j2eetutorial14\examples\web\hello2\assemble\war\WEB-INF [copy] Copying 1 file to C:\j2eetutorial14\examples\web\hello2\assemble\war\WEB- INF [copy] Copying 2 files to C:\j2eetutorial14\examples\web\hello2\assemble\war\WEB- INF\classes [war] Building war: C:\j2eetutorial14\examples\web\hello2\assemble\war\hello2.war [copy] Copying 1 file to C:\j2eetutorial14\examples\web\hello2 104
105 Example: Creating hello2.war via jar command C:\j2eetutorial14\examples\web\hello2\build>jar cvf hello2.war. added manifest adding: duke.waving.gif(in = 1305) (out= 1295)(deflated 0%) adding: servlets/(in = 0) (out= 0)(stored 0%) adding: servlets/greetingservlet.class(in = 1680) (out= 887)(deflated 47%) adding: servlets/responseservlet.class(in = 1090) (out= 572)(deflated 47%) C:\j2eetutorial14\examples\web\hello2\build>jar xvf hello2.war created: META-INF/ extracted: META-INF/MANIFEST.MF extracted: duke.waving.gif created: servlets/ extracted: servlets/greetingservlet.class extracted: servlets/responseservlet.class 105
106 WEB-INF Directory Subdirectory of Document root Contains web.xml : Web application deployment descriptor JSP tag library descriptor files classes : A directory that contains server-side classes: servlets, utility classes, and JavaBeans components lib : A directory that contains JAR archives of libraries (tag libraries and any utility libraries called by serverside classes) 106
107 HTTP request URL & Web component URL (alias) & Context Request URL: User specified access point of a web resource path]?[query string] [request path] is made of context and web component's URL Context: Name of the root document of a web application Identifies a particular application on that server /hello1 is context 107
108 Configuring Web Application Configuration information is specified in web.xml (Web Applications Deployment Descriptor) 108
109 Web Applications Deployment Descriptor (web.xml) Prolog Alias Paths Context and Initialization Parameters Event Listeners Filter Mappings Error Mappings Reference to Environment Entries, Resource environment entries, or Resources 109
110 Web Applications Deployment Descriptor (web.xml) Case sensitive Order sensitive (in the following order) icon, display-name, description, distributable context-param, filter, filter-mapping listener, servet, servlet-mapping, session-config mime-mapping, welcome-file-list error-page, taglib, resource-env-ref, resource-ref security-constraint, login-config, security-role env-entry, ejb-ref, ejb-local-ref 110
111 Prolog (of web.xml) Every XML document needs a prolog <?xml version="1.0" encoding="iso "?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " 111
112 Alias Paths (of web.xml) When a request is received by Servlet container, it must determine which Web component in a which web application should handle the request. It does so by mapping the URL path contained in the request to a Web component A URL path contains the context root and alias path Alias Path can be in the form of either /alias-string (for servlet) or /*.jsp (for JSP) 112
113 Alias Paths (of web.xml) <servlet> <servlet-name>greeting</servlet-name> <display-name>greeting</display-name> <description>no description</description> <servlet-class>greetingservlet</servlet-class> </servlet> <servlet> <servlet-name>response</servlet-name> <display-name>response</display-name> <description>no description</description> <servlet-class>responseservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>greeting</servlet-name> <url-pattern>/greeting</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>response</servlet-name> <url-pattern>/response</url-pattern> </servlet-mapping> 113
114 Context and Initialization Parameters (of web.xml) Represents application context Can be shared among Web components in a WAR file <web-app>... <context-param> <param-name> javax.servlet.jsp.jstl.fmt.localizationcontext </param-name> <param-value>messages.bookstoremessages</param-value> </context-param>... </web-app> 114
115 Event Listeners (of web.xml) Receives servlet life-cycle events <listener> <listener-class>listeners.contextlistener</listener-class> </listener> 115
116 Filter Mappings (of web.xml) Specify which filters are applied to a request, and in what order <filter> <filter-name>orderfilter<filter-name> <filter-class>filters.orderfilter<filter-class> </filter> <filter-mapping> <filter-name>orderfilter</filter-name> <url-pattern>/receipt</url-pattern> </filter-mapping> 116
117 Error Mappings (of web.xml) Maps status code returled in an HTTP response to a Java programming language exception returled by any Web component and a Web resource <error-page> <exception-type>exception.orderexception</exception-type> <location>/errorpage.html</location> </error-page> 117
118 References (of web.xml) Need when web components make references to environment entries, resource environment entries, or resources such as databases Example: declare a reference to the data source <resource-ref> <res-ref-name>jdbc/bookdb</res-ref-name> <res-type>javax.sql.datasource</res-type> <res-auth>container</res-auth> </resource-ref> 118
119 Example web.xml of hello2 <?xml version="1.0" encoding="utf-8"?> <web-app xmlns=" version="2.4" xmlns:xsi=" xsi:schemalocation=" <display-name>hello2</display-name> <servlet> <display-name>greetingservlet</display-name> <servlet-name>greetingservlet</servlet-name> <servlet-class>servlets.greetingservlet</servlet-class> </servlet> <servlet> <display-name>responseservlet</display-name> <servlet-name>responseservlet</servlet-name> <servlet-class>servlets.responseservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>greetingservlet</servlet-name> <url-pattern>/greeting</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>responseservlet</servlet-name> <url-pattern>/response</url-pattern> </servlet-mapping> </web-app> 119
120 Servlet Request and Response Model Servlet Container Request Browser HTTP Request Servlet Response Web Server Response 120
121 What does Servlet Do? Receives client request (mostly in the form of HTTP request) Extract some information from the request Do content generation or business logic process (possibly by accessing database, invoking EJBs, etc) Create and send response to client (mostly in the form of HTTP response) or forward the request to another servlet or JSP page 121
122 Requests and Responses What is a request? Information that is sent from client to a server Who made the request What user-entered data is sent Which HTTP headers are sent What is a response? Information that is sent to client from a server Text(html, plain) or binary(image) data HTTP headers, cookies, etc 122
123 HTTP HTTP request contains header a method Get: Input form data is passed as part of URL Post: Input form data is passed within message body Put Header request data 123
124 HTTP GET and POST The most common client requests HTTP GET & HTTP POST GET requests: User entered information is appended to the URL in a query string Can only send limited amount of data.../servlet/viewcourse?firstname=sang&lastname=shin POST requests: User entered information is sent as data (not appended to URL) Can send any amount of data 124
125 First Servlet import javax.servlet.*; import javax.servlet.http.*; import java.io.*; Public class HelloServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<title>first Servlet</title>"); out.println("<big>hello Code Camp!</big>"); } } 125
126 Servlet Interfaces & Classes Servlet GenericServlet HttpSession HttpServlet ServletRequest ServletResponse HttpServletRequest HttpServletResponse 126
127 Servlet Life-Cycle Is Servlet Loaded? Http request No Load Invoke Http response Yes Servlet Container Run Servlet Client Server 127
128 Servlet Life Cycle Methods service( ) init( ) Init parameters Ready destroy( ) doget( ) dopost( ) Request parameters 128
129 Servlet Life Cycle Methods Invoked by container Container controls life cycle of a servlet Defined in javax.servlet.genericservlet class or init() destroy() service() - this is an abstract method javax.servlet.http.httpservlet class doget(), dopost(), doxxx() service() - implementation 129
130 Servlet Life Cycle Methods init() Invoked once when the servlet is first instantiated Perform any set-up in this method destroy() Setting up a database connection Invoked before servlet instance is removed Perform any clean-up Closing a previously created database connection 130
131 service() & doget()/dopost() service() methods take generic requests and responses: service(servletrequest request, ServletResponse response) doget() or dopost() take HTTP requests and responses: doget(httpservletrequest request, HttpServletResponse response) dopost(httpservletrequest request, HttpServletResponse response) 131
132 Example: Sophisticated doget() // Get the identifier of the book to display (Get HTTP parameter) String bookid = request.getparameter("bookid"); if (bookid!= null) { // and the information about the book (Perform business logic) try { BookDetails bd = bookdb.getbookdetails(bookid); Currency c = (Currency)session.getAttribute("currency"); if (c == null) { c = new Currency(); c.setlocale(request.getlocale()); session.setattribute("currency", c); } c.setamount(bd.getprice()); // Print out the information obtained out.println("..."); } catch (BookNotFoundException ex) { response.resetbuffer(); throw new ServletException(ex); } } } out.println("</body></html>"); out.close(); 132
133 Example: Sophisticated doget() public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Read session-scope attribute message HttpSession session = request.getsession(true); ResourceBundle messages = (ResourceBundle)session.getAttribute("messages"); // Set headers and buffer size before accessing the Writer response.setcontenttype("text/html"); response.setbuffersize(8192); PrintWriter out = response.getwriter(); // Then write the response (Populate the header part of the response) out.println("<html>" + "<head><title>" + messages.getstring("titlebookdescription") + "</title></head>"); // Get the dispatcher; it gets the banner to the user RequestDispatcher dispatcher = getservletcontext().getrequestdispatcher("/banner"); if (dispatcher!= null) dispatcher.include(request, response); 133
134 Steps of Populating HTTP Response Fill Response headers Set some properties of the response Buffer size Get an output stream object from the response Write body content to the output stream 134
135 Example: Simple Response Public class HelloServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { } } // Fill response headers response.setcontenttype("text/html"); // Set buffer size response.setbuffersize(8192); // Get an output stream object from the response PrintWriter out = response.getwriter(); // Write body content to output stream out.println("<title>first Servlet</title>"); out.println("<big>hello J2EE Programmers! </big>"); 135
136 Scope Objects Enables sharing information among collaborating web components via attributes maintained in Scope objects Attributes are name/object pairs Attributes maintained in the Scope objects are accessed with getattribute() & setattribute() 4 Scope objects are defined Web context, session, request, page 136
137 Four Scope Objects: Accessibility Web context (ServletConext) Accessible from Web components within a Web context Session Accessible from Web components handling a request that belongs to the session Request Accessible from Web components handling the request Page Accessible from JSP page that creates the object 137
138 Four Scope Objects: Class Web context javax.servlet.servletcontext Session javax.servlet.http.httpsession Request subtype of javax.servlet.servletrequest: javax.servlet.http.httpservletrequest Page javax.servlet.jsp.pagecontext 138
139 Service() Method Server GenericServlet subclass Request Sub c lass o f Ge ne ricse rv le t c lass Service( ) Response Key: Implemented by subclass 139
140 doget() and dopost() Methods Server HttpServlet subclass Request doget( ) Service( ) Response dopost( ) Key: Implemented by subclass 140
141 Things You Do in doget() & dopost() Extract client-sent information (HTTP parameter) from HTTP request Set (Save) and get (read) attributes to/from Scope objects Perform some business logic or access database Optionally forward the request to other Web components (Servlet or JSP) Populate HTTP response message and send it to client 141
142 Example: Simple doget() import javax.servlet.*; import javax.servlet.http.*; import java.io.*; Public class HelloServlet extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { } } // Just send back a simple HTTP response response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<title>first Servlet</title>"); out.println("<big>hello J2EE Programmers! </big>"); 142
143 Getting around in Javaland 143
144 IDEs We were using NetBeans IDE during this week Developed by Sun mainly in Prague Another common IDE is Eclipse Another open source IDE originally developed by IBM IntelliJ IDEA Commercial Java IDE 144
145 Java resources java.sun.com Java Language Specification Tutorial books: Tutorials for each standard API Bruce Eckel's Thinking in Java book 145
146 Java portals
MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák
Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés
RészletesebbenHello 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.
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. Hozzunk létre egy Dynamic Web projectet File New Other itt a következőket
RészletesebbenSzéchenyi István Egyetem www.sze.hu/~herno
Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás
RészletesebbenÜdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu
Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu Tartalom idén WEB UI programozási technológiák A Tudor/Szeráj/SingSing a Web-re megy Szoftvertechnológiai
RészletesebbenBevezető. Servlet alapgondolatok
A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig
RészletesebbenUsing the CW-Net in a user defined IP network
Using the CW-Net in a user defined IP network Data transmission and device control through IP platform CW-Net Basically, CableWorld's CW-Net operates in the 10.123.13.xxx IP address range. User Defined
RészletesebbenJAVA webes alkalmazások
JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,
RészletesebbenA WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév
Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások
RészletesebbenXML 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
XML adatkezelés I. Az szabvány Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék XML adatok kezelési lehetőségei szövegszerkesztő API XML DOM API XSL XQUERY Az XML dokumentumok feldolgozó
RészletesebbenJEE tutorial. Zsíros Levente, 2012
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
RészletesebbenWeb-fejlesztés NGM_IN002_1
Web-fejlesztés NGM_IN002_1 Dinamikus tartalom 2. Servletek Java Servletek Szerver oldali alkalmazások Java nyelven szerver funkcionalitásának kiterjesztése dinamikus és interaktív tartalom el!állításra
RészletesebbenJava Servlet technológia
Java Servlet technológia Servlet Java osztály, megvalósítja a Servlet interfészt Kérés-válasz (request-response) modellre épül, leginkább web-kérések kiszolgálására használjuk A Servlet technológia http-specifikus
RészletesebbenWeb-fejlesztés NGM_IN002_1
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
RészletesebbenSzervlet-JSP együttműködés
Java programozási nyelv 2007-2008/ősz 10. óra Szervlet-JSP együttműködés Kérés továbbítás technikái legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu Szervlet-JSP együttműködés Témakörök Osztálykönyvtár
RészletesebbenOsztott alkalmazások fejlesztési technológiái Áttekintés
Osztott alkalmazások fejlesztési technológiái Áttekintés Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Történelem - a kezdetek 2 Mainframe-ek és terminálok Minden a központi gépen fut A
RészletesebbenFicsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
RészletesebbenOsztott rendszerek, Java EE. Általános bevezető
Osztott rendszerek, Java EE Általános bevezető Osztott rendszerek Hálózati alkalmazások (java.net, java.nio, Apache Mina, stb.) Web-programozás (Servlet, JSP, JSTL, JSF, JavaFX, GWT, Struts, stb.) Webszolgáltatások
RészletesebbenAdatbázis-kezelés ODBC driverrel
ADATBÁZIS-KEZELÉS ODBC DRIVERREL... 1 ODBC: OPEN DATABASE CONNECTIVITY (NYÍLT ADATBÁZIS KAPCSOLÁS)... 1 AZ ODBC FELÉPÍTÉSE... 2 ADATBÁZIS REGISZTRÁCIÓ... 2 PROJEKT LÉTREHOZÁSA... 3 A GENERÁLT PROJEKT FELÉPÍTÉSE...
RészletesebbenSzoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.
Tervezési minták Irodalom Steven R. Schach: Object Oriented & Classical Software Engineering, McGRAW-HILL, 6th edition, 2005, chapter 8. E. Gamma, R. Helm, R. Johnson, J. Vlissides:Design patterns: Elements
RészletesebbenJava technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.
Sapientia - EMTE 2010 A célja A viselkedése Megjelenítés komponenstípusok Adatok megjelenítése: grafikonok, táblázatok Űrlapok Navigációs elemek: menük, hiperlinkek Informácios képernyők: útbaigazítások,
RészletesebbenCloud computing. Cloud computing. Dr. Bakonyi Péter.
Cloud computing Cloud computing Dr. Bakonyi Péter. 1/24/2011 1/24/2011 Cloud computing 2 Cloud definició A cloud vagy felhő egy platform vagy infrastruktúra Az alkalmazások és szolgáltatások végrehajtására
RészletesebbenBiztonság java web alkalmazásokban
Biztonság java web alkalmazásokban Webalkalmazások fejlesztése tananyag Krizsán Zoltán 1 [2012. május 9.] 1 Általános Informatikai Tanszék Miskolci Egyetem 2012. május 9. Krizsán Zoltán [2012. május 9.]
RészletesebbenA Java EE 5 plattform
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
RészletesebbenJNDI - alapok. Java Naming and Directory Interface
JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított
Részletesebben1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7
1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7 1.1. Új virtuális gép és Windows Server 2008 R2 Enterprise alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális
RészletesebbenCloud computing Dr. Bakonyi Péter.
Cloud computing Dr. Bakonyi Péter. 1/24/2011 Cloud computing 1/24/2011 Cloud computing 2 Cloud definició A cloud vagy felhő egy platform vagy infrastruktúra Az alkalmazások és szolgáltatások végrehajtására
RészletesebbenWebes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás
RészletesebbenSymfony kurzus 2014/2015 I. félév. Controller, Routing
Symfony kurzus 2014/2015 I. félév Controller, Routing Request - Response GET / HTTP/1.1 Host: xkcd.com Accept: text/html User-Agent: Mozilla/5.0 (Macintosh) HTTP/1.1 200 OK Date: Sat, 02 Apr 2011 21:05:05
Részletesebben(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV
Kommunikációs rendszerek programozása (NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV (5. mérés) SIP telefonközpont készítése Trixbox-szal 1 Mérés helye: Széchenyi István Egyetem, L-1/7 laboratórium, 9026 Győr, Egyetem
RészletesebbenOracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary
Oracle Containers for Java - j2ee alkalmazás szerver funkciók Molnár Balázs Oracle Hungary Mi is a J2EE? Szabványgyűjtemény Java alkalmazások számára A JavaSoft közösség alakította ki Összefogja az egyéni
RészletesebbenSAS Enterprise BI Server
SAS Enterprise BI Server Portik Imre vezető szoftverkonzulens SAS Institute, Magyarország A SAS helye a világban 280 iroda 51 országban 10,043 alkalmazott 4 millió felhasználó világszerte 41,765 ügyfél
RészletesebbenJavaServer Pages (JSP) (folytatás)
JavaServer Pages (JSP) (folytatás) MVC architektúra a Java kiszolgálón Ügyfél (Böngésző) 5 View elküldi az oldal az ügyfélez View (JSP) Ügyfél üzenet küldése a vezérlőnek 1 3 4 Kérelem továbbítása a megjelenítőnek
RészletesebbenCreate & validate a signature
IOTA TUTORIAL 7 Create & validate a signature v.0.0 KNBJDBIRYCUGVWMSKPVA9KOOGKKIRCBYHLMUTLGGAV9LIIPZSBGIENVBQ9NBQWXOXQSJRIRBHYJ9LCTJLISGGBRFRTTWD ABBYUVKPYFDJWTFLICYQQWQVDPCAKNVMSQERSYDPSSXPCZLVKWYKYZMREAEYZOSPWEJLHHFPYGSNSUYRZXANDNQTTLLZA
Részletesebbendiscosnp demo - Peterlongo Pierre 1 DISCOSNP++: Live demo
discosnp demo - Peterlongo Pierre 1 DISCOSNP++: Live demo Download and install discosnp demo - Peterlongo Pierre 3 Download web page: github.com/gatb/discosnp Chose latest release (2.2.10 today) discosnp
RészletesebbenWebsite review acci.hu
Website review acci.hu Generated on September 30 2016 21:54 PM The score is 37/100 SEO Content Title Acci.hu - Ingyenes apróhirdető Length : 30 Perfect, your title contains between 10 and 70 characters.
RészletesebbenMVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások
Áttekintés Java Web technológiák Bevezetés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások 1 / 28 2 / 28 MVC Model-View-Controller MVC desktop illetve webalkalmazás esetén eredete:
RészletesebbenSQL/PSM kurzorok rész
SQL/PSM kurzorok --- 2.rész Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 9.3. Az SQL és a befogadó nyelv közötti felület (sormutatók) 9.4. SQL/PSM Sémában
RészletesebbenA Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)
A Web réteg architektúrája A JSF web alkalmazás keretrendszer Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu Új doc: JSPTutorial.html a web-en Szervletek és JSP-k, és ennek történelmi
Részletesebben4. Gyakorlat: Csoportházirend beállítások
4. Gyakorlat: Csoportházirend beállítások 4.1. A Default Domain Policy jelszóra vonatkozó beállításai 4.2. Parancsikon, mappa és hálózati meghajtó megjelenítése csoport házirend segítségével 4.3. Alkalmazások
RészletesebbenEseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.
RészletesebbenA J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -
Részletesebbeneseményvezérelt megoldások Vizuális programozás 5. előadás
Programozási architektúrák, eseményvezérelt megoldások Vizuális programozás 5. előadás Komponens-alapú programozás Kezdelteges formája, az első komponensek: DLL-ek Black box ujrahasznosítható kód Függvényeket
RészletesebbenStateless Session Bean
Stateless Session Bean Készítsünk egy stateless session bean-t, amellyel összeadhatunk két számot. Hozzunk létre egy Dynamic Web projectet File New Other itt a következőket kell választani: Web Dynamic
RészletesebbenSOPHOS simple + secure. A dobozba rejtett biztonság UTM 9. Kókai Gábor - Sophos Advanced Engineer Balogh Viktor - Sophos Architect SOPHOS
SOPHOS simple + secure A dobozba rejtett biztonság UTM 9 Kókai Gábor - Sophos Advanced Engineer Balogh Viktor - Sophos Architect SOPHOS SOPHOS simple + secure Megint egy UTM? Egy újabb tűzfal extrákkal?
RészletesebbenJava Web technológiák
Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv J2EE Java alapú Web alkalmazások MVC Model-View-Controller eredete: kezdetben a SmallTalk OO programzási nyelvhez lett kifejlesztve
RészletesebbenEN United in diversity EN A8-0206/419. Amendment
22.3.2019 A8-0206/419 419 Article 2 paragraph 4 point a point i (i) the identity of the road transport operator; (i) the identity of the road transport operator by means of its intra-community tax identification
RészletesebbenPHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés
RészletesebbenWeb Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform
(webszolgáltatások): egy osztott alkalmazásfejlesztési plattform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem A Web Service Web Service definíciója Számos definíció létezik. IBM [4] A Web
RészletesebbenMVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet
Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés
RészletesebbenTeszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -
VTP Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW2 SW3 2 Alap konfiguráció SW1-2-3 conf t interface e1/0 switchport trunk encapsulation dot1q switchport mode trunk vtp domain CCIE vtp mode transparent vtp
Részletesebben10. Gyakorlat: Alkalmazások publikálása Remote Desktop Szervízen keresztül
10. Gyakorlat: Alkalmazások publikálása Remote Desktop Szervízen keresztül 10.1. Jogosultságok és csoportok létrehozása 10.2. Az RDS szerver szerepkör telepítése a DC01-es szerverre 10.3. Az RDS01-es szerver
RészletesebbenXML dokumentumok feldolgozása. DOM, SAX, StAX
XML dokumentumok feldolgozása DOM, SAX, StAX XML-feldolgozók Az XML-feldolgozók olyan programok, amelyek képesek XML dokumentumokat beolvasni, továbbá hozzáférést biztosítanak a dokumentum tartalmához
RészletesebbenUSER MANUAL Guest user
USER MANUAL Guest user 1 Welcome in Kutatótér (Researchroom) Top menu 1. Click on it and the left side menu will pop up 2. With the slider you can make left side menu visible 3. Font side: enlarging font
Részletesebbenios alkalmazásfejlesztés Koltai Róbert
ios alkalmazásfejlesztés Koltai Róbert robert.koltai@ponte.hu Mi az a block? Utasítások sorozata { }-ek között, amit egy objektumként tuduk kezelni. ios 4.0 és Mac OSX 10.6 óta 2 Egy példa a felépítésére
RészletesebbenT Á J É K O Z T A T Ó. A 1108INT számú nyomtatvány a http://www.nav.gov.hu webcímen a Letöltések Nyomtatványkitöltő programok fülön érhető el.
T Á J É K O Z T A T Ó A 1108INT számú nyomtatvány a http://www.nav.gov.hu webcímen a Letöltések Nyomtatványkitöltő programok fülön érhető el. A Nyomtatványkitöltő programok fület választva a megjelenő
RészletesebbenElőszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István (viczus@freemail.hu) Viczián István
Java objektumok leképzése relációs adatbázisokra -vel Viczián István (viczus@freemail.hu) Előszó E cikk olyan haladó programozóknak nyújt segítséget, kik tisztában vannak a Java nyelvvel, és többször is
RészletesebbenEnterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans
Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti
RészletesebbenWebfejlesztés alapjai
Webfejlesztés alapjai Óbudai Egyetem, Java Programozás Mérnök-informatikai kar Labor 7 Bedők Dávid 2016.12.01. v0.9 Webfejlesztés A mai világban szinte minden "programozás iránt érdeklődő" 14 éves "webprogramozó".
RészletesebbenJava bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
Részletesebben5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)
5. rész: A Java EE és az Enterprise Bean réteg Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu Java EE Komponensek családfája Java EE Komponens Üzleti logika EJB Container User interface
RészletesebbenEnterprise JavaBeans 1.4 platform (EJB 2.0)
Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans
RészletesebbenJava Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa
Web Technológiák Java Server Pages - JSP Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101
RészletesebbenCorrelation & Linear Regression in SPSS
Petra Petrovics Correlation & Linear Regression in SPSS 4 th seminar Types of dependence association between two nominal data mixed between a nominal and a ratio data correlation among ratio data Correlation
RészletesebbenCsatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network
Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network Table of Contents Windows 7... 2 Windows 8... 6 Windows Phone... 11 Android... 12 iphone... 14 Linux (Debian)... 20 Sebők Márton
RészletesebbenRétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet
HTTP Hálózat Rétegezett architektúra felhasználók Alkalmazási Web, e-mail, file transfer,... Szállítási Internet Hálózat-elérési Végponttól végpontig terjedő átvitel, Megbízható átvitel, sorrendbe állítás,
RészletesebbenComputer Architecture
Computer Architecture Locality-aware programming 2016. április 27. Budapest Gábor Horváth associate professor BUTE Department of Telecommunications ghorvath@hit.bme.hu Számítógép Architektúrák Horváth
RészletesebbenCluster Analysis. Potyó László
Cluster Analysis Potyó László What is Cluster Analysis? Cluster: a collection of data objects Similar to one another within the same cluster Dissimilar to the objects in other clusters Cluster analysis
RészletesebbenMobil webszerverek. Márton Gábor Nokia Research Center. W3C Mobilweb Műhelykonferencia, Budapest 2006. október 18.
Mobil webszerverek Márton Gábor Nokia Research Center W3C Mobilweb Műhelykonferencia, Budapest 2006. október 18. 1 2006 Nokia Mobil webszerverek / 2006-10-18 / JWi, GMa Előzmények Klassz lenne, ha a mobiltelefonon
RészletesebbenC#, OOP. Osztályok tervezése C#-ban
C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat
RészletesebbenJava. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.
Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens
RészletesebbenUtasítások. Üzembe helyezés
HASZNÁLATI ÚTMUTATÓ Üzembe helyezés Utasítások Windows XP / Vista / Windows 7 / Windows 8 rendszerben történő telepítéshez 1 Töltse le az AORUS makróalkalmazás telepítőjét az AORUS hivatalos webhelyéről.
RészletesebbenCollections. Összetett adatstruktúrák
Collections Összetett adatstruktúrák Collections framework Előregyártott interface-ek és osztályok a leggyakoribb összetett adatszerkezetek megvalósítására Legtöbbször módosítás nélkül használhatók Időt,
RészletesebbenKomponens modellek. 3. Előadás (első fele)
Komponens modellek 3. Előadás (első fele) A komponens modellek feladata Támogassa a szoftverrendszerek felépítését különböző funkcionális, logikai komponensekből, amelyek a számítógépes hálózatban különböző
RészletesebbenKönnyen bevezethető ITIL alapú megoldások a Novell ZENworks segítségével. Hargitai Zsolt Sales Support Manager Novell Hungary
Könnyen bevezethető ITIL alapú megoldások a Novell ZENworks segítségével Hargitai Zsolt Sales Support Manager Novell Hungary Napirend ITIL rövid áttekintés ITIL komponensek megvalósítása ZENworks segítségével
Részletesebben11. Gyakorlat: Certificate Authority (CA), FTP site-ok
11. Gyakorlat: Certificate Authority (CA), FTP site-ok 11.1. A CA szerver szerepkör telepítése a DC01-es szerverre 11.2. Az FTP szervíz telepítése a DC01-es szerverre 11.3. A szükséges DNS rekordok létrehozása
RészletesebbenCREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )
Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.
RészletesebbenNemzetközi vállalat - a vállalati szoftvermegoldások egyik vezető szállítója
Nemzetközi vállalat - a vállalati szoftvermegoldások egyik vezető szállítója A Novell világszerte vezető szerepet tölt be a Linux-alapú és nyílt forráskódú vállalati operációs rendszerek, valamit a vegyes
RészletesebbenBánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64
RészletesebbenModellalkotás UML-ben
Modellalkotás UML-ben Modellalkotás UML-ben A Unified Modeling Language (UML) egy grafikus modellező nyelv, amely lehetőséget nyújt egy megoldandó probléma specifikációjának leírására absztrakt szinten,
RészletesebbenLexington Public Schools 146 Maple Street Lexington, Massachusetts 02420
146 Maple Street Lexington, Massachusetts 02420 Surplus Printing Equipment For Sale Key Dates/Times: Item Date Time Location Release of Bid 10/23/2014 11:00 a.m. http://lps.lexingtonma.org (under Quick
RészletesebbenAngol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel
Angol Középfokú Nyelvvizsgázók Bibliája: Nyelvtani összefoglalás, 30 kidolgozott szóbeli tétel, esszé és minta levelek + rendhagyó igék jelentéssel Timea Farkas Click here if your download doesn"t start
RészletesebbenConstruction of a cube given with its centre and a sideline
Transformation of a plane of projection Construction of a cube given with its centre and a sideline Exercise. Given the center O and a sideline e of a cube, where e is a vertical line. Construct the projections
RészletesebbenProxer 7 Manager szoftver felhasználói leírás
Proxer 7 Manager szoftver felhasználói leírás A program az induláskor elkezdi keresni az eszközöket. Ha van olyan eszköz, amely virtuális billentyűzetként van beállítva, akkor azokat is kijelzi. Azokkal
RészletesebbenPerzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia
Java technológiák 11. előadás Perzisztencia ANTAL Margit Sapientia - EMTE 2010 Az előadás célja JPA Java Persistence API ORM Object Relational Mapping Entitások közötti asszociációk megvalósítása Fontosabb
RészletesebbenCashback 2015 Deposit Promotion teljes szabályzat
Cashback 2015 Deposit Promotion teljes szabályzat 1. Definitions 1. Definíciók: a) Account Client s trading account or any other accounts and/or registers maintained for Számla Az ügyfél kereskedési számlája
RészletesebbenENROLLMENT FORM / BEIRATKOZÁSI ADATLAP
ENROLLMENT FORM / BEIRATKOZÁSI ADATLAP CHILD S DATA / GYERMEK ADATAI PLEASE FILL IN THIS INFORMATION WITH DATA BASED ON OFFICIAL DOCUMENTS / KÉRJÜK, TÖLTSE KI A HIVATALOS DOKUMENTUMOKBAN SZEREPLŐ ADATOK
RészletesebbenFöldtani térképek kartografálásának segítése térinformatikai módszerekkel
A Magyar Állami Földtani Intézet Évi Jelentése, 2004 139 Földtani térképek kartografálásának segítése térinformatikai módszerekkel Aiding the cartographic process of geological maps with GIS-methods Magyar
RészletesebbenMapping Sequencing Reads to a Reference Genome
Mapping Sequencing Reads to a Reference Genome High Throughput Sequencing RN Example applications: Sequencing a genome (DN) Sequencing a transcriptome and gene expression studies (RN) ChIP (chromatin immunoprecipitation)
Részletesebben1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása
1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása 1.1. Új virtuális gép és a Windows Server 2012 R2 Datacenter alap lemez létrehozása 1.2. A differenciális lemezek és a két új virtuális
RészletesebbenElosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms
Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms Maarten van Steen 1 Kitlei Róbert 2 1 VU Amsterdam, Dept. Computer Science 2 ELTE Informatikai Kar 12. rész:
RészletesebbenJava Development Alapképzés
Java Development Alapképzés Mit fogsz megtanulni az első fázisban? A képzés első része, amely hat hétig tart, bevezet a programozás világába, meg lehet tanulni hogyan használjátok a fejlesztő eszközöket
RészletesebbenExcel vagy Given-When-Then? Vagy mindkettő?
TESZT & TEA BUDAPEST AGILE MEETUP Pénzügyi számítások automatizált agilis tesztelése: Excel vagy Given-When-Then? Vagy mindkettő? NAGY GÁSPÁR TechTalk developer coach Budapest, 2014 február 6. SpecFlow
RészletesebbenWWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31
Web programozás 2011 2012 1 / 31 Áttekintés Mi a web? / A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Miről lesz szó... (kurzus/labor/vizsga)
RészletesebbenJava servlet technológia 1 / 40
Java servlet technológia 1 / 40 Áttekintés Bevezetés Servlet map-elés web.xml-ben Szessziókövetés include, forward Szűrők 2 / 40 Áttekintés Bevezetés Servlet map-elés web.xml-ben Szessziókövetés include,
RészletesebbenSzálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?
Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A
Részletesebben4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu
4. rész: Java Enterprise Edition bevezetı Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu Hol tartunk? Projekt tervezés, követés MS Project RequisitePro Követelmények Tervezés, modellezés
RészletesebbenBudapest By Vince Kiado, Klösz György
Budapest 1900 2000 By Vince Kiado, Klösz György Download Ebook : budapest 1900 2000 in PDF Format. also available for mobile reader If you are looking for a book Budapest 1900-2000 by Vince Kiado;Klosz
RészletesebbenWCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens
WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens Hozzunk létre egy ASP.NET Empty Web Site projektet! A projekt neve legyen WCFAPP1. Ez
RészletesebbenSIP. Jelzés a telefóniában. Session Initiation Protocol
SIP Jelzés a telefóniában Session Initiation Protocol 1 Telefon hívás létrehozása 2 Jelzés és hálózat terhelés 3 Jelzés sík és jelzés típusok 4 TDM - CAS Channel Associated Signaling 5 CCS - Signaling
RészletesebbenJava Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza geza.simon@sun.hu Zsemlye Tamás tamas.zsemlye@sun.
Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben Simon Géza geza.simon@sun.hu Zsemlye Tamás tamas.zsemlye@sun.com Témáim: SOA architecture Webservice folyamat java WS-addressing
Részletesebben