অ্যাপলেট
অ্যাপলেট হলো ইন্টারনেট ব্রাউজারের জন্য তৈরি একটি ছোট প্রোগ্রাম, যা ব্রাউজারের মধ্য থেকে যেকোনো সিস্টেমে রান করতে সক্ষম এবং শক্তিশালী, নিরাপদ ও ক্লায়েন্ট সাইড প্রোগ্রাম। মূলত ব্রাউজারের জন্য প্রোগ্রাম তৈরির উদ্দেশ্যেই অ্যাপলেটের জন্ম। পরবর্তী সময় বিভিন্ন ফিচার সংযুক্ত করে এর কাজের পরিধি বাড়ানো হয়েছে।
importjava.awt.*;
importjava.applet.*;
import java.net.*;
/*
*/
public class AppletCode extends Applet
{
public void init()
{
setSize(300,300);
}
public void start()
{
System.out.println("Applet started");
}
public void stop()
{
System.out.println("Applet Stopped!");
}
public void destroy()
{
System.out.println("Applet Destroyed.");
}
}
জ্যাপলেট
জ্যাপলেট বা JApplet হলো অ্যাপলেট ক্লাসের সাব-ক্লাস। তাই, জ্যাপলেট বাস্তবিক অর্থে একটি অ্যাপলেট, যদিও এতে অ্যাপলেট থেকে অনেক বেশি ফিচার রয়েছে। যার ফলে জ্যাপলেটের মাধ্যমে অ্যাপলেট থেকে অনেক বেশি কাজ করা সম্ভব। আরেকটি গুরুত্বপূর্ণ বিষয় হলো অ্যাপলেট awt ক্লাসকে ইনহেরিট করে আর জ্যাপলেট জাভার সুইং (swing) ক্লাসকে ইনহেরিট করে। সুইং জাভার এক্সটেনডেড ভার্সন, যেখানে লাইটওয়েট টেকনোলজি সাপোর্টের পাশাপাশি এতে লুক অ্যান্ড ফিল টেকনোলজি ও বহুমাত্রিক বৈশিষ্ট্য সংযুক্ত করা হয়েছে। ফলে সুইং দিয়ে এমন প্রোগ্রাম তৈরি করা যায়, যা awt দিয়ে তৈরি করা সম্ভব নয়।
অ্যাপলেট ও জ্যাপলেটের পার্থক্য
০১. জ্যাপলেট Contentpane, glasspane, rootpane সাপোর্ট করে, কিন্তু অ্যাপলেট এগুলো সাপোর্ট করে না।
০২. জ্যাপলেটে কোনো কম্পোনেন্ট নিতে হলে Contentpane-এর add() মেথড নিয়ে কাজ করতে হয়, কিন্তু অ্যাপলেটে কোনো কম্পোনেন্ট নিতে হলে Applet-এর add() মেথড নিয়ে কাজ করতে হয়।
০৩. অ্যাপলেট অবজেক্টে বিভিন্ন ভেরিয়েবল, মেথডের ইনস্ট্যান্স দেয়া আছে, যেগুলোর ডেফিনেশন জ্যাপলেটে দেয়া আছে।
০৪. অ্যাপলেট প্রোগ্রাম তৈরির সময় Applet ক্লাসকে এক্সটেন্ড করা হয়, যেখানে জ্যাপলেট প্রোগ্রাম তৈরিতে JApplet ক্লাসকে এক্সটেন্ড করা হয়।
০৫. জ্যাপলেটের জন্য swing ক্লাসকে অবশ্যই ইমপোর্ট করতে হবে, অন্যদিকে অ্যাপলেটের জন্য awt প্যাকেজকে ইমপোর্ট করতে হবে।
অ্যাপলেট ও জ্যাপলেটের সাদৃশ্যপূর্ণ বৈশিষ্ট্য
অ্যাপলেট ও জ্যাপলেট ব্রাউজারের মাধ্যমে বা যেকোনো অ্যাপ্লিকেশনের মাধ্যমে যেকোনো সিস্টেমে রান করতে সক্ষম এবং দুটিই ক্লায়েন্ট সাইড প্রোগ্রাম। জাভার জাস্ট ইন টাইম কম্পাইলার (JIT) ও ইন্টারপ্রেটর এ কাজে সহায়তা করে। তবে এগুলো যাতে লোকাল কমপিউটারের কোনো ক্ষতিসাধন করতে না পারে, সেজন্য এর প্রোগ্রামিংয়ের সীমানা বেঁধে দেয়া হয়েছে। এতে এমন কোনো কোড লেখা যাবে না, যা দিয়ে লোকাল কমপিউটারের ক্ষতিসাধিত হয়। এছাড়া জাভার রানটাইম সিকিউরিটি সিস্টেম এসব প্রোগ্রাম রান করার সময় এর ওপর তীক্ষন নজর রাখে। যদিও ইচ্ছে করলে নিয়মতান্ত্রিকতার বাইরেও প্রোগ্রাম লেখা ও রেগুলার প্রোগ্রাম তৈরি করা যায়, যা অপারেটিং সিস্টেমকে ব্যবহার করে চলতে পারে।
importjavax.swing.*;
importjava.awt.*;
public class JApplet1 extends JApplet
{
public void init()
{
getContentPane().add(new JLabel("This is an JApplet!"));
}
}
সার্ভলেট
জাভাতে তৈরি সার্ভলেট সার্ভারের কার্যক্ষমতা বাড়ানোর জন্য কাজ করে। সার্ভলেট মূলত হোস্ট অ্যাপ্লিকেশনের জন্য request-response programming model হিসেবে কাজ করে। অর্থাৎ ইউজারের অনুরোধের প্রেক্ষেতে সার্ভার থেকে প্রয়োজনীয় সাপোর্ট দেয়ার জন্য সহায়তা করে থাকে।
সার্ভার সাইড প্রোগ্রাম তৈরি করার জন্য সার্ভলেট ব্যবহার হয়। ফ্রন্ট সাইড অ্যাপ্লিকেশনের সাথে ওয়েব সার্ভারে অবস্থিত ডাটাবেজের সংযোগ সাধনের জন্য বা ইন্টারনেটনির্ভর অ্যাপ্লিকেশন প্রোগ্রাম ডেভেলপমেন্টের জন্য সার্ভার সাইড প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার হয়। সাধারণত ফ্রন্ট সাইড ল্যাঙ্গুয়েজ হিসেবে জাভা, জাভাস্ক্রিপ্ট, ভিজ্যুয়াল বেসিক, পিএইচপি ইত্যাদি ব্যবহার হয় এবং সার্ভার সাইড ল্যাঙ্গুয়েজ হিসেবে সার্ভলেট, অ্যাক্টিভ সার্ভার পেজেস (ASP) ইত্যাদি ব্যবহার হয়। ইউজার ফ্রন্ট সাইডে দৃশ্যমান ওয়েবপেজের ফরমের মাধ্যমে কোনো তথ্য দেখতে বা আপডেট বা এডিট করতে চাইলে নির্দেশটি ইন্টারনেটের মাধ্যমে সার্ভারে অবস্থিত সার্ভলেটের কাছে যায়। সার্ভলেট জাভা ডাটাবেজ কানেক্টিভিটির (JDBC) মাধ্যমে ডাটাবেজের সাথে সংযোগ স্থাপন করে ডাটাবেজে প্রয়োজনীয় কার্যক্রম সম্পাদন করে।
চিত্র : সার্ভলেটের কাজের পদ্ধতি
সার্ভলেট প্রোগ্রাম লেখার জন্য দুটি প্যাকেজ যেমন- javax.servletএবংjavax.http.servlet প্রয়োজনীয় ইন্টারফেস ও ক্লাস সহায়তা দিয়ে থাকে।
সার্ভলেট প্রোগ্রাম
importjava.sql.*;
import java.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
public class ABC extends HttpServlet
{
public void init(ServletConfigconfig) throws ServletException
{
super.init(config);
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out= response.getWriter();
HttpSession session= request.getSession(true);
String sessionId= String.valueOf(session.getValue("session.id"));
String logName=sessionId;
String PName=request.getParameter("name");
String Pcode=request.getParameter("pcode");
Connection connect=null;
try
{
connect=DriverManager.getConnection("jdbc:odbc:project","","");
connect.setAutoCommit(false);
Statement stmt=connect.createStatement();
stmt.execute("INSERT INTO memberdetails VALUES('"+PName+"',"+Pcode+")");
connect.setAutoCommit(false);
out.println("yes");
}
catch(Exception e)
{
try
{
connect.rollback();
}
catch(Exception ex){out.println(""+ex+"");}
out.println(""+e+"");
}
finally
{
try
{
if(connect!=null)
{
connect.close();
}
}catch(Exception e){out.println(""+e+"");}
}
}
}
পরবর্তী সময়ে সার্ভলেট সম্পর্কে বিস্তারিত ধারণা দেয়া হবে।
ফিডব্যাক : balaith@gmail.com