Hæld kaffe i webserveren: Java Server Pages

Java Server Pages lover at være Java-verdens svar på ASP og PHP. Men i virkeligheden er det noget lidt andet. Find ud af hvad det er, og læs om styrkerne og svaghederne i konceptet.

JSP -hvad er det?

I juni 99 lancerede Sun Microsystems Java Server Pages (også kaldet JSP), som er indlejret Java-kode i HTML-dokumenter, ligesom det kendes fra Microsofts ASP-teknologi og PHP i Open Source/Unix-miljøet. Java havde i forvejen en glimrende placering i form af servlets, som er Java-programmer til servere.

Men det er ikke så smart, som det lyder. Problemet med at skrive binære programmer til brug i webservere er, at programmets output er HTML - og en stor del af HTML-koden er jo design og formattering. Hver gang, sidens design skal ændres, skal der rettes i koden, og programmet skal kompileres om. Det er selvfølgelig ikke særlig hensigtsmæssigt, da design og funktionalitet ikke har noget med hinanden at gøre.

Samtidig viste scripting-sprogene sig at være rigtig populære blandt udviklere, da de er nemme at skrive og vedligeholde, og tillige med at ydelsen for scripts blev forbedret. Microsoft byggede ASP ind i sin IIS-webserver, og Apache fik sig en perlfortolker indbygget med modulet mod_perl. Før disse muligheder var til rådighed, måtte udvikleren benytte CGI som bindeled mellem server og fortolker, og alt i alt gav det en temmelig dårlig ydelse.

Sun, der gerne ser Java bygget ind i alt der kan håndtere bits, ville ikke stå tilbage for nogen, og firmaet introducerede i juni 99 Java Server Pages (JSP) for omverdenen.

JSP ligner umiddelbart de andre websprog - her udskrives tallet 10 og strengen "Hallo":


<HTML>
<BODY>
<% int i = 10; %>
<%= i %>
<P>
<B><%= "Hallo" %></B>
</BODY>
</HTML>

Overfladisk set ligner JSP altså de andre scripting-sprog, men dets sigte og anvendelse er ikke helt som de andre. Hvor ASP og i særdeleshed PHP lægger op til at bygge funktionaliteten direkte i scriptet, fungerer JSP mere som en slags front-end for de servlets og JavaBeans, der så indeholder funktionaliteten. Der kan selvfølgelig siges både pro et contra om begge muligheder.

Scripts contra objekter

Scripts contra objekter
Ved at indbygge logikken ind i scripts, har man et meget fleksibelt miljø. Man kan hurtigt tilføje funktionalitet og lave ændringer, men til gengæld mister man hurtigt overblikket, og det kan blive svært at identificere problemer. Dette forstærkes yderligere af, at større applikationer ender med at sprede sig over mange scripts. Hvert enkelt script dækker så en del af de features, brugeren har, men opdelingen sker udfra et grænseflade-perspektiv, og det er ikke nogen god måde at programmere på.

Omvendt giver det nogle indlysende fordele at bygge funktionaliteten ind i binære moduler, om det så er JavaBeans, COM, CORBA-objekter eller moduler som i Apache. Man kan programmere på en fornuftig facon, og frem for alt får man gemt koden af vejen, så man ikke fristes til at lave hovsa-løsninger.

Man kan altså sige, at i systemer med en stor kompleksitetsgrad, for eksempel systemer der kræver transaktionsstyring, kan det være en rigtig god ide at bygge funktionaliteten ind i en sort kasse, der kan have sit eget stille liv.

Objekter i HTML'en

Problemet med objekter
Der nævnes ofte to problemer ved at benytte en objektorienteret tilgang i webverdenen. For det første er webbet af natur tilstandsløst. Det gør, at tilstandene, for eksempel at identificere en bruger igennem en succesiv række af forespørgsler (en session), skal bæres "ved siden af", hvor Java-objekter i modsætning hertil altid selv er bærere af deres tilstand.

I JSP skal sessioner håndteres ved et session-objekt, og det giver altså en lidt uvant konstruktion, da session-objektet lever ved siden af alle andre objekter - og ikke hænger sammen med dem.

Det andet problem er simpelt hen, at Java er et meget abstrakt sprog, hvilket gør, at der tilsyneladende skal skrives en masse kode for at producere en lille smule. Java-programmørerne kan fortælle os, at det senere hen giver os en meget velstruktureret kode, men de kodestumper, der indlejres, er jo som regel småtterier, da hovedparten af logikken er placeret i en servlet, og da kan Java virke lidt tungt.

Hertil har Sun fundet på, at lave en række tags, der tager sig af ofte udførte opgaver. Problemet er her, at udvikleren også skal have styr på disse tags ud over Java og de JSP-specifikke objekter. Det smarte er, at det giver en nem måde at hente og sætte værdier, for eksempel fra en JavaBean:


<jsp:setProperty id="localName" property="serialNumber" value="string" />

Som en sidste ting kan det nævnes, at Java ikke er noget nemt sprog at lære - slet ikke i sammenligning med VBScript, JScript/Javascript, PHP og Perl, som er de foretrukne sprog i scripting-miljøerne. Til gengæld kan man en masse andre ting med Java end bare JSP, når man først har lært det.

Kvaliteterne i JSP
Der kan retfærdigvis også siges mange gode ting om JSP. For det første er der de førnævnte fordele ved at indkapsle logik, som udviklere i Microsoft-miljøer også kan opnå med COM-objekter. Udover det kan der nævnes de almene egenskaber for Java:

  • Exceptionel portabilitet
  • Sikkerhedsmodel ved distribuerede applikationer
  • Objektorientering og "hård" typekontrol
  • Meget stort udvalg af features i klassebiblioteker
  • Strømlinede API'er (Application Programming Interfaces)

    Blandt de store firmaer, der godt kan lide Java, finder vi IBM, og det er jo ikke så mærkeligt, da firmaet producerer en mængde forskellige operativsystemer. Ved store, dyre udviklingsprojekter er der altså en klar pointe i portabilitet.

    Relevant link:
    CNet: Intro to JavaServer Pages

  • Læses lige nu

      Netcompany A/S

      IT Manager

      Københavnsområdet

      PensionDanmark

      Incident & Problem Manager

      Københavnsområdet

      Forsvarsministeriets Materiel- og Indkøbsstyrelse

      Cyberdivisionen søger RPA-udvikler til Robotics Operational Center (ROC)

      Københavnsområdet

      Computerworld Events

      Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

      Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
      Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
      Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
      Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

      It-løsninger | København Ø

      Automatisering med Copilot & Agentic AI

      Høst viden og erfaringer fra andre om, hvordan Copilot og Agentic AI i praksis kan skabe værdi og fleksibilitet i din organisation.

      Sikkerhed | Online

      Erfaringer fra frontlinjen: Sådan ændrer trusselsbilledet sig

      Kort og fokuseret digitalt event: Erfaren frontkæmper fra den digitale sikkerhedsverden giver dig overblik og konkrete anbefalinger til det aktuelle trusselsbillede.

      Andre events | Valby

      CIO Challenges: Teknologi, transformation og ledelse der flytter forretningen

      Hvordan moderniseres en it-platform uden legacy? Hvordan skaber man nye AI‑ og cloud‑drevne forretningsmodeller – uden at miste medarbejdere eller brugere undervejs? På CIO Challenges 2025 får du hands‑on erfaringer fra fire danske CIO’er, der...

      Se alle vores events inden for it

      Navnenyt fra it-Danmark

      Adeno K/S har pr. 22. september 2025 ansat Steen Riis-Petersen som ServiceNow Expert. Han kommer fra en stilling som Senior Manager hos Devoteam A/S. Nyt job
      Enterprise Rent-A-Car har pr. 1. september 2025 ansat Christian Kamper Garst som Senior Key Account Manager. Han skal især beskæftige sig med at vinde markedsandele i hele Norden som led i en storstilet turnaround-strategi. Han kommer fra en stilling som Salgsdirektør hos Brøchner Hotels. Nyt job

      Christian Kamper Garst

      Enterprise Rent-A-Car

      Norriq Danmark A/S har pr. 1. september 2025 ansat Thea Scheuer Gregersen som Finace accountant. Hun skal især beskæftige sig med håndteringer af bl.a. bogføring og finansiel rapportering på tværs af selskaberne. Hun er uddannet Bachelor´s degree i Business Administration & Economics og en Master of Sustainable Business degree. Nyt job

      Thea Scheuer Gregersen

      Norriq Danmark A/S

      Signifly har pr. 1. august 2025 ansat Anders Kirk Madsen som Tech Lead. Anders skal især beskæftige sig med at hjælpe Signiflys offentlige og private kunder med at styrke forretningen gennem teknisk solide løsninger. Anders kommer fra en stilling som Business Architect hos SOS International. Nyt job