JavaServer Pages (JSP) on palvelinpuolen ohjelmointitekniikka, joka mahdollistaa dynaamisten verkkosivujen ja sovellusten luomisen. Tämä saavutetaan upottamalla Java -koodi HTML-, XML-, DHTML- tai muihin asiakirjatyyppeihin. Kun asiakas, kuten verkkoselain, pyytää Java -sovellussäiliötä, joka on tyypillisesti verkkopalvelin, staattinen sivu muunnetaan kulissien taakse ja näytetään dynaamisena sisällönä katsojalle. On arveltu, että JSP julkaistiin kilpailemaan PHP: n kanssa, joka on yleisesti käytetty avoimen lähdekoodin ohjelmointikieli.
Vaikka JSP liittyy joskus Active Server Pages (ASP) -palveluun, nämä ovat itse asiassa kaksi eri tekniikkaa. Suurin ero on se, että ASP on Microsoftin kehittämä ja sitä pidetään suurelta osin kehyksenä. Tämä johtuu siitä, että se pystyy tukemaan monenlaisia ohjelmointikieliä, jotka Microsoftin® Component Object Model (COM) mahdollistaa. Sun Microsystemsin® luoma JSP: tä pidetään olio-ohjelmointikielenä.
JavaServer Pages -tekniikka mahdollistaa Java -koodin ja tiettyjen ennalta määritettyjen toimintojen lisäämisen staattiseen verkkosivun sisältöön. Tämä koodi kootaan ajon aikana jokaiselle sivulle tehdylle pyynnölle. Palvelinta, Java-koodia ja/tai mahdollisesti mukautettua ohjelmointia ohjaa esiasennettu ohjelmistosovellus, joka tunnetaan nimellä virtuaalikone (VM). Tämä VM integroituu isäntäkäyttöjärjestelmään. Yleisin JSP -sovellusten käyttämiseen käytettävä virtuaalikone on Java Virtual Machine ™ (JVM).
Teknisestä näkökulmasta JSP: tä voidaan pitää Java-servlettien korkean tason abstraktiona, koska ne toimivat olennaisesti niiden päällä. JavaServer -sivut kootaan yleensä Java -kääntäjällä. Tämä kääntäjä joko luo servletit Java -koodin muodossa tai tavukoodin, joka voidaan suorittaa suoraan. Koska ne voidaan tulkita heti pyyntöjen jälkeen, staattisen sivun muuttaminen dynaamiseksi sisällöksi kuluva aika lyhenee usein huomattavasti.
Monet ohjelmoijat suosivat JSP: tä, koska se yksinkertaistaa kehitystä sallimalla Java -koodin lisäämisen suoraan vakiotekstitiedostoihin. Se on myös itsenäinen, eri alustojen välinen, kannettava kieli, joka on Java-moton “kirjoita kerran, juokse missä tahansa” mukaisesti. Kielellä on mahdollisuus erottaa sisältö sivun perustasta, ja sen avulla ohjelmoijat voivat luoda uuden koodin riippumatta olemassa olevasta työstä. JSP: tä pidetään suurelta osin vankkana ja tehokkaana tekniikkana sekä ohjelmoinnin palvelin- että asiakaspuolen kannalta.