Internet Programmierung mit Java: Übersicht

Aus Wikibooks

Einleitung[Bearbeiten]

Für wen[Bearbeiten]

das Buch richtet sich an Bachelor-Studierende im vierten oder fünften Semester. Als Voraussetzung sollte man vor allem Java mitbringen. Außerdem schadet es nichts etwas über Datenstrukturen gehört zu haben, wir brauchen auf jeden Fall die Datencontainer List, Map und Set. Da das Internet ja ein Netzwerk von Computern ist, wäre auch eine Netzwerk Vorlesung nützlich. Hier wären wichtig die Protokolle TCP/IP und evtl. ein bisschen HTTP. Einfache HTML Kenntnisse sind hilfreich, die kann man sich aber auch sehr schnell noch selbst aneignen. Wenn man eine Vorlesung zu Software Engineering gehört hat, dann werden viele Dinge in diesem Buch wahrscheinlich etwas mehr Sinn machen. Man kann das Buch aber auch ohne verwenden. Das Buch ist eigentlich nicht zum Selbststudium gedacht, sondern als Begleitung zu einer Vorlesung. Aber ausschließen will ich es nicht.

Über was[Bearbeiten]

die Hauptthemen in diesem Buch sind Java Server Pages, Object Relational Mapping und Web Services. Wir beginnen allerdings ganz einfach mit den Basics, klären einige Begriffe wie HTTP, CSS und JavaScript und verbringen das erste Kapitel mit ganz vielen, kleinen HTML Projekten. Alle diese Projekte werden dann in späteren Kapiteln mit Leben gefüllt. Dann wird die Idee hinter Java Server Pages vorgestellt, der Zusammenhang mit Java erklärt und die ersten Schritte in Richtung dynamischer Webseiten unternommen. Nebenbei werden auch die Themen Logging, Exceptions und der JSP Lebenszyklus behandelt. Im Kapitel Request and Response geht es vor allem um erste Interaktion mit den Nutzern. Dabei werden auch Hintergründe zum HTTP Protokoll gegeben. Die Projekte sollen ein gewisses Sicherheitsbewusstsein entwickeln, aber es werden auch Themen wie Reflection und Code Generation angesprochen. Mit den Session und Application Objekten beschäftigen wir uns ausführlich, zahlreiche Beispiele verdeutlichen die jeweiligen Anwendungsszenarien und erläutern den Unterschied. In den Projekten werden dann zahlreiche Beispiele aus dem ersten Buch "webifiziert". Persistenz ist das Thema dem wir die meisten Seiten widmen, dabei liegt der Fokus auf dem Object Relational Mapping. Mit einfachen Beispielen werden die Begriffe POJO, Dao und die verschiedenen X-to-Y Beziehungen zunächst vorgestellt und anschließend vertieft. Dabei wird auch klar warum Generics super cool sind. Zum Abschluss stellen wir Servlets und Filter vor, das Hauptthema sind aber Web Services der RESTvollen Art.

Wie[Bearbeiten]

lernt man Internetprogrammierung? Wie alles, durch viel üben! Deswegen ist auch dieses Buch wieder voll mit Übungsbeispielen. Die Veranstaltung so wie ich sie unterrichte besteht aus drei Komponenten: der Vorlesung, der Übung und Hausaufgaben. Die Vorlesung ist zwei Stunden pro Woche und entspricht jeweils dem ersten Teil eines Kapitels im Buch. Ein Kapitel schaffen wir in ca. ein bis zwei Wochen. In den Übungen, die vier Stunden alle zwei Wochen stattfinden, widmen wir uns dann den Projekten. Dabei schaffen wir zwischen zwei und vier der Projekte pro Übung. In der Übung arbeiten die Studierenden in Teams, meist zu zweit, um sich gegenseitig zu helfen. Die Hausaufgaben werden im zweiwöchentlichen Rhythmus bearbeitet und benötigen ca. 4 bis 5 Stunden. Es ist wichtig, dass die Studierenden alleine an der Hausaufgabe arbeiten.

Wo[Bearbeiten]

finde ich die Beispiele und den Quellcode? Die gibt es auf der Webseite http://www.VariationenZumThema.de als ZIP Datei zum runterladen. Auch Updates, Links zur Entwicklungsumgebung, das Buch in PDF Version gibt's dort.

Darf ich[Bearbeiten]

die Beispiele verwenden, oder das Buch kopieren? Ja, idealerweise aber nicht für kommerzielle Zwecke. Verhindern kann ich das aber wahrscheinlich nicht. Der Quellcode steht unter der MIT License (http://choosealicense.com/licenses/mit/).

Warum[Bearbeiten]

dieses Buch? Seit 1996 programmiere ich Java, und seit ca. 2003 halte ich die Vorlesung "Internetprogrammieren" in verschiedenen Formen, Studiengängen und Hochschulen. All die Zeit habe ich immer wieder versucht meine Vorlesung an diesem oder jenem Buch zu orientieren. Habe aber nie eines gefunden, auch kein teures, das ich wirklich empfehlen könnte, außer evtl. das Buch von Herrn Stark [1], und das gibt's nicht mehr. Auch haben die meisten Bücher viel zu wenige Beispiele, vor allem kleine Beispiele. Deswegen.

Woher[Bearbeiten]

kommen die Ideen? Mehr als die Hälfte der Ideen basieren auf meinem ersten Buch [2], das ja wiederum von Mehran Sahami's Vorlesung [3] inspiriert wurde, die ja wiederum auf dem Buch von Eric Roberts [4] basiert. Der Rest hat sich einfach so ergeben in den Jahren.

Referenzen[Bearbeiten]

[1] J2EE (Master Class), von Thomas Stark

[2] Variationen zum Thema: Java: Eine spielerische Einführung, von Ralph P. Lano

[3] Programming Methodology, CS106A, von Mehran Sahami, https://see.stanford.edu/Course/CS106A

[4] The Art and Science of Java, von Eric Roberts, Addison-Wesley, 2008