জাভাতে, অ্যাপলেট এবং সার্ভলেট উভয়ই প্রোগ্রাম বা অ্যাপ্লিকেশন যেগুলো জাভা এনভায়রনমেন্টে রান করে। প্রধান পার্থক্য হল তাদের প্রসেসিং বিভিন্ন এনভায়রনমেন্টে হয়।
অ্যাপলেট এবং সার্ভলেটের মধ্যে গুরুত্বপূর্ণ পার্থক্যগুলো:
| ক্র. নং | কী | অ্যাপলেট | সার্ভলেট |
|---|---|---|---|
| ১ | এক্সিকিউশন | অ্যাপলেট ক্লায়েন্ট-সাইডে এক্সিকিউট হয়, অর্থাৎ ওয়েব ব্রাউজারে ক্লায়েন্ট মেশিনে রান করে। | সার্ভলেট সার্ভার-সাইডে এক্সিকিউট হয়, অর্থাৎ সার্ভারে ওয়েব পেজে রান করে। |
| ২ | প্যারেন্ট প্যাকেজ | অ্যাপলেটের প্যারেন্ট প্যাকেজ: java.applet.* এবং java.awt.* | সার্ভলেটের প্যারেন্ট প্যাকেজ: javax.servlet.* এবং java.servlet.http.* |
| ৩ | মেথড | অ্যাপলেটের গুরুত্বপূর্ণ মেথড: init(), stop(), paint(), start(), destroy()। | সার্ভলেটের লাইফসাইকেল মেথড: init(), service(), destroy()। |
| ৪ | ইউজার ইন্টারফেস | অ্যাপলেট এক্সিকিউশনের জন্য ইউজার ইন্টারফেস দরকার (AWT বা Swing)। | সার্ভলেট এক্সিকিউশনের জন্য এমন কোনো ইন্টারফেস দরকার নয়। |
| ৫ | ব্যান্ডউইথ প্রয়োজন | অ্যাপলেট ক্লায়েন্ট মেশিনে ইউজার ইন্টারফেসের জন্য বেশি ব্যান্ডউইথ নেয়। | সার্ভলেট সার্ভারে এক্সিকিউট হয়, তাই কম ব্যান্ডউইথ লাগে। |
| ৬ | সিকিউরিটি | অ্যাপলেট বেশি রিস্কি, কারণ এক্সিকিউশন ক্লায়েন্ট মেশিনে। | সার্ভলেট বেশি সিকিউয়ার, কারণ এক্সিকিউশন সার্ভার সিকিউরিটির অধীনে। |
অ্যাপলেট vs সার্ভলেট উদাহরণ
AppletDemo.java
import java.applet.Applet; import java.awt.Graphics; public class AppletDemo extends Applet { // Overriding paint() method @Override public void paint(Graphics g){ g.drawString("AppletDemo", 20, 20); } }
আউটপুট
AppletDemo
উদাহরণ
ServletDemo.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletDemo extends HttpServlet { private String message; public void init() throws ServletException{ // Do required initialization message = "Servlet Demo"; } public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(message); } }
আউটপুট
Servlet Demo