Föreläsning 4. Innehåll. Java EE 7 subapi. Java EE. Java EE. DD2390 Internetprogrammering 6 hp

Relevanta dokument
2I1070 Lektion 2 Servlets och databaskopplingar Internetprogrammering 2I1049 Treskiktsarkitektur Klient-server med servlets

Servlets y JSP Fernando Berzal,

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans

Tentamen ITK:P2. Inga hjälpmedel tillåtna förutom penna och papper. Skriv tydligt och texta gärna. 14 st frågor, 70 poäng.

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

F8 Webbteknologier 1. Dynamiska webbsidor

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

2I1073 Lektion 2. Lektion 2a. Lektion 2a. Servlets, säkerhet, och filhantering. import java.io.*; import javax.servlet.*; import javax.servlet.http.

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

Trafla databasen vi hämtar data från (remote export) ligger på en godtycklig maskin i nätverket. Den här databasen är en MIMER databas.

DB, DATA, LOGIC, EXPOSURE (WEB)

Installation av Virtualiseringsplattform

PROV. 13 JSP Standard Tag Library

Webbservrar, severskript & webbproduktion

emopluppen Installationsmanual

Exempel. Föreläsning 6. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2390 Internetprogrammering 6 hp

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Uniform Resource Locator (URL) JavaServer Pages - JSP. Webbklienter. Webbserver. Hypertext Transfer Protocol (HTTP) HTTP Request

De ska vara möjligt att separera kod med olika utvecklingsbehov. Det ska vara enkelt att gå från en web-centrerad design till en komponentbaserad

Klientprogrammering mot databaser

Enterprise Java Beans Assignment 1

Björn Persson. Komponenter med J2EE. Del 1

Funktionsbeskrivning

Instruktion för användande av Citrix MetaFrame

Laboration 5 - Biblioteksapplikation

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

Ny installation...2. Översikt...2. Filer som behövs...2. Installera SQL Server Express (om det behövs)...3. Skapa en databas i SQL Server...

ASP.NET Thomas Mejtoft

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Exempel. Lektion 4. Innehåll. Fördefinierade variabler. PageContext. Java Server Pages (JSP) DD2483 Enterprise Java 6 hp

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Instruktion för användande av Citrix MetaFrame

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Uppdatera Easy Planning till SQL

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Distribuerade affärssystem

DI-institutionen Sid 1 av 5 Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Bakom kulisserna. SMHI webservices. Infrastruktur och säkerhetslösningar Demonstration av webservices

Installationsmanual Onepix RSS Vatech SVENSK

Instruktion för användande av Citrix MetaFrame

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

JobOffice SQL databas på server

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

INTRODUKTION TILL JDBC

Certifikatbaserad inloggning via SITHS, tillämpningsexempel

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

Laboration 2: Ett kommunikationssystem

Uppdatera Easy Planning till SQL

Webbtjänster med API er

Föreläsning 14. Filhantering

DI Studio nyheter

LVDB i GEOSECMA. Innehåll. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

Xpmetodik inom Enterpriseutveckling

Installationsanvisningar VISI Klient

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Installationsmanual Klientapplikation

Spara papper! Skriv inte ut sammanfattning utan ladda ner PDF!

Internationalisering/lokalisering på webben

JAVA Mer om klasser och objektorientering

Services + REST och OAuth

Att skriva till och läsa från terminalfönstret

Alla rättigheter till materialet reserverade Easec

Högskolan Dalarna sid 1 av 5 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix

F10 Webbteknologier. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Uppdateringsguide v6.1

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

FÖRSLAG TILL LÖSNINGAR, TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA, 5p för SY2, , kl

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Classpath. Class loading + resurser. Class loader. jar-filer

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Nya webbservern Dvwebb.mah.se

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

På servern För att registrera och köra en Topocad 17 nätverkslicens krävs att man installerar den senaste Licensservern

Komponenter med COM (och COM+/VC++ 7.0)

Objektorienterad Programmering (TDDC77)

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Konsultprofil Andreas Lundgren

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst

Installation xvis besökssystem, Koncern

Objektorienterad programmering i Java I

F9 Webbteknologier 1. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Scala Doc SQL Installation

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Web Services. Cognitude 1

Objektorienterad programmering, Java, 5p TDBA63

Vid problem med programmet kontakta alltid C/W Cadware AB på telefon

Distribuerade system. CORBA eller RMI

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin Micael Karlsson

Transkript:

Föreläsning 4 DD2390 Internetprogrammering 6 hp Innehåll Java EE konceptuell översikt Finns ett flertal implementationer Konfigurering av Tomcat web-moduler ejb-moduler(*) applikationer Java EE 7 subapi Viktigaste: Servlet API 3.1 Java Server Pages (JSP 2.3) (del av Servlet API) Java Server Faces (JSF 2.2) Java Server Pages Standard Tag Library (JSTL 1.2) Enterprise Java Beans (EJB 3.2) Java Persistence API (JPA 2.1) Ett flertal till... Senaste version EE 7 Java EE Ett samlingsnamn för ett flertal olika subapi:n med gemensam nämnare att de lämpar sig för Enterprise applikationer där en sådan kännetecknas av: hög belastning (många samtidiga klienter) komponentbaserat vilket innebär att en applikation är uppdelad i flera fristående moduler som kommunicerar med varandra. Dessa logiska skikt underlättar underhåll. klustringsmöjligheter Java EE Enterprise applikationer använder sig också frekvent av följande från Java SE: Remote Method Invokation (RMI) Java Naming and Directory Interface (JNDI) Java Database Connectivity (JDBC)

Servlet / JSP En (HTTP)Servlet är en klass dedikerad åt att hantera (HTTP)Request:s, behandla dessa och sedan generera (HTTP)Response:s JSP-kod anges i filer med ändelsen.jsp.jsp-filer är.(x)html-filer med inbäddad javakod.jsp-filer översätts först till Servlet:ar (som sedan kopileras och exekveras) Apache Tomcat 8 En applikationsserver är den middleware motor som man kör sina Java EE-applikationer på. Tomcat är endast en servletcontainer (med webserver) och inte en full Java EE-server. En webserver ingår alltid i produkten men kan även agera middleware mot klienter genom andra protokoll än http. Detta tas dock inte upp i denna kurs. JavaBean Definieras som en vanlig Javaklass med följande egenskaper publik konstruktor utan argument set:er och get:er metoder för samtliga instansvariabler POJO (Plain Old Java Object) Installation Tomcat finns i labkatalogen på kurshemsidan som en.zip-fil, spara denna i roten på er hemkatalog, skriv sedan i en unixterminal: unzip apache-tomcat-8.0.18.zip mv apache-tomcat-8.0.18 tomcat chmod R 700 tomcat/ cd tomcat/bin/./startup.sh http://localhost:1234./shutdown.sh Döp gärna om katalogen till endast tomcat Enterprise JavaBeans (EJB) Erbjuder databeständighet (persistens) och distribution av objekt. Persistensen uppnås genom att EJB:n kan speglas i en databas, d v s: skapa objekt => SQL-INSERT ändraobjekt => SQL-UPDATE radera objekt => SQL-DELETE Distributionen uppnås genom att EJB:n kan anropas via RMI i t e x ett serverkluster. EJB = JavaBean Konfigurering I appservrar används xml för konfigurering där en del xml-filer är Java EE-specifika och andra är applikationsserverspecifika. Vi ska främst beröra de EE-specifika.

HTTP-port Om ni tänkt att köra mot csc:s fjärrinloggningsserver (u-shell.csc.kth.se) måste ni tänka på att köra mot en annan port än 8080, annars får ni portkonflikt med andra studenter. Editera tomcat/conf/server.xml och byt ut de två förekomsterna av 8080 mot något annat (max 65535). WEB-moduler Körs under servletcontainern (=tomcat) En webmodul består av.jsp-filer,.(x)html-filer,.css-filer.class-filer Servlets JavaBeans Tagklasser (berörs ej i kursen).jar (importerade klasser under /lib/) Konfigurationsfilen web.xml EJB-moduler Körs under EJB-containern En ejb-modul består av.class-filer Själva EJB:n Konfigurationsfilen ejb-jar.xml OBS Tomcat saknar ejb-modul Konfigurationsfiler Enterprise applikationer En applikation kan bestå av webmoduler och ejbmoduler och dessa har varsin Java EEspecifika konfigurationsfil. Applikation (application.xml) Web-modul (web.xml) Ejb-modul(ejb-jar.xml)* Ingen, en eller flera web-moduler samt ingen, en eller flera ejb-moduler definierar en enterprise applikation. Något av ovanstående måste givetvis ingå

Filtyper för arkiv.jar (Java ARchive) = zip med.class-filer.war (Web ARchive) = zip av en web-modul.ear (Enterprise ARchive) = zip av.war + ejbmodul Fördelen med denna hantering är att man får en paketering av applikationen som man kan droppa på en annan applikationsserver. Detta kallas att driftsätta applikationen ( deploy ). JDBC Applikationsservern kan ansluta mot samtliga databaser som det finns en JDBC-drivrutin till Denna måste laddas ned, följer ej med Tomcat http://www.mysql.com/ http://dev.mysql.com/downloads/connector/j/ Plocka ur zip-filen ut mysql-connector-java-5.1.**-bin.jar och placera den sedan under tomcat/lib/ Kompileringsfil UNIX: Skapa en fil compile.sh under tomcat/bin som innehåller en enda lång javac-rad som samkompilerar alla.java-filer i hela er applikation. #/bin/sh set tomcatpath=$home/tomcat/lib set webapppath=$home/tomcat/webapps/root/web-inf/classes javac -cp $tomcatpath/servlet-api.jar $webapppath/*.java $webapppath/bean/*.java Windows: Skapa en fil compile.bat under tomcat/bin som innehåller en enda lång javac-rad som samkompilerar alla.java-filer i hela er applikation. set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_04 set tomcatpath=x:\tomcat\lib set webapppath=x:\tomcat\webapps\root\web-inf\classes javac -cp %tomcatpath%\servlet-api.jar %webapppath%\*.java %webapppath%\bean\*.java Observera att ni måste byta ut sökvägarna ovan till motsvarande på er egen dator JDBC (context.xml) Tomcat-specifik konfigurationsfil. <Resource name="jdbc/db" auth="container" type="javax.sql.datasource" username= root" password= *****" driverclassname="com.mysql.jdbc.driver" url="jdbc:mysql://localhost:3306/test " maxactive="8" maxidle="4"/> /lib/-kataloger Används för att importera.jar-filer, ofta jdbcdrivrutiner eller t e x JFreeChart för att få tillgång till ett grafritningsapi. Dessa finns på ett flertal platser i filträder och var de placeras är viktigt. De vanligaste är tillhörande: Servern som helhet, d v s gäller samtliga applikationer som körs på servern. en applikation => tillgänglig i hela applikationen en web-modul => tillgänglig i i web-modulen ejb-modulen => tillgänglig i ejb-modulen <resource-ref> <res-ref-name> jdbc/db </res-ref-name> <res-type> javax.sql.datasource </res-type> <res-auth> Container </res-auth> </resource-ref> JDBC (web.xml)

Första exemplet Färdigkonfigurerad tomcat.zip import java.io.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doget(httpservletrequest request,httpservletresponse response) throws IOException{ PrintWriter out = response.getwriter(); out.println("hello, world"); out.close(); } } /bin/compile.sh (kompileringsfil) /conf/server.xml (för att byta port, t ex 1234) /conf/context.xml (Konfig av JDBC, ni måste ändra) /lib/ mysql****.jar (JDBC-drivrutin) /webapps/root/web-inf (katalog) /webapps/root/web-inf/classes (katalog för Servlet:ar) /webapps/root/web-inf/classes/bean (katalog för JavaBönor) /webapps/root/web-inf/web.xml (Konfig av Servlet) /webapps/root/web-inf/helloworld.java(helloworld i Servlet-form) web.xml <servlet> <servlet-name>smurf</servlet-name> <servlet-class>helloworld</servlet-class> </servlet> <servlet-mapping> <servlet-name>smurf</servlet-name> <url-pattern>/helloworld</url-pattern> </servlet-mapping> Sammanfattning Under laborerandets gång: 1. Se till att du använder Java SE 7 (module add openjdk). 2../compile.sh (ersätter javac) 3../startup.sh (ersätter java) 4. http://localhost:1234 (läs ev felmeddeande) 5../shutdown.sh 6. => 2 Ni behöver inte starta om servern när ni ändrat.jsp-filer, de kompileras live OBS Glöm ej punkt (5) innan ni loggar ut, annars ligger en javaprocess kvar och blockerar portar för nästa grupp.