সংক্ষেপে বলতে গেলে, সার্ভলেট হলো একটি ওয়েব সার্ভারে রান হওয়া জাভা প্রোগ্রাম যা HTTP ক্লায়েন্ট থেকে আসা রিকোয়েস্ট এবং HTTP সার্ভারে অবস্থিত ডেটাবেস বা অ্যাপ্লিকেশনগুলোর মাঝপথে একটি মিডল লেয়ার হিসেবে কাজ করে। অন্যদিকে JSP শুধু একটি টেক্সট ডকুমেন্ট যাতে দুটি ধরণের টেক্সট থাকে: স্ট্যাটিক টেক্সট যা পূর্বনির্ধারিত এবং ডাইনামিক টেক্সট যা সার্ভার রেসপন্স পাওয়ার পর রেন্ডার হয়।
নিচে ArrayList এবং HashSet-এর মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলো দেওয়া হলো। (নোট: মূল লেখায় Servlet এবং JSP-এর পার্থক্য বলা হয়েছে কিন্তু টেবিলে ArrayList vs HashSet লেখা আছে। এখানে Servlet vs JSP অনুযায়ী টেবিল পুনর্গঠন করা হয়েছে।)
| ক্রমিক নং | মূল বিষয় | সার্ভলেট | JSP |
|---|---|---|---|
| ১ | ইমপ্লিমেন্টেশন | সার্ভলেট জাভা ল্যাঙ্গুয়েজে ডেভেলপ করা হয়। | JSP মূলত HTML ল্যাঙ্গুয়েজে লেখা হয় যদিও তাতে জাভা কোডও লেখা যায়, তবে তার জন্য JSTL বা অন্য ল্যাঙ্গুয়েজ দরকার। |
| ২ | MVC | MVC-এর প্রেক্ষিতে সার্ভলেটকে কন্ট্রোলার বলা যায়, যা রিকোয়েস্ট গ্রহণ করে প্রসেস করে এবং রেসপন্স পাঠায়। | অন্যদিকে, JSP ভিউর ভূমিকা পালন করে যা সার্ভলেট থেকে ফেরত আসা রেসপন্স রেন্ডার করে। |
| ৩ | রিকোয়েস্ট টাইপ | সার্ভলেট সকল ধরনের প্রোটোকল রিকোয়েস্ট গ্রহণ ও প্রসেস করতে পারে। | JSP অন্যদিকে শুধু HTTP রিকোয়েস্টের সাথে কম্প্যাটিবল। |
| ৪ | সেশন ম্যানেজমেন্ট | সার্ভলেটে ডিফল্টভাবে সেশন ম্যানেজমেন্ট ইমপ্লিমেন্টেড নয়, ইউজারকে এক্সপ্লিসিটলি এনাবল করতে হয়। | অন্যদিকে JSP-এ সেশন ম্যানেজমেন্ট অটোমেটিক্যালি ইমপ্লিমেন্টেড থাকে। |
| ৫ | পারফরম্যান্স | সার্ভলেট JSP-এর চেয়ে দ্রুত। | JSP সার্ভলেটের চেয়ে ধীর কারণ প্রথমে JSP থেকে জাভা কোডে ট্রান্সলেশন হয় এবং তারপর কম্পাইল। |
| ৬ | মডিফিকেশন রিফ্লেক্ট | সার্ভলেটে মডিফিকেশন টাইম-কনসামিং কারণ কোড পরিবর্তন করলে রিলোড, রিকম্পাইল এবং সার্ভার রিস্টার্ট করতে হয়। | অন্যদিকে JSP মডিফিকেশন দ্রুত কারণ শুধু রিফ্রেশ বাটন ক্লিক করলে কোড চেঞ্জ রিফ্লেক্ট হয়। |
সার্ভলেটের উদাহরণ
JavaTester.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class JavaTester extends HttpServlet { private String message; public void init() throws ServletException { // Do required initialization message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); // Actual logic goes here. PrintWriter out = response.getWriter(); out.println(message); } }
আউটপুট
Hello World