Do mã trang JSP khi thực thi đều được biên dịch ra servlet cho nên tất cả những gì servlet làm được cũng đồng nghĩa với trang JSP làm được.
JSP có thể trộn lẫn mã Java với các thẻ HTML cho nên việc thiết kế trang đơn giản và dễ bổ sung hơn so với servlet. Tuy nhiên nếu tập trung hết mã Java vào cùng với HTML thì khi mở rộng sẽ trở nên phức tạp, việc bảo trì và nâng cấp ứng dụng sẽ rất khó khăn.
Với servlet, tuy phải biên dịch và đăng kí thủ công với trình chủ nhưng nó có tính bảo mật cao hơn. Ta chỉ cần cung cấp cho trình chủ bản servlet nhị phân (file .class) mà không cần cung cấp mã nguồn. Các servlet có thể tương tác liên hoàn với nhau để tạo nên những kết xuất tùy biến và đa dạng trước khi trả kết quả về cho trình khách. Servlet có thể phân rã các đơn thể của dự án và phát triển độc lập nhau như các thành phần riêng biệt để ráp lại trong một tổng thể thống
nhất chung. Tuy nhiên, việc kết xuất trong servlet thường dựa vào phương thức print() hoặc println() do đó giao diện cho kết xuất rất khó quản lí.
Quyết định sử dụng JSP hay servlet hay kết hợp cả hai là tùy vào từng dự án và mục đích cảu chương trình mà bạn muốn phát triển. Thông thường với các dự án nhỏ, yêu cầu thời gian nhanh ta sử dụng JSP. Còn đối với dự án cần độc lập và chỉ thiên về xử lí ta nên sử dụng servlet. Trường hợp với dự án lớn ta nên kết hợp cả JSP và servlet. Mô hình kết hợp tốt nhất thường được gọi là MCV( Model View Controler) trong đó servlet đóng vai trò trung tâm điều khiển đưa ra các quyết định xử lí. JSP đóng vai trò thể hiện giao diện hay hiển thị dữ liệu đã xử lí. Quy trình tính toán logic của ứng dụng giao cho các thành phần JavaBean hay EJB.
3.1.4.2.JSP/Servlet và các công nghệ Web ASP,CGI,ISAPI.
Tương tự như servlet, ích lợi của chương trình CGI( Common Gateway Interface) là tạo ra được những trang Web tùy biến. Bên trong chương trình CGI chúng ta có thể tính toán, kết nối truy vấn cơ sở dữ liệu, lưu các thông tin do trình khách gửi đến… Tuy nhiên nhược điểm của trình CGI trên máy chủ là vấn đề tốc độ. Mỗi lần trình CGI thực thi là mỗi lần Web server phải nạp và giải phóng trình CGI khỏi bộ nhớ. Công nghệ Web đưa ra rất nhiều giải pháp khắc phục yếu điểm của các trình CGI.
Windows cung cấp cho bạn cách thức xây dựng các trình CGI ở dạng thư viện lien kết động DLL. Ứng dụng CGI kiểu mới này còn được gọi là các ứng dụng ISAPI. Chương trình ISAPI chỉ phải nạp một lần vào bộ nhớ khi lần đầu tiên Web server triệu gọi ứng dụng. Do không phải nạp nhiều lần nên vấn đề tốc độ được giải quyết triệt để. Để viết ISAPI bạn có thể sử dụng bất kì công cụ phát triển trên Windows nào hỗ trợ biên dịch thư viện liên kết động DLL ( như VC+ +, Inprise Delphi…)
Về phía Java, câu trả lời tương tự cho ISAPI của Windows đó là Servlet. Servlet là các chương trình Java chỉ cần nạp một lần vào máy ảo. Servlet sẽ phục vụ mọi yêu cầu từ máy khách gửi đến tương tự chức năng cua một chương trình CGI hay ISAPI.
Đối với ngôn ngữ kịch bản, Microsoft đề xuất phương án thiết kế trang Web ASP (Active Server Page). ASP là các trang Web chứa mã lệnh viết bằng ngôn ngữ Visual Basic kết hợp với các thẻ định dạng của ngôn ngữ HTML. Khi máy khách triệu gọi một tập tin .asp, trình chủ sẽ yêu cầu trình dịch ASP chuyển tải mã lệnh ASP thành kết xuất HTML trả về cho trình khách.
Mô hình chung của JSP và ASP cơ bản như nhau.Tuy nhiên, JSP/Servlet của Java có một số điểm mạnh, ta có thể thấy được qua bảng so sánh sau đây:
Công nghệ ASP Công nghệ JSP
Web Server Microsoft IIS hay Personal Web Server.
Bất kỳ Web Server nào, kể cả Apache, Netscape và IIS.
Platforms Microsoft
Windows.
Hầu hết các platforms phổ biến, bao gồm Solaris
Operating Environment, Mac OS, Linux, và các nền Unix khác.
Bảo vệ chống suy sụp hệ thống
Không Có
Chống rò rỉ bộ nhớ Không Có
Ngôn ngữ Script VBScript, JScript Java
Các thẻ tự tạo Không Có