Skip to main content
Dat 2. semester
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Hvad er Javalin?

Javalin Logo

Javalin er et lille webframework til Java og Kotlin.

Det kan vi bruge til at lave webapplikationer og webservices i Java. Javalin hjælper os blandt andet med at:

  • modtage HTTP-requests fra en klient
  • finde ud af, hvad klienten beder om
  • køre den Java-kode, der hører til requesten
  • sende et HTTP-response tilbage til klienten
  • håndtere URL’er og HTTP-metoder som GET, POST, PUT og DELETE
  • sende HTML eller JSON tilbage til klienten

Javalin er bygget oven på Jetty, som er en webserver til Java. Javalin tager sig altså ikke af hele verden omkring webudvikling. Det giver os et relativt lille lag oven på en webserver, så vi kan arbejde med HTTP fra vores Java-program uden først at skulle lære en stor mængde serverkonfiguration.

Et helt lille Javalin-program kan se sådan ud:

import io.javalin.Javalin;

void main() {
    var app = Javalin.create(config -> {
        config.routes.get("/", ctx -> ctx.result("Hej verden"));
    }).start(7070);
}

Når programmet kører, har vi en webserver, som lytter på port 7070.

Hvis vi åbner

http://localhost:7070/

i en browser, sender browseren en HTTP-request til serveren.

Javalin finder den route, der passer til requesten:

GET /

og kører koden:

ctx.result("Hej verden");

Serveren sender derefter et HTTP-response tilbage til browseren.

Det er i sin enkleste form det, vi skal bruge Javalin til på dette semester.

Javalin er ikke selve webserveren

Det er værd at skelne mellem nogle begreber, som ellers hurtigt bliver blandet sammen.

HTTP er en protokol. Den beskriver blandt andet, hvordan en klient og en server kommunikerer.

En webserver er et program, der kan modtage og behandle HTTP-requests og sende HTTP-responses tilbage.

Jetty er en Java-webserver, som blandt andet kan håndtere HTTP-kommunikationen.

Javalin er et Java/Kotlin-framework, som gør det lettere at bygge en webapplikation oven på Jetty.

Man kan derfor tænke vores stack sådan:

Browser
HTTP
Jetty
Javalin
Din Java-kode
Database / andre services

Det er denne sammenhæng, der er interessant for os.

Vi vil ikke bare lære Javalin. Vi vil forstå, hvad der faktisk sker, når vores Java-program bliver til en webapplikation.

Javalin beskriver selv frameworket som et simpelt webframework og lægger vægt på, at der er få koncepter at lære og meget lidt “magisk” framework-adfærd.

Hvorfor bruger vi Javalin?

Der er flere grunde til, at Javalin passer godt til vores undervisning.

For det første kan vi komme hurtigt fra et almindeligt Java-program til en fungerende webapplikation. Javalin kører med en indlejret Jetty-server, så vi behøver ikke installere og konfigurere en separat applikationsserver for hvert projekt.

For det andet er Javalin relativt lille. Det betyder, at vi kan se sammenhængen mellem:

HTTP-request
route
Java-kode
HTTP-response

uden at frameworket gemmer hele processen bag mange lag af konfiguration og annotationer.

For det tredje passer Javalin godt til det, vi skal arbejde med på 2. semester: Vi skal kunne bygge en fullstackapplikation, hvor Java-backend, database og frontend hænger sammen.

Javalin er derfor ikke målet i sig selv. Javalin er et værktøj, der hjælper os med at bygge en webapplikation og samtidig forstå, hvad der foregår under motorhjelmen.