Wat is het JSP-bestandsformaat?
.jsp is een server-side bestand dat wordt gebruikt voor het genereren van dynamische webinhoud. Oorspronkelijk geïntroduceerd door Sun Microsystems in 1999 als JavaServer Pages, werd het formaat in 2019 omgedoopt tot Jakarta Server Pages toen het beheer overging naar de Eclipse Foundation onder de Jakarta EE-paraplu. Net als PHP of ASP bestanden, bevat een .jsp-bestand uitvoerbare code binnen HTML-markup - maar de ingebedde taal is Java. Het bestand slaat de programmalogica op de server op, die deze verwerkt en de voltooide HTML-pagina naar de browser stuurt.
.jsp-bronbestanden zijn platte tekst. Java-code wordt ingebed via scriptlet-tags (<% ... %>), expressie-tags (<%= ... %>), of de JSP Expression Language (${...}). Moderne projecten gebruiken vaak JSTL om de bedrijfslogica buiten het sjabloon te houden. Als de pagina is geschreven als goedgevormde XML, wordt in plaats daarvan de extensie .jspx gebruikt.
Overwegingen aan de clientzijde. De gebruiker hoeft niet te weten welke technologie een bepaalde website gebruikt. De browser ontvangt alleen de HTML-uitvoer die door de server is gegenereerd - de .jsp-laag is volledig verborgen voor bezoekers. Er is geen Java Virtual Machine of speciaal gereedschap nodig om een .jsp-bronbestand te openen; een standaard teksteditor is voldoende.
Beveiliging & veiligheid
RISICO: LOWDe .jsp-extensie zegt op zichzelf niets over de veiligheid - in een URL is het gewoon een normale webpagina; behandel de site als elke andere website (let op phishing op inlog- of bankpagina's). Een gedownloade .jsp is meestal onschadelijke HTML of een document met een verkeerde naam, en het openen ervan in een teksteditor is altijd veilig. Wees alleen voorzichtig als er een onverwachte .jsp-download binnenkomt van een onbetrouwbare bron - inspecteer deze als tekst voordat u de naam wijzigt, en voer nooit iets uit dat het probeert te starten. (Voor serverbeheerders zijn kwaadaardige geüploade .jsp „web shells” een probleem aan de serverzijde, geen risico voor iemand die het bestand alleen bekijkt.)
Formaatdetails
in een notendopProgramma's die JSP-bestanden openen
Technische details
diepe specificaties| Bestandstype | Server-side Java-websjabloon; broncode in platte tekst die HTML-markup mengt met Java-scriptlets, richtlijnen en EL-expressies |
| MIME-type | text/html |
| Tekstcodering | Platte UTF-8 (charset gedeclareerd in de `<%@ page %>` richtlijn; andere coderingen zoals ISO-8859-1 worden ondersteund) |
| Binaire handtekening | Geen - `.jsp`-bestanden bevatten geen magic bytes; broncode opent gewoonlijk met `<%@ page ... %>` of een DOCTYPE/HTML-declaratie |
| Scriptlet-syntaxis | `<% ... %>` voor codeblokken, `<%= ... %>` voor uitvoerexpressies, `<%! ... %>` voor veld- en methodedeclaraties |
| Expression Language | `${...}` voor onmiddellijke evaluatie; `#{...}` for uitgestelde evaluatie - beide hebben toegang tot beans en scoped variabelen zonder ruwe Java in te bedden |
| Serververeiste | Vereist een Jakarta EE-compatibele servletcontainer (Apache Tomcat, Eclipse Jetty, WildFly, enz.); kan niet worden geserveerd door een gewone HTTP-server |
| Compilatiemodel | Container vertaalt `.jsp` automatisch naar een Java-servletbronbestand, compileert het naar `.class` bytecode, en buffert en hergebruikt vervolgens de gecompileerde klasse |
| Op XML gebaseerde variant | `.jspx` (JSP Document) - strikt goedgevormd XML-dialect; tag-bibliotheken waarnaar wordt verwezen via XML-namespaces in plaats van `<%@ taglib %>` |
| Ondersteuning voor tag-bibliotheken | JSTL (Jakarta Standard Tag Library) en aangepaste tag-bibliotheken beschreven door `.tld`-bestanden verminderen de afhankelijkheid van scriptlets |
| Implementatieverpakking | Gebundeld in een `.war` (Web Application Archive) samen met servlets, klassen en statische bronnen voor implementatie in een servletcontainer |
| Implicit scope objects | Vier ingebouwde scopes - page, request, session, en application - maken attributen toegankelijk gedurende de bijbehorende levensduur |
| Impliciete variabelen | Negen vooraf gedefinieerde variabelen beschikbaar zonder declaratie: `request`, `response`, `out`, `session`, `application`, `config`, `pageContext`, `page`, `exception` |
| Beheergeschiedenis | Gemaakt door Sun Microsystems (JSP 1.0, 1999); werd onderdeel van Java EE; overgedragen aan Eclipse Foundation als Jakarta Server Pages onder Jakarta EE in 2019 |
| Uitgebracht | 1999 (JavaServer Pages 1.0); renamed Jakarta Server Pages under Jakarta EE (2019) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | jakarta.ee |
JSP conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over JSP-bestanden.