**صفحات سرور جاکارتا** (به انگلیسی: Jakarta Server Pages) با کوته‌نوشت **JSP** (جی‌اس‌پی)، یک فناوری از سکوی جاواست که به توسعه‌دهندگان نرم‌افزارِ سرورها کمک می‌نماید تا صفحات پویا مبتنی بر اچ‌تی‌ام‌ال و ایکس‌ام‌ال یا اسناد دیگری را ایجاد نمایند. اولین جی‌اس‌پی از سوی سان میکروسیستمز در سال ۱۹۹۹(۱۳۷۸) در پاسخ به ای‌اس‌پی و پی‌اچ‌پی ارائه شد. جی‌اس‌پی برای این موضوع طراحی شده‌است که محیط جاوا، به اندازۀ کافی برای محیط وب پشتیبانی انجام نداده‌است.

برای استقرار و اجرا، کانتِینِر وب متناسب به همراه سرولت نیاز است. جاوا سرولت و صفحات جاوا، از سوی فرایند جمعیت جاوا و سان مورد پشتیبانی قرا می‌گیرد.

دیدگاه
------

از لحاظ معماری، جی‌اس‌پی انتزاعی سطح بالا از جاوا سرولت‌ها ست. صفحات جی‌اس‌پی در سرور بارگذاری شده و از سوی ساختار مخصوصی که بسته‌های سرور جاوا بر روی آن نصب شده، برنامۀ وبِ جاوای ایی‌ایی اجرا می‌شود. این بسته‌ها در فایل‌های با پسوندهای `war.` و `ear.` قرار گرفته‌اند

جی‌اس‌پی، کدهای جاوا و همچنین فعالیت‌های از پیش تعریف شده با محتوای ایستا را ترجمه می‌نماید تا بر روی سرور اجرا شود و اسناد مبتنی بر اچ‌تی‌ام‌ال و ایکس‌ام‌ال را تولید و ارائه نماید. صفحات ترجمه‌شده و هر کتابخانۀ همراهی که از بایت‌کد جاوا استفاده می‌نماید, باید در یک ماشین مجازی جاوا (جی‌وی‌ام)اجرا شود. این ماشین مجازی باید بر روی میزبان نصب شده باشد تا محیط انتزاعی-طبیعی را فراهم نماید.

نمونه
-----

جی اس پی
جی‌اس‌پی‌ها در سرولت‌ها توسط کامپایلر جی‌اس پی ترجمه می‌شود. کامپایلر نیز به نوبۀ خود کد جاوایی را تولید می‌نماید که توسط کامپایلر جاوا ترجمه شده یا اینکه مستقیماً به بایت کد تبدیل شده که مستقیم قابل اجراست. جی‌اس‌پی‌ها قادرند تا اصطلاحاً به صورت تفسیر در هوا باشد تا زمان لازم برای بازیابی تغییرات کاهش یابد.

فارغ از این موضوع که مترجم جی‌اس‌پی کد منبع جاوا را برای سرور تولید نماید یا بایت کد را مستقیماً تولید نماید. کد جی‌اس‌پی ورودی و جاوا سرولت ایجاد شدۀ زیر را در نظر بگیرید:

**جی‌اس‌پی** 

```
 <٪@ page errorPage="myerror.jsp" ٪>
 <٪@ page import="com.foo.bar" ٪>

 <html>
 <head>
 <٪! int serverInstanceVariable = 1;٪>

 <٪ int localStackBasedVariable = 1; ٪>
 <table>
 <tr><td><٪= toStringOrBlank( "expanded inline data "+ ۱ ) ٪></td></tr>

```

**سرولت خروجی**

```
 package jsp\_servlet;
 import java.util.\*;
 import java.io.\*;
 import javax.servlet.\*;
 import javax.servlet.http.\*;
 import javax.servlet.jsp.\*;
 import javax.servlet.jsp.tagext.\*;

 import com.foo.bar; // Imported as a result of <٪@ page import="com.foo.bar" ٪>
 import …

 class \_myservlet implements javax.servlet.Servlet, javax.servlet.jsp.HttpJspPage {
 // Inserted as a
 // result of <٪! int serverInstanceVariable = 1;٪>
 int serverInstanceVariable = 1;
 …

 public void \_jspService( javax.servlet.http.HttpServletRequest request,
 javax.servlet.http.HttpServletResponse response )
 throws javax.servlet.ServletException,
 java.io.IOException
 {
 javax.servlet.ServletConfig config = …; // Get the servlet config
 Object page = this;
 PageContext pageContext = …; // Get the page context for this request
 javax.servlet.jsp.JspWriter out = pageContext.getOut();
 HttpSession session = request.getSession( true );
 try {
 out.print( "<html>\r\n" );
 out.print( "<head>\r\n" );
 …
 // From <٪ int localStackBasedVariable = 1; ٪>
 int localStackBasedVariable = 1;
 …
 out.print( "<table>\r\n" );
 out.print( "<tr><td>" );
 // From <٪= toStringOrBlank( "expanded inline data "+ ۱ ) ٪>
 out.print( toStringOrBlank( "expanded inline data "+ ۱ ) );
 out.print( "</td></tr>\r\n" );
 …
 } catch ( Exception \_exception ) {
 // Clean up and redirect to error page in <٪@ page errorPage="myerror.jsp" ٪>
 }
 }
 }

```

جی‌ای‌پی ۲٫۰
------------

مشخصات نگارش جدید جی‌اس‌پی شامل ویژگی‌های جدید برای بهبود بهره‌وری برنامه‌نویسی ارائه نموده‌است. 

* یک عبارت زبانی (به انگلیسی: Expression Language) که به توسعه‌دهندگان این امکان را می‌دهد تا قالب‌هایی شبیه جاکارتا ولوسیتی را ارائه دهد.
* راهی ساده‌تر و سریع‌تر برای نمایش مقادیر پارامترها
* راهی سریعتر برای بین‌های متداخل

سکوی جاوا، نسخه سازمانی نگارش پنجم، بر روی توسعۀ ساده‌تر با استفاده از زبان جاوا تمرکز نموده‌است.

جستارهای وابسته
---------------

* ای‌اس‌پی
* پی‌اچ‌پی
* سکوی جاوا

برای مطالعه بیشتر
-----------------

* هنس، برجستن (۱۳۸۲). *صفحات سرور جاوا، ویرایش سوم*. ج. ۳. رسانه اوریلی. شابک ۹۷۸-۰-۵۹۶-۰۰۵۶۳-۴.
* هانا، فیل (۱۳۸۲). *جی‌اس‌پی ۲٫۰ - مرجع کامل*. ج. ۳. مک‌گرو هیل. شابک ۹۷۸-۰-۰۷۲-۲۲۴۳۷-۵.
* سیرا، کتی؛ بیتز، برت؛ باشام، برایان (۱۳۸۲). *هِد فرست سرولت و جی‌اس‌پی*. ج. ۳. رسانه اوریلی. شابک ۹۷۸-۰-۵۹۶-۰۰۵۴۰-۵.
* بروان، سان دالتون، دانیل جپ، دیو جانسون، سینگ لی و مت رابیل. *Pro JSP ۲*. ای پرس. شابک ۱-۵۹۰۵۹-۵۱۳-۰.

پیوند به بیرون
--------------

* جی‌اس‌ار ۲۵۴ (جی‌اس‌پی ۲٫۱)
* جی‌اس‌ار ۱۵۲ (جی‌اس‌پی ۲٫۰)
* جی‌اس‌ار ۵۳ (جی‌اس‌پی ۱٫۲)
* جی‌ای‌پی ۱٫۱ و ۱٫۰
* آموزش‌های جی‌اس‌پی به همراه کد منبع بایگانی‌شده در ۲۵ نوامبر ۲۰۰۹ توسط Wayback Machine
* تمرین‌های آموزش جی‌اس‌پی  بایگانی‌شده در ۲۶ نوامبر ۲۰۰۹ توسط Wayback Machine آموزش‌های عمومی با پشتیبانیِ دانشگاه جان هاپکینز
* آموزش‌های رسمی : جاو سازمانی، بخش ۵، فناوری صفحات جاوا
* صفحات جاواسرور نگارش ۱٫۲، مرجع نحوی، ، نگارش ۲٫۰
* دستورالعمال جی‌اس‌پی ۱٫۲, مگارش ۲٫۰

| * ن
* ب
* و
سکوی جاوا |
| --- |
| سکوی جاوا | 
* زبان جاوا
* جی‌وی‌ام
* نسخهٔ میکرو
* نسخهٔ استاندارد
* نسخهٔ سازمانی
* جاوا کارت

 |  |
| فناوری‌های سان | 
* اسکواک
* کیت توسعه جاوا
* اپن‌جی‌دی‌کی
* ماشین مجازی جاوا
* جاوا اف‌اکس
* Maxine VM

 |
| فناوری‌های سکو | 
* جاوا اپلت
* جاوا سرولت
* میدلت‌ها
* جی‌اس‌پی
* Web Start (jnlp)

 |
| فناوری‌های شرکت‌های دیگر | 
* JRockit
* گنو کلاس پث
* Kaffe
* TopLink
* آپاچی هارمونی
* آپاچی استراتس
* اسپرینگ فریمورک
* هایبرنیت
* JBoss application server
* آپاچی تپستری
* Jazelle

 |
| تاریخچه | 
* تاریخچه نگارش جاوا
* Java Community Process
* سان مایکروسیستمز
* Free Java implementations

 |
| زبان‌های برنامه‌نویسی اصلی | 
* BeanShell
* کلوژر
* گرووی
* اکسیژن (زبان برنامه‌نویسی)
* Java Tcl
* JRuby
* جایتون
* پراسسینگ (زبان برنامه‌نویسی)
* Rhino
* اسکالا
* بیشتر…

 |
| همایش‌های جاوا | 
* جاوا وان

 |