JSP vs Servlets
A Servlet یک جزء نرم افزار سمت سرور است که به زبان جاوا نوشته شده و در یک محیط کانتینر سازگار معروف به کانتینر Servelt (مانند Apache Tomcat) اجرا می شود. سرولت ها عمدتاً در پیاده سازی برنامه های کاربردی وب که صفحات وب پویا تولید می کنند استفاده می شوند. با این حال، آنها می توانند هر نوع محتوای دیگری مانند XML، متن، تصاویر، کلیپ های صوتی، PDF، فایل های Excel را به صورت برنامه ای تولید کنند.
یک Servlet نوشته شده برای تولید مقداری HTML ممکن است به این شکل باشد:
کلاس عمومی MyServlet HttpServlet را گسترش می دهد {
protected void doGet (درخواست HttpServletRequest، پاسخ HttpServletResponse) ServletException را پرتاب می کند، IOException {
PrintWriter w=answer.getWriter();
w.write("");
w.write("");
Date d=new Date();
w.write(d.toString());
w.write("");
w.write("");
}
}
کد بالا حاوی ترکیبی از کد منبع HTML و جاوا است. چنین چیزی چندان قابل خواندن و نگهداری نیست. JSP که مخفف JavaServer Pages است جایگزین بهتری را ارائه می دهد. به عنوان مثال، قسمت زیر قطعه ای از کد JSP است که خروجی یکسانی دارد:
نویسندگان صفحه وب، نوشتن و نگهداری JSP را آسانتر میدانند. با این حال، فایلهای JSP در زمانی که برای اولین بار به فایلهای JSP دسترسی پیدا میکنند، توسط یک ظرف Servlet به Servlet ترجمه میشوند. با این حال، نویسندگان منطق کسب و کار کار کردن با Servlets را آسانتر میدانند.
یک درخواست دریافت شده توسط یک برنامه وب باید اجرای برخی از منطق تجاری را آغاز کند و سپس یک صفحه وب نتیجه را به عنوان پاسخ ایجاد کند.در برنامه های کاربردی وب امروزی، کنترل چرخه کلی پردازش درخواست بیشتر توسط Servlets انجام می شود. به عنوان آخرین مرحله در پردازش یک درخواست، چنین Servlet به طور کلی مسئولیت تولید HTML پویا را به یک JSP واگذار می کند.