شروع Java Servlet
در سری مقالات آموزشی جاوا و Java Enterprise, به مبحث Java Servlet میپردازیم.
یک Java Web Application را میتوان مجموعه از منابع پویا مانند Servlet, Java Server Pages, کلاس های جاوا و jar file ها و منابع دیگری مانند صفحات html و تصاویر و دیگر چیز های مرتبط به آن دانست. برنامه های ساخته شده به عنوان war file ها میباشند.
تکولوژی های استاندار از جاوا که بر اساس پردازش های استانداردی تعریف شده اند را Java Community Process و یا به اختصار JCP میگویند و شامل :
- Servlet : در این مقاله پیرامون آن صحبت خواهیم کرد
- Java Server Pages (JSP) : فایل هایی که شامل کد های Html و جاوا میباشند. Container این فایل را در هنگام اولین دسترسی, به Servlet تبدیل میکند.
- Java Server Pages Tag Library (JSTL) : یکسری از قابلیت های هسته جاوا را در قالب tag ها برای web application ها فراهم میکند.
Java Servlet را میتوان یک تکنولوژی برای ساخت web application ها دانست. پیش از آن از CGI استفاده میشد اما اشکلات زیادی داشت. از اشکالات CGI میتوان به
- اگر تعداد client ها افزایش پیدا میکرد, مدت زمان ارسال پاسخ افزایش مییافت.
- به ازای هر درخواست یک Process جدید بر روی Web server ایجاد میکرد
- از زبان هایی ک محدود به platform بودند استفاده میکرد ( مانند c, perl و..)
اشاره کرد.
اما با تکنولوژی Java Servlet میتوان کارایی را نسبت به استفاده از CGI بهبود داد. در container برای کنترل درخواست های ارسال شده به server برای ایجاد thread ها اقدام میکند. Thread ها را میتوان به این دلایل بسیار بهتر از Process ها دانست :
- از یک فضای حافظه مشترک استفاده میکنند
- سبک تر هستند
- هزینه ارتباط Thread ها با یکدیگر بسیار کمتر از Process ها است.
در مقابل اشکالاتی که CGI داشت میتوان به این مزایای Servlet ها اشاره کرد :
- کارایی بهتر : بدلیل استفاده از Thread ها
- قابلیت جابجایی : بدلیل استفاده از زبان جاوا
- مطمئن و قوی تر بودن : بدلیل اینکه از JVM استفاده میکند و دیگر نیازی نیست نگران مسائلی مانند Garbage Collection, Memory Leak و یا مباحثی این چنین باشیم.
تصویر زیر نشان دهنده CGI است.
تصویر زیر نشان دهنده Servlet است.
مبحث بعدی که باید به آن به پردازیم Servlet Container میباشد که یک محیط اجرا برای JavaEE Applications ایجاد میکند. client در خواست یک Web page را به سرور ارسال میکند. در حقیقت برای ایجاد صفحات پویا از جاوا در Server Side استفاده میکند. همچنین بخشی از Web Server می باشد که در تعامل با Servlet برای مدیریت کردن صفحات پویا اقدام میکند. از اقدمات آن نیز میتوان به این موارد اشاره کرد :
- Life Cycle Management
- پشتیبانی از Multi Threading
- Object Pooling : با استفاده از این روش میتوان object هایی که برای ایجاد آنها هزینه زیادی لازم است را مجددا استفاده کرد
- تأمین امنیت
اکنون در قالب پروژه مقاله را ادامه میدهیم. یک پروژه جدید ایجاد میکنیم. میتوانید روش ایجاد پروژه و نصب و تست Tomcat را از اینجا مشاهده کنید.
در ابتدا فایل web.xml را مورد بررسی قرار میدهیم.
در این فایل یکسری tag هارا مشاهده میکنید :
- web-app : در این فایل tag اصلی میباشد.
- servlet : در این tag یکسری اطلاعات پیرامون Servlet تعریف میکنیم.
<servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup>
load-on-startup : این tag به این معنا میباشد که در هنگام بالاآمدن Web Logic Server تعریف میشود. این عدد باید مثبت باشد و نشان دهنده اولویت اجرا آن میباشد.
- Servlet-Maping : نشان دهنده ارتباط بین Servlet و آدرس URL میباشد. در این tag مشخص میشود که چگونه به Servlet های خود دسترسی پیدا کنید. در اینجا ما تمام URL هارا با استفاده از Servlet تعریف شده مدیریت میکنیم.
<servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern>
همچنین میتوانیم یک tag دیگر نیز به آن اضافه کنیم.
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
با استفاده از این tag مشخص میکنیم که اگر تنها url مربوط به Web Application وارد شد و صفحه خاصی مشخص نشده است به این صفحه هدایت شود.
تا به اینجا مقدماتی پیرامون Servlet ها توضیح دادیم و در مقاله بعد اولین Servlet را مینویسم.
سری مقاله های Java Enterprise ادامه دارد.
با ما همراه باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.