آشنايي با jsp و Servlet
در ادامه گفتم شايد بد نباشه توضيحات بيشتري در مورد jsp و servlet بدم:
البته اين توضيحات در حد مقدمه هست و شايد خيلي ها بلد باشن.
jsp چيزي شبيه asp يا php هست. يعني تگهاي jsp (دستورهاي جاوا) بين تگهاي HTML قرار ميگيرن و يك صفحه ي HTML پويا ميسازن.
پسوند اين فايلها ميتونه jsp يا jspx باشه و هر جا كه دلمون خواست ميتونيم آپلودش كنيم و مثل يك فايل html صداش بزنيم...
اما
Servlet به اين سادگيا نيست...
Servlet چيزي شبيه فايلهاي CGI هست. يعني فايلي است كه ساختارش دقيقا شبيه يك كلاس جاواست و بعد از اينكه كامپايل شد روي سرور قرار ميگيره و قابليت اينو داره كه درخواستها رو از client قبول كنه ، پردازش كنه و جوابش رو بفرسته.
پسوند يك servlet قبل از كامپايل شدن java. هست (مثل pl. ) و بعد از كامپايل شدن class. ميشه (مثل cgi. ) .
servlet ها در پوشه اي به اين نام بايد ذخيره بشن:
WEB-INF/classes كه اين پوشه از طريق صفحه وب قابل دسترسي نيست... در پوشه WEB-INF فايلي به نام
web.xml وجود داره كه پس از آپلود، بايد Servlet رو در اين فايل تعريف كرد.
فرض كنيم سرولتي به نام HelloServlet را در شاخه اي كه گفتيم آپلود كرديم. حالا بايد به اين صورت تعريفش كنيم:
کد:
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
servlet-name نامي است كه به servlet ميديم و هنگام صدا زدن servlet به درد ميخوره (هر اسمي ميتونه باشه) و servlet-class نام فايل(servlet) آپلود شده است.
نحوه ي صدا زدن Servlet با jsp و cgi فرق داره - براي صدا زدنش بايد از اين آدرس استفاده كرد:
http://www.yourSite.com/servlet/YourServletName .
servletها يك امتياز منحصر بفرد دارن كه من نمونه اش رو در جايي نديدم. ميشه براي servlet يك servlet-mapping هم تعريف كرد... با يك مثال بيشتر توضيح ميدم.
براي استفاده از servlet-mapping اين رو به web.xml اضافه مي كنيم:
کد:
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello.alaki</url-pattern>
</servlet-mapping>
اين باعث ميشه با صدا زدن hello.alaki روي سرور به سراغ HelloServlet ميره. مثلا:
www.yourSite.com/hello.alaki :!:
اگه سوالي هست ما در خدمتيم. فعلا"...