Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

Java EE 5

Java EE 5

von: Thomas Stark

Addison-Wesley Verlag, 2006

ISBN: 9783827323620, 534 Seiten

Format: PDF, OL

Mac OSX,Windows PC Apple iPad, Android Tablet PC's Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 19,95 EUR

Ersparnis: 10,00 EUR

  • Modellgetriebene Softwareentwicklung - MDA und MDSD in der Praxis
    Java EE 5 Architekturen. Java Patterns und Idiome
    UML 2 - Zertifizierung: Test-Vorbereitung zum OMG Certified UML Professional (Fundamental)
    Spring und Hibernate - Eine praxisbezogene Einführung
    Fortgeschrittene Programmierung mit Java 5 - Generics, Annotations, Concurrency und Reflection – mit allen wesentlichen Neuerungen des J2SE 5.0
    JAXB 2.0 - Ein Programmiertutorial für die Java Architecture for XML Binding
    UML@Work - Objektorientierte Modellierung mit UML2
    Requirements Engineering
  • Business Engineering
    Hibernate und das Java Persistence API
    Java Server Faces - Ein Arbeitsbuch für die Praxis
    SOA goes real - Service-orientierte Architekturen erfolgreich planen und einführen
    Java 5-Programmierhandbuch - Einstieg und professioneller Einsatz
    Enterprise JavaBeans - Die 3. Generation
    Selbstmotivation - FLOW - statt Streß oder Langeweile

     

     

 

Mehr zum Inhalt

Java EE 5


 

Inhaltsverzeichnis

5

Vorwort

17

Danksagung

17

1Einleitung

19

1.1 Zentrale Konzepte

19

1.1.1 Das Client-Server-Modell

20

1.1.2 Mehrschichtanwendungen

20

1.1.3 Ein API und seine Implementierung

22

1.2 Aufbau des Buchs

22

1.2.1 Die Darstellungsschicht

23

1.2.2 Geschäftslogik und Kommunikation

24

1.2.3 Datenhaltung und Datenrepräsentation

26

1.2.4 ... und ist da sonst gar nichts mehr?

26

1.3 An wen richtet sich dieses Buch?

28

1.3.1 Konventionen

28

1.3.2 Disclaimer

29

1.4 Bezug und Installation der Software

29

1.4.1 Java Platform Enterprise Edition 5

30

1.4.2 Die Wahl der »richtigen« Entwicklungsumgebung

30

1.4.3 Das Kompilierungstool Apache Ant

31

1.4.4 Apache Tomcat Server

31

1.4.5 JBoss Application Server

35

1.4.6 Achtung, fertig, los!

36

2 JavaServer Pages

37

2.1 Webanwendungen gestern und heute

38

2.1.1 Das Hypertext Transfer Protocol (HTTP)

39

2.1.2 Der Request – eine Seite anfordern

40

2.1.3 Die Response – ein Server antwortet

43

2.1.4 Hypertext Markup Language (HTML)

44

2.1.5 HTTP vs. HTML

46

2.2 Ihre erste dynamische JSP

46

2.2.1 Einfügen von Java-Anweisungen

47

2.2.2 Einrichten der Webanwendung

48

2.3 Bausteine für JavaServer Pages

54

2.3.1 JSP-Ausdrücke

54

2.3.2 Mehrzeilige Java-Anweisungen durch Scriptlets

56

2.3.3 Scriptlets, Ausdrücke und der rote Faden Ihrer JSP

60

2.3.4 Definieren von Java-Methoden durch JSP- Deklarationen

61

2.3.5 Vergleich: Ausdrücke, Scriptlets und Deklarationen

64

2.3.6 Kommentare

65

2.3.7 Entscheidungen und Schleifen

66

2.4 Die vordefinierten Variablen einer JSP

69

2.4.1 Die verschiedenen Kontexte des Servlet- Containers

70

2.4.2 Acht Variablen zur Kontrolle von JSPs

73

2.5 Das Auslesen des HTTP-Request

74

2.5.1 Request-Parameter

75

2.5.2 Auslesen aller übermittelten Request- Parameter

76

2.5.3 Auslesen von Request-Headern

77

2.5.4 Besonders häufig verwendete Request- Header

79

2.6 Direktiven – Eigenschaften einer JSP

80

2.6.1 Die Seitendirektive page

80

2.6.2 Einbinden von Dateien, die Direktive include

87

2.7 Verwendung der Benutzer-Session

90

2.7.1 Was ist die Benutzer-Session?

91

2.7.2 Ein kleines Zahlenspiel

91

2.7.3 Arbeiten mit der Session

93

2.7.4 Kodieren von URLs

95

2.8 JSPs und JavaBeans

96

2.8.1 Grundlagen

96

2.8.2 Eine einfache JavaBean

97

2.8.3 Eingabe der Daten in die JavaBean

100

2.8.4 Ausgabe von Attributen einer JavaBean

104

2.8.5 Erweitertes Erzeugen von JavaBeans

105

2.8.6 Vorteile von JavaBeans

106

2.9 Zusammenfassung

107

2.9.1 Goldene Regeln für die Verwendung von JSPs

107

3 Servlets

109

3.1 Ein einfaches Servlet

109

3.1.1 JSPs und Javacode

110

3.1.2 In grauer Vorzeit ...

112

3.1.3 Einbinden eines Servlet

114

3.1.4 HelloWorld-Servlet vs. HelloWorld-JSP

119

3.2 Der Lebenszyklus eines Servlet

120

3.2.1 Die init()-Methode

121

3.2.2 Die Service-Methoden

124

3.2.3 Die Destroy-Methode

128

3.2.4 Das vollständige Datenbank-Servlet

128

3.2.5 Vergleich zwischen GET und POST

131

3.2.6 Zusammenfassung des Servlet- Lebenszyklus

131

3.3 Servlets vs. JavaServer Pages

132

3.3.1 Was Sie mit JSPs nicht machen können

133

3.3.2 Direkter Vergleich zwischen Servlets und JSPs

134

3.3.3 Fazit

135

3.4 Cookies

136

3.4.1 Cookies erstellen

136

3.4.2 Cookies lesen

139

3.5 Binäre Daten senden

140

3.5.1 Writer vs. Outputstream

140

3.5.2 Dynamische Bilder mit Servlets erstellen

141

3.5.3 Die Konfiguration des Servlet

142

3.5.4 Das Resultat

143

3.6 Weiterleiten und Einfügen

143

3.6.1 Einfügen einer Ressource

144

3.6.2 Weiterleiten eines Request

144

3.7 Fortgeschrittenes Arbeiten mit der Session

144

3.7.1 Aktive Sessions überwachen

145

3.7.2 Weitere Session-Listener

149

3.8 Servlet-Filter – Servlets light

151

3.8.1 Das Interface javax.servlet.Filter

152

3.8.2 Ein einfacher Basisfilter

153

3.8.3 Konfiguration des Filters

154

3.8.4 Manipulieren von Request und Response

155

3.8.5 Filterketten

158

3.9 Zusammenfassung

160

4 Tag-Bibliotheken

163

4.1 Ein eigenes Tag

164

4.1.1 Erstellen der Java-Klasse

164

4.1.2 Konfiguration des Tag-Handler

168

4.1.3 Einbinden der Tag-Bibliothek

170

4.1.4 Verwenden des Tag in einer JSP

172

4.2 Verwendung von Attributen

173

4.2.1 Der erweiterte Tag-Handler

173

4.2.2 Registrieren des Tag-Handler im Tag Library Descriptor

175

4.2.3 Verwendung innerhalb der JSP

176

4.3 Vordefinierte Variablen in Tag- Handlers

177

4.3.1 Ein Tag-Handler für HTTPS-Verbindungen

177

4.3.2 Die Konfiguration im Tag Library Descriptor

179

4.3.3 Eine Test-JSP

179

4.4 Den Rumpf eines Tag manipulieren

180

4.4.1 Die Klasse BodyTagSupport

180

4.4.2 Ein Iteration-Tag

180

4.4.3 Konfiguration im Tag Library Descriptor

182

4.4.4 Test mit einer JSP

182

4.5 Definition von Script-Variablen

183

4.5.1 Der Gültigkeitsbereich von Script-Variablen

183

4.5.2 Ein Tag-Handler für Script-Variablen

184

4.5.3 Konfiguration des Tag-Handler

185

4.5.4 Eine Beispiel-JSP

186

4.6 Mit dem Kontext arbeiten

187

4.6.1 Wie realisiert man den Zugriff auf Eltern- Tags?

187

4.6.2 Entscheidungen (if-then-else)

188

4.6.3 Überprüfen des Tag-Kontexts

189

4.6.4 Der <if>-Handler

189

4.6.5 <then> und <else>

190

4.6.6 Konfiguration der Tags im Tag Library Descriptor

191

4.6.7 Ein Beispiel

191

4.7 Zusammenfassung

192

5 Struts – die Diva unter den Frameworks

193

5.1 Was sind Frameworks?

194

5.2 Struts – ein Webframework

196

5.2.1 Struts-Komponenten

197

5.2.2 Was Sie außerdem benötigen

200

5.3 Ein Adressbuch

201

5.3.1 Bezug und Installation

201

5.3.2 Unsere Business-Objekte

206

5.3.3 Die JavaServer Pages

207

5.3.4 Struts Tag-Bibliotheken

211

5.3.5 Ressource

212

5.3.6 ActionForms

213

5.3.7 Actions

217

5.3.8 Konfiguration der Anwendung

219

5.3.9 Fazit

223

5.4 Erweiterungen

224

5.4.1 Die Datenbank-Action

224

5.5 Zusammenfassung

226

6 JavaServer Faces (JSF)

229

6.1 Gemeinsamkeiten mit Struts

230

6.1.1 Ein Servlet als Front-Controller

230

6.1.2 Konfiguration über eine zentrale XML-Datei

231

6.1.3 Die Business-Komponente AddressBean

231

6.1.4 Eine Welcome-Seite als Einstiegspunkt in die Applikation

232

6.1.5 Internationalisierung

233

6.2 Eine einfache JSF-Anwendung

233

6.2.1 Darstellung: JavaServer Pages

233

6.2.2 Datenbindungssyntax

236

6.2.3 Controller

237

6.2.4 Konfiguration

238

6.3 Navigationsregeln

239

6.3.1 Verwendung von Wildcards

241

6.3.2 Standardverhalten

242

6.3.3 Prioritäten der Verarbeitung

242

6.4 Validieren von Daten

242

6.4.1 Standardvalidatoren

243

6.4.2 Pflichtfelder deklarieren

243

6.4.3 Validierungsfehler ausgeben

244

6.4.4 Überschreiben der vorgefertigten Fehlermeldungen

246

6.4.5 Implementieren eines eigenen Validators

247

6.5 Konverter

249

6.5.1 Das Converter-Attribut

250

6.5.2 Das Converter-Tag

250

6.6 Zusammenfassung

253

7 Java Naming and Directory Interface

255

7.1 Einführung in Namensdienste

257

7.1.1 Ein API – zwei Services

258

7.1.2 Der Kontext

259

7.1.3 Namensdienste

259

7.1.4 Verzeichnisdienste

262

7.2 API und SPI – Download und Installation

264

7.2.1 Download des API

264

7.2.2 Einige SPI-Implementierungen

265

7.3 Arbeiten mit dem JNDI

267

7.3.1 Erzeugen eines initialen Kontexts

268

7.3.2 Auf den Dienst zugreifen ...

271

7.3.3 Ausgabe der Elemente eines Kontexts

272

7.3.4 Zugreifen auf gebundene Elemente

274

7.3.5 Umbenennen von Objektbindungen

276

7.3.6 Entfernen von Objekten

277

7.3.7 Verschieben von gebundenen Objekten

277

7.4 Speichern einer Datenbankverbindung

279

7.4.1 Vom DriverManager zur DataSource

279

7.4.2 Ablegen der Datenquelle

280

7.4.3 Auslesen der Datenbankverbindung

282

7.5 JNDI und Verzeichnisdienste

283

7.5.1 Attribute des Verzeichnisdienstes LDAP

283

7.5.2 Erzeugen eines DirContext-Objekts

284

7.5.3 Binden von Objekten

285

7.5.4 Suche nach Objekten mit bestimmten Attributen

286

7.6 Eine JNDI Lookup-Klasse

287

7.7 JNDI und Webanwendungen

289

7.7.1 Datenquelle mit Apache Tomcat im Standalone- Betrieb

289

7.7.2 Datenquelle im JBoss Application Server

291

7.7.3 Zugriff aus der Applikation

292

7.7.4 Vorteile für Webanwendungen

293

7.8 Zusammenfassung

293

8 Enterprise JavaBeans (EJB)

295

8.1 Aufgabe von Enterprise JavaBeans

296

8.1.1 Kapselung der Geschäftslogik

296

8.1.2 Transaktionsmanagement

297

8.1.3 Loadbalancing

298

8.2 Vom Webserver zum Application- Server

299

8.2.1 Portabilität von Enterprise JavaBeans

300

8.2.2 Aufgaben eines EJB-Containers

301

8.3 Beans, Beans, Beans

302

8.3.1 Beans

302

8.3.2 JavaBeans

302

8.3.3 Enterprise JavaBeans (EJB)

303

8.4 Methodenfernaufruf

304

8.4.1 Verschiedene Broker-Architekturen

305

8.4.2 Austausch von Objekten durch Serialisierung

306

8.5 Verschiedene Typen von Enterprise JavaBeans

307

8.6 EJBs in freier Wildbahn

308

8.6.1 Stateless Session Beans

308

8.6.2 Stateful Session Beans

309

8.6.3 Hello World – eine Stateless Session Bean

309

8.6.4 Hello World – eine Stateful Session Bean

314

8.6.5 Ein Client

316

8.7 Restriktionen bei der Implementierung von EJBs

317

8.8 Zusammenfassung

318

9 Java Message Service

319

9.1 Asynchrone Kommunikation

320

9.1.1 Download und Installation

321

9.1.2 Message Oriented Middleware

321

9.1.3 Vorteile asynchroner Kommunikation

321

9.2 Das Konzept

322

9.2.1 Kommunikationspartner

323

9.2.2 Nachrichtenkonzepte

324

9.2.3 Konfiguration und Eigenschaften der Dienste

325

9.3 Bestandteile des API

326

9.3.1 javax.jms.ConnectionFactory

326

9.3.2 javax.jms.Connection

326

9.3.3 javax.jms.Session

327

9.3.4 javax.jms.Destination

328

9.3.5 javax.jms.Message

328

9.3.6 Zusammenfassung des API

330

9.4 Senden einer Nachricht

330

9.4.1 Der schematische Ablauf

331

9.4.2 Ein Nachrichtensender (Message Producer)

332

9.4.3 Konfiguration der Queue

334

9.4.4 Test der Anwendung

335

9.5 Empfangen einer Nachricht

335

9.6 Empfangsverfahren: Pull vs. Push

337

9.6.1 Push, wenn der Postmann zweimal klingelt

338

9.7 Topic vs. Queue

339

9.7.1 Ein konsolenbasierter Chat

339

9.7.2 Konfiguration und Test des Chat

342

9.7.3 Topic vs. Queue

342

9.8 Optionen für Nachrichten

343

9.8.1 Priorität einer Nachricht

343

9.8.2 Das Verfallsdatum einer Nachricht festlegen

343

9.8.3 Identifizierung einer Nachricht

344

9.9 Filtern einer Nachricht

345

9.9.1 Setzen und Auslesen von Eigenschaften

345

9.9.2 Ausgabe von Message-Attributen

346

9.9.3 Filtern anhand von Attributen

347

9.9.4 Filterelemente

349

9.10 Transaktionen und Empfangsbestätigungen

351

9.10.1 Transaktionen beim Senden

352

9.10.2 Transaktionen beim Nachrichtenempfang

352

9.10.3 Empfangsbestätigungen

353

9.11 Hin und zurück – Synchrone Kommunikation mit JMS

354

9.11.1 Ein QueueRequestor

355

9.11.2 Ein Empfänger, der antwortet

356

9.11.3 Request und Reply vs. Remote Procedure Call

358

9.12 Message Driven Beans

358

9.12.1 Drei erfolgreich verheiratete Java-EE-Technologien

361

9.12.2 Alternative Konfiguration mit Deployment Descriptor

361

9.13 Zusammenfassung

362

10 Persistenz – JavaBeans und Datenbanken

365

10.1 Etablierte Persistenz-Standards

365

10.1.1 Java Database Connectivity (JDBC)

366

10.1.2 EJBs Entity Beans

367

10.1.3 Java Data Objects

367

10.1.4 Freie OpenSource Frameworks

368

10.1.5 Das Persistenz API

368

10.2 Bezug und Installation

369

10.2.1 Hypersonic SQL Database (HSQLDB)

369

10.3 Eine einfache JavaBean

370

10.3.1 Verfeinerungen

371

10.3.2 Konfiguration

376

10.4 Arbeiten mit der JavaBean

378

10.4.1 Anlegen eines neuen Datensatzes

378

10.4.2 Suche anhand des Primärschlüssels

381

10.4.3 Zustände einer JavaBean

382

10.4.4 Manipulieren einer JavaBean

383

10.4.5 Löschen eines vorhandenen Datensatzes

384

10.5 Das Query API

385

10.5.1 Suche über den Nachnamen

385

10.5.2 Benannte Anfragen hinterlegen

387

10.5.3 Anspruchsvolle Anfragen

388

10.6 Datensätze verknüpfen

389

10.6.1 Die E-Mail-Bean

389

10.6.2 Relationen zwischen Datensätzen

390

10.6.3 Verknüpfen zweier JavaBeans über Annotationen

392

10.6.4 Unterschiedliche Fetch-Typen

397

10.7 Persistenz im EJB-Container

398

10.7.1 Grundlagen

398

10.7.2 Eine einfache JavaBean

399

10.7.3 Konfiguration der Persistenz-Unit

400

10.7.4 Anpassen der Session Bean

400

10.7.5 Abschließende Bemerkungen

402

10.8 Zusammenfassung

403

11 eXtensible Markup Language (XML)

405

11.1 Kurze Einführung in XML

405

11.1.1 Kurze Geschichte der Markup-Sprachen

407

11.1.2 Die Geburtsstunde für XML

409

11.1.3 Element für Element zum Dokument – Regeln für XML

411

11.1.4 Dokumentzentriert vs. datenzentriert

412

11.1.5 Wichtige auf XML basierende Standards

413

11.1.6 Vorteile von XML

414

11.2 Elemente eines XML-Dokuments

414

11.2.1 Der Prolog und XML-Anweisungen

414

11.2.2 Das Element

415

11.2.3 Zeichenketten

418

11.2.4 Kommentare

419

11.2.5 Namensräume

420

11.2.6 CDATA-Rohdaten

421

11.3 Verarbeitungsmodelle für XML

421

11.3.1 DOM vs. JDOM vs. DOM4J

422

11.4 Arbeiten mit dem JDOM

424

11.4.1 Erzeugen eines neuen XML-Dokuments

424

11.4.2 Hinzufügen von weiteren Elementen

425

11.4.3 Kurzform für die Definition des Beispieldokuments

426

11.4.4 Mischen von Text und Elementen

428

11.4.5 Einführen von Namensräumen

429

11.4.6 Einlesen eines vorhandenen XML-Dokuments

430

11.4.7 Traversieren eines Dokuments

432

11.4.8 Ausgabe der direkten Kindelemente

433

11.4.9 Löschen von Elementen

434

11.4.10 Herauslösen und Klonen eines Elements

434

11.4.11 Einsatz von Filtern

435

11.4.12 Ausgabe des Dokuments

437

11.4.13 Umwandeln von JDOM in DOM

439

11.5 Mit SAX-Events arbeiten

440

11.5.1 Arbeitsweise von SAX

440

11.5.2 Callback-Methoden

441

11.5.3 Ein Dokument via SAX parsen

442

11.5.4 SAX-Events in der Pipeline

446

11.5.5 Einer für alles

451

11.5.6 Wofür eignet sich die Verarbeitung mit SAX- Events?

451

11.5.7 Zusätzliche Handler

452

11.6 Zusammenfassung

453

12 XSL, XPath und Co.

455

12.1 XPath – eine Einführung

455

12.2 Arbeiten mit XPath

456

12.2.1 Einfache Ausdrücke

457

12.2.2 Suche nach Elementen

457

12.2.3 Navigation über »Arrays« von Elementen

458

12.2.4 Verwenden des Operators or

458

12.2.5 Referenzieren von Attributen

459

12.2.6 Komplexe Pfade definieren

459

12.2.7 Operationen und Relationen

461

12.2.8 XPath-Funktionen

462

12.3 Zusammenfassung XPath

465

12.4 Die eXtensible Stylesheet Language

466

12.4.1 Anwendungen für die eXtensible Stylesheet Language

467

12.4.2 Ein einfaches Template

468

12.5 eXtensible Stylesheet Language Transformation ( XSLT)

470

12.5.1 Die Qual der Wahl der Implementierung

470

12.5.2 Transformation über die Kommandozeile

472

12.5.3 Transformation eines DOM

472

12.5.4 Verschiedene Transformationsquellen und Ziele

474

12.5.5 SAX vs. DOM

475

12.5.6 Laden eines referenzierten Stylesheet

475

12.5.7 Template vs. Transformer

476

12.5.8 Transformieren eines JDOM

477

12.5.9 Zusammenfassung XSL-Transformationen

477

12.6 XSL Stylesheets

478

12.6.1 Ein einfaches Template

478

12.6.2 Importieren anderer Stylesheets

478

12.6.3 Einfügen eines Stylesheet

479

12.6.4 Attribut-Sets

479

12.6.5 Variablen

479

12.6.6 Weiterführende Literatur

480

12.7 Ein Stylesheet für die Bibliothek

481

12.7.1 Das Root-Element

481

12.7.2 Das Library-Element und eine konstante Kopfzeile

482

12.7.3 Transformation von Book-Elementen

483

12.7.4 Entscheidungen

484

12.7.5 Das vollständige XSL Stylesheet

485

12.7.6 Zusammenfassung XSL Stylesheet

487

12.8 XSL Formatting Objects

487

12.8.1 Geschichte

488

12.8.2 Grundlagen und Installation

488

12.9 Aufbau eines FO-Dokuments

490

12.9.1 Die Definition einer A4-Seite

491

12.9.2 Das Auffüllen mit Inhalt

492

12.9.3 Rendern mit dem Formatting Objects Processor ( FOP)

493

12.9.4 Resultat

494

12.10Von XML zum PDF – ein Beispiel

494

12.10.1 Das Stylesheet

494

12.10.2 Attribut-Sets

497

12.10.3 Das Root-Element

497

12.10.4 Library und Book

498

12.10.5 Das Rendering

498

12.11 Zusammenfassung

500

13 Webservices

503

13.1 Die Idee hinter Webservices

504

13.2 XML – Remote Procedure Call ( XML- RPC)

504

13.2.1 Grundlagen

505

13.2.2 Aufbau eines XML-RPC-Dokuments

506

13.2.3 Übergabe der Parameter

507

13.2.4 Fehlerbehandlung

508

13.2.5 Zusammenfassung XML-RPC

508

13.3 Simple Object Access Protocol ( SOAP)

510

13.3.1 Die Idee hinter SOAP

510

13.3.2 SOAP und Java

510

13.4 Erstellen eines einfachen Webservice

512

13.5 Einen Webservice ansprechen

514

13.6 Webservice Description Language ( WSDL)

515

13.7 Universal Description and Discovery Interface ( UDDI)

516

13.8 Zusammenfassung

517

13.8.1 Allgemeine Abschlussbemerkungen

517

J2EE Software License

521

Stichwortverzeichnis

527

Symbols

527

A

527

B

527

C

527

D

527

E

528

F

528

G

528

H

528

I

528

J

528

K

530

L

530

M

530

N

531

O

531

P

531

Q

531

R

531

S

531

T

532

U

533

V

533

W

533

X

533

Z

534