

.png)
.png)
Java Server Pages (JSP)
Java Server Pages (JSP) یک فناوری برنامه نویسی سمت سرور است که منجر به ساخت برنامه های مبتنی بر وب می شود این عمل با یک روش پویا و مستقل از پلتفرم انجام می شود. JSP به پایگاه های داده سازمانی گروه API های جاوا مانند JDBC API دسترسی دارد.صفحات جاوا سرور برنامه هایی هستند که از رابط دروازه مشترک (CGI) استفاده می کنند..
مقایسه JSP با CGI
• عملکرد بسیار بهتری دارد زیرا JSP کمک می کند تا به جای داشتن فایل های CGI مجزا، عناصر پویا در صفحات HTML جاسازی شود.
• JSP قبل از پردازش با سرور کامپایل میشود، ولی CGI/Perl سرور را ملزم میکند هر بار که صفحه درخواست میشود، یک مفسر و اسکریپت هدف را بارگیری کند. صفحات JavaServer مانند سرولت ها،بر روی Java Servlets API ساخته شده اند، JSP به تمام APIهای قدرتمند مفسر در جاوا از جمله JDBC، JNDI، EJB، JAXP و غیره دسترسی دارد.
• صفحات JSP با servlet هایی ترکیب می شود که business logic مدیریت می کندو این مدل با موتورهای قالب سرولت جاوا پشتیبانی می شود.در
• JSP بخشی جدایی ناپذیر از Java EE است، ویک پلتفرم کامل برای برنامه های کاربردی کلاس سازمانی است.
• JSP میتواند همه برنامه ها و سخت افزارهای سخت تا پیچیده نقش داشته باشد.
کاربردهای JSP
همانطور که قبلا ذکر شد، JSP یکی از پرکاربردترین زبان ها در وب است. در زیر به مقایسه برخی از آنها پرداخته میشود.[1]
جدول 1- کاربردهای JSP
| مقایسه JSP با صفحات سرور فعال (ASP) | مقایسه JSP با Pure Servlets | مقایسهJSP با شاملیت سمت سرور (SSI) | |
| مزایای JSP دوچندان است. | نوشتن (و اصلاح) HTML معمولی راحت تر از داشتن println فراوانی است که HTML را تولید می کنند. | SSI در واقع فقط برای گنجاندن ساده در نظر گرفته شده است، نه برای برنامه های "واقعی" که از داده های فرمی استفاده می کنند | مقایسهJSP با جاوا اسکریپت |
| ابتدا قسمت پویا در جاوا نوشته شده است. | جاوا اسکریپت می تواند HTML را به صورت پویا روی کلاینت تولید کند | ||
| ویژوال بیسیک یا سایر زبان های خاص MS نیست، بنابراین استفاده از آن قدرتمندتر و آسان تر است. |
فناوری Java Servlet و JavaServer Pages (صفحات JSP) فناوری های سمت سرور هستند که بر بازار فناوری جاوا سمت سرور تسلط پیدا کرده اند علت علاقمندی به این فناوری ، یادگیری نسبتاً آسان آن است که پارادایم Write Once, Run Anywhere را به برنامه های وب می آورند.اگر با پیروی از بهترین شیوه ها به طور موثر استفاده شود، سرولت ها و صفحات JSP به جداسازی ارائه از محتوا کمک می کنند.
بهترین شیوهها، شیوه هایی هستند که برای توسعه برنامههای کاربردی وب با کیفیت، قابل استفاده مجدد، اثبات شده اند و به راحتی قابل نگهداری هستند و مبتنی بر سرولت و JSP هستند.به عنوان مثال، کد جاوا (اسکریپت) جاسازی شده در بخش هایی از اسناد HTML پیچیدگی در برنامه ایجاد کند که که کارآمد نیستند و استفاده مجدد، بهبود و نگهداری آنها نیز دشوار است ولی اگر شیوه ای مناسب استفاده شود می تواند همه اینها را تغییر دهند.
در این شکل مشاهده می کنید که یک کلاینت درخواستی را به سرور ارسال می کند و سرور پاسخ را تولید می کند، آن را تجزیه و تحلیل می کند و پاسخ را برای مشتری ارسال می کند.
چرخه زندگی Servlet
کل چرخه زندگی یک سرولت توسط ظرف Servlet مدیریت می شود که از javax.servlet استفاده می کند.
چرخه زندگی Servlet عمدتاً از چهار مرحله می گذرد:
Servlet Life Cycle-Servlet and JSP tutorial- Edureka
بارگیری یک Servlet
هنگامی که یک سرور راه اندازی می شود، کانتینر servlet مستقر می شود و همه servlet ها را بارگذاری می کند.
راه اندازی Servlet
در مرحله بعد، یک servlet با فراخوانی متد ()init مقداردهی اولیه می شود.متد Servlet.init () توسط ظرف Servlet برای اطلاع رسانی فراخوانی می شودکه این نمونه Servlet با موفقیت نمونه سازی شده است و در شرف راه اندازی است.
رسیدگی به درخواست
سپس، servlet متد ()service را برای پردازش درخواست مشتری فراخوانی می کند و برای اطلاع دادن به Servlet در مورد درخواست های مشتری فراخوانی می شود.
خاتمه servlet
در نهایت، یک servlet با فراخوانی ()struct خاتمه می یابد.متد ()struct تنها یک بار در طول عمر یک Servlet اجرا می شود و پایان نمونه Servlet را نشان می دهد.متدهای init() وstruct() فقط یکبار فراخوانی می شوند.
مراحل ایجاد Servlet
برای ایجاد یک servlet باید چند مرحله را به ترتیب دنبال کرد که به شرح زیر است:
ایجاد ساختار دایرکتوری
ایجاد Servlet
کامپایل کردن Servlet
اضافه کردن نقشه ها به فایل web.xml
راه اندازی سرور و پروژه
دسترسی به به servlet [4]
اکنون، بر اساس مراحل بالا، اجازه دهید یک برنامه برای درک بهتر نحوه کار یک servlet ایجاد کنیم.
صفحات جاوا سرور (JSP)
فناوری JSP – یک برنامه باز و رایگان است که توسط Sun Microsystems به عنوان جایگزینی برای فناوری صفحات سرور فعال (ASP) مایکروسافت و یک جزء کلیدی از مشخصات Java 2 Enterprise Edition (J2EE) توسعه یافته است.بسیاری از سرورهای کاربردی تجاری موجود (مانند BEA WebLogic، IBM WebSphere، Live JRun، Orion و غیره) از فناوری JSP پشتیبانی می کنند.
کارکرد صفحات JSP
صفحه JSP اساسا یک صفحه وب با HTML قدیمی و بیت های کد جاوا است. پسوند فایل یک صفحه JSP به جای html یا .htm .jsp. است که به سرور می گوید که این صفحه نیاز به مدیریت خاصی دارد.و با یک افزونه سرور یا یک افزونه دیگر عمل خواهند کرد هنگامی که یک صفحه JSP فراخوانی می شود، (توسط موتور JSP) در یک سرور جاوا کامپایل می شود.در این مرحله سرولت با موتور سرولت مدیریت می شود سپس موتور servlet کلاس servlet را (با استفاده از بارگذار کلاس) بارگذاری می کند و آن را برای ایجاد HTML پویا برای ارسال به مرورگر اجرا می کند، (شکل1)
servlet هر شی لازم را ایجاد می کند، و هر شی را به صورت رشته ای در جریان خروجی مرورگر می نویسد. دفعه بعد که صفحه درخواست شد،موتور JSP سرولت بارگذاری شده را اجرا می کند مگر اینکه صفحه JSP تغییر کرده باشد،در این صورت به طور خودکار در یک سرورلت دوباره کامپایل شده و اجرا می شود.
-min.png)
شکل 1: جریان درخواست/پاسخ فراخوانی صفحه JSP
روش های مهم سرولت ها و صفحات JSP
تاکید بر استفاده از بهترین شیوه های JSP صرفاً به این دلیل است که صفحات JSP به طور گسترده تری مورد استفاده قرار می گیرند (احتمالاً به این دلیل که فناوری JSP جداسازی ارائه از محتوا را ترویج می کند).
یکی از بهترین روشهایی که استفاده از سرولتها و صفحات JSP را ترکیب و یکپارچه میکند، الگوی طراحی مدل View Controller (MVC) است .
یکپارچه سازی Servlets و JSP Pages
برای ساخت برنامه های کاربردی وب با استفاده از صفحات JSP با توجه به مشخصات JSP از دو روش استفاده می شود که عبارتند از معماری JSP مدل 1 و مدل 2 . تفاوت این مدل ها در مکانی است که پردازش در آن انجام می شود در معماری مدل 1،همانطور که در شکل 2 نشان داده شده است، صفحه JSP
مسئول پردازش درخواست ها و ارسال پاسخ به مشتریان است.
-min.png)
شکل 2: معماری JSP مدل 1
در معماری مدل 2، servlets و صفحات JSP ادغام می شود. در این حالت، صفحات JSP برای لایه ارائه کاربرد دارد و از servlet ها برای پردازش وظایف استفاده می شود.servlet به عنوان یک کنترل کننده مسئول پردازش درخواست ها و ایجاد هر گونه Bean مورد نیاز صفحه JSP عمل می کند.کنترل کننده همچنین مسئول تصمیم گیری برای ارسال درخواست به صفحه های مورد نظر در JSP است. صفحه JSP ،اشیاء را که servlet ساخته است را بازیابی می کند و محتوای پویایی را استخراج می کند که برای درج در قالب مناسب باشد.
-min.png)
شکل 3: معماری JSP مدل 2
این مدل از مدل نمایش کنترلر (MVC)استفاده می کند و الگوی طراحی سبک معماری را ترویج می کند.در حال حاضر چندین چارچوب وجود دارد که الگوی طراحی را به شکلی مفیدپیادهسازی میکند و ارائه را واقعاً از محتوا جدا میکند. Apache Struts یک چارچوب رسمی برای MVC است.این چارچوب به بهترین وجه برای برنامههای پیچیده
استفاده میشود که در آن یک درخواست یا ارسال فرم میتواند به نتایج کاملاً متفاوتی منجر شود.[2]
جدول 2- تفاوت بین JSP و Servlet
| JSP | سرولت |
| ترکیبی از HTML و جاوا | جاوا |
| HTML پویا تولید می کند | محتوای پویا تولید می کند |
| منطق Presentation ، برای ایجاد صفحات وب پویا با پردازش سمت سرور استفاده می شود. | منطق Backend برای رسیدگی به درخواست های سمت سرور و تولید محتوای پویا استفاده می شود. |
| مشاهده کامپوننت | جزء کنترل کننده |
| کوتاه تر و خواندن آسان تر | طولانی تر و پیچیده تر |
| کندتر از سرولت ها | سریعتر از JSP |
| .jsp | جاوا |
نتیجه گیری
JSP و Servlet دو ابزار مهمی هستند که در ایجاد برنامه های وب جاوا کاربرد دارند آنها مزایای بسیاری مانند مدیریت کاربران، قابلیت اطمینان و ویژگی های امنیتی دارند. این که کدام ابزار انتخاب شود ، این، به نیازهای خاص برنامه وب بستگی دارد و گاهی اوقات استفاده از هر دو می تواند ایده خوبی برای به دست آوردن ویژگی های مورد نظر باشد.[3]
منبع
1. https://www.tutorialspoint.com/jsp/index.htm
2. Qusay H. Mahmoud,2003, Servlets and JSP Pages Best Practices, https://www.oracle.com/technical-resources/articles/javase/servlets-jsp.html
3. Kanak Rana,2023, Difference Between Servlet and JSP, https://www.codingninjas.com/studio/library/difference-between-jsp-and-servlet
4. Vaidya ,Neha ,2023, Servlet and JSP Tutorial- How to Build Web Applications in Java?, https://www.edureka.co/blog/servlet-and-jsp-tutorial/
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 10 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی می باشد
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |


![مشاهده جزییات و سرفصل های دوره Spring Batch [اینجا کلیک کنید]](https://dl.javapro.ir/spring_batch/springbatch_pop.png)


![مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو [کلیک کنید]](https://dl.javapro.ir/image/marketing/banerday1403springboot.png)
























.png)
-min.png)
-min.png)
-min.png)


-min.png)









-min.png)

.jpg)