نقل قول نوشته شده توسط zer0cool مشاهده تاپیک
میشه در مورد servlet و jsp و تفاوتشون بیشتر توضیح بدی جناب فانتوم!!
تا اونجا که من میدونم یه jsp با servlet با هم دیگه فرق میکنند اینو از ظاهرشون هم میشه دید چون کدهای jsp به html نزدیکترند ولی servlet به جاوا نزدیکتر و اینکه servlet برای validation بکار میره و .... ولی مطمئنا اطلاعات من در این زمینه کم هستش اگه ممکنه شما بیشتر درموردشون توضیح بدی ممنون میشم.
مرسی
بله فرق می کنه ما نگفتیم فرق نمی کنه گفتم هر JSP در آخر تبدیل به یک servlet می شه.
سوال خوبی کردی که servlet چی هست؟
ما در صفحات dynamic یعنی صفحات html ی در آن عمل پردازش صورت می گیرد برای درست کردن چینن صفحاتی از CGI یا همان Common Gate Interface که با زبان C پیاده سازی می شد استفاده می کردند که خوب زبان C هست و هزار دردسر و پیچیدگی خاص خودش.
servlet همان CGI هست که با زبان جاوا پیاده سازی می شه به اضافه اینکه بیشتر پیجیدگیهای مربوط به امنیت و و و بصورت abstract جاوا داره پشتیبانی می کنه.
حالا چه جوری کار می کنه و چه جوری ازش نگهداری می شه و مدیریت باید بریم سراغ یک container که اینو می زارم به عده خودت.
servlet یک جاوا فایل هست که در آخر کار مثل تمام جاوا فایل های دیگه کامپل می شه و یک class فایل می ده. که وظیفه instance گرفتن از این class فایل به عهده tomcat هست.

شما اشاره کردید که برای validate کردن است.
کی همچین حرفی به شما زده یا کجا همچین مطلبی رو خوندید. شما می توانید تمام page های داینامیک خودتون رو با servlet به نویسید حتی می تونید همان اولین page صفحه که index یا هر چیزه دیگر هست رو با servlet بیاد بالا.

چرا از servlet فرار می کنیم به سمت JSP؟
تجربه در کار این رو به من نشان داده که افراد به چهار دلیل بیشتر به سراغ JSP می رن
۱.آشنایی کامل نداشتن از J2SE
بابا هنوز حاوا استاندارد بلد نیست می خواد کار وب کنه
۲. دید Microsoftی که استفاده از IDE ی و ASP ی و مزخرفات همراهش
۳. ندانستن چگونگی استفاده از خود servlet
اینکه می گین برای validate استفاده می کنند نشان می ده که یک چیزایی خوندی ولی نفهمیدی. ما بحثی در J EE داریم به نام Pattern حتما مطالعه کن sun که بیکار نبوده بیاد servlet رو درست کنه که فقط validate کنی.
۴. تنها چیزی که قابل قبول است و خود سان برای همین موضوع اومد و JSP رو درست کرد این بود که شما برای ایجاد تگهای HTMLی در servlet باید دستورات زیادی بنویسی کسانی که با php کار کرده اند منظور من و می فهمند در مثالی که در پایین می زنم می بینی که منظور من چیه. به مثال توجه کن بابا
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;



public class HelloWorld extends HttpServlet {

public void service(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
//creating html tags with out
out.println("<html>");
out.println("<body>");
out.println("<h1 align=\"center\">Hello World </h1>");
out.println("</body>");
out.println("</html>");
}

}

تمام قسمتهایی که توی این کد می بینی توی یک صفحه JSP هم می تونی ببینی اما همانطور که داریم توی کد نگا می کنیم کلی out وجود داره ۵ خطی هست برای ایجاد چندتا تگ ساده حالا اگر می خواست table و چه می دونم css و و و باشه کار کد زنی سخت می شد البته نرم افزارهایی هستند برای همین کار که HTML تولید شده در Servlet شما رو چک کنند.

حالا JSP چیه؟
توی servlet دیدن بابا این همه out بزنیم که چی گفتن بیاییم از تگ استفاده کنیم بطوریکه بعدآ که برنامه نویسی کارشو کرد ما خودمون می کنیم servlet بعد کامپایلش می کنیم کی می فهمه بابا ها. طرف می یاد می نویس و حالش و می بره.
راحتی jsp نسبت به servlet هست که همه می رن سراغش تمام امکانات servlet رو با زبان تگ هست که داره بشتیبانی می کنه به اضافه چند چیز
۱. خود jsp دارای یک سری تگهای استاندارد است برای بالا بردن سرعت کار
۲. خود برنامه نویس هم می تونه کتابخانه ای شامل تگهای خودش رو ایجاد کنه
۳. یک سری تعریفها رو بصورت پیش فرض خود jsp پیاده سازی می کنه مانند
out,session,response,request وووو اگر servlet رو فهمیده باشی اون وقت می فهمی داستان چیزهایی که گفتم چیه.

مشکل شما و بیشتر کسانی که در این فروم هستند این هست که حاضر به خوندن نیستید سری می ری سراغ کدوم IDE ی و بعدشم یاعلی کد کد کد کد نه معمار کار می کنید نه متدودولوژی نه pattern نه هیچی هیچی. اون یکی می گه decoder و encoder درست کن آخه من چی می تونم بکم. معنی transaction رو نمی دونی با بانک اطلاعاتی کار می کنی. اصلا به من چه.
تمام گفتهای بالا هیج کدوم صحبتهای شخصی من نیست همه در کتاب های jsp servlet می تونید به صورت خیلی بهتر و کاملتر استفاده کنید