संरचनात्मक रूप से, JSP को Java servlets (जावा सर्वलेट) के उच्च स्तरीय एबस्ट्रेकशन के रूप में देखा जा सकता है। सर्वलेट और JSP दोनों मूल रूप से Sun Microsystems (सन माइक्रोसिस्टम्स) में विकसित किए गए। JSP specification (JSP विनिर्देशन) के 1.2 संस्करण के साथ शुरू करते हुए, JavaServer Pages (जावासर्वर पेजेस) का विकास जावा समुदाय प्रक्रिया के तहत किया गया है। JSR 53 JSP 1.2 और सर्वलेट 2.3 विनिर्देशों दोनों को परिभाषित करता है और JSR 152 JSP 2.0 विनिर्देश को परिभाषित करता है। मई 2006 को JSP 2.1 विनिर्देश को जावा EE 5 के भाग के रूप में JSR 245 के तहत जारी किया गया है। JSPs को एक JSP compiler (JSP कम्पाइलर) के द्वारा सर्वलेट्स में कम्पाइल किया जाता है। कम्पाइलर या तो जावा कोड में एक सर्वलेट उत्पन्न करता है जो फिर जावा कम्पाइलर के द्वारा कम्पाइल किया जाता है, या यह बाईट कोड के लिए सर्वलेट को कम्पाइल कर सकता है जो प्रत्यक्ष रूप से निष्पादित किया जा सकता है।
JSPs की व्याख्या ओन-द-फ्लाई भी की जा सकती है, इससे पुनः लोड परिवर्तनों में लगने वाला समय कम हो जाता है। चाहे JSP कम्पाइलर एक सर्वलेट के लिए जावा स्रोत कोड को उत्पन्न करे या सीधे बाईट कोड को उत्पन्न करे, यह इस बात को समझने में मदद करता है की JSP कम्पाइलर कैसे पेज को जावा सर्वलेट में रूपांतरित कर देता है।

उदाहरण के लिए, निम्न इनपुट JSP पर और इसके परिणामी उत्पन्न जावा सर्वलेट पर विचार करें।
इनपुट JSP

परिणामी सर्वलेट 

package jsp_servlet;
import java.util.*;
import java.io.*;
import javax.servlet. *;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

throws javax.servlet.ServletException,
Object page = this;
try {
</td></td></table>

सर्वलेट्स
अंतर्निहित वस्तुएं (Implicit Objects)
jsp: include
jsp:forward