1.1 JSP এর ভূমিকা

একটি সার্লেট লেখার দুটি জনপ্রিয় উপায় রয়েছে: অপরিহার্য এবং ঘোষণামূলক । আমরা ইতিমধ্যে প্রথমটির সাথে মোকাবিলা করেছি - এটি আসলে একটি সার্ভলেট। দ্বিতীয়টির নাম JSP (জাভা সার্ভার পেজ), এবং আমরা এখন এটির সাথে পরিচিত হব।

Servlet JSP উদাহরণ:


<html> 
    <body> 
        <% out.print(2*5); %> 
    </body> 
 </html> 

আমরা যে ক্লাসিক সার্ভলেটে অভ্যস্ত তার সাথে খুব মিল নেই, তাই না? এটা সত্য. JSP হল জাভা কোড সন্নিবেশ সহ একটি HTML পৃষ্ঠা (সবুজ রঙে হাইলাইট করা)

আপনি দেখতে পাচ্ছেন, আপনার যদি একটি সার্লেটে প্রচুর জাভা কোড থাকে এবং সামান্য এইচটিএমএল কোড থাকে তবে আপনি একটি ক্লাসিক সার্লেট ব্যবহার করতে আরও স্বাচ্ছন্দ্য বোধ করবেন । কিন্তু যদি আপনার একটি বড় HTML পৃষ্ঠার প্রয়োজন হয় যেখানে সার্ভার দ্বারা শুধুমাত্র কয়েকটি লাইন পরিবর্তন করা হয়?

এই ক্ষেত্রে, সবচেয়ে সহজ জিনিসটি এই এইচটিএমএল পৃষ্ঠাটি তৈরি করা এবং কোনওভাবে এটির মধ্যেই সার্ভারে জাভা কোডটি কার্যকর করা।

1.2 JSP কম্পাইল করা

আসুন আরেকটি উদাহরণ দেখি:


<html> 
  <body> 
    <%
        double num = Math.random();
        if (num > 0.95) {
     %>
         <h2>You are lucky, user!</h2><p>(<%= num %>)</p>
    <%
        }
    %> 
  </body> 
</html> 

আমরা একটি এলোমেলো নম্বর পাই, এবং যদি এটি 0.95-এর বেশি হয়, আমরা পাঠ্যটি প্রিন্ট করি "আপনি ভাগ্যবান, ব্যবহারকারী!"

জাভা কোড এখানে নীল রঙে হাইলাইট করা হয়েছে । সাধারণ (হাইলাইট করা হয়নি) - HTML কোড, এবং লাল - পরিষেবা ট্যাগ , যা জাভা কোড কোথায় এবং HTML কোথায় তা বুঝতে সাহায্য করে।

আপনি কি অদ্ভুত কিছু লক্ষ্য করেন? ক্লোজিং কোঁকড়া বন্ধনী "}"অন্য মধ্যে আছে "code block". এই ধরনের কোড লিখতে সঠিক উপায় কি? এটা কিভাবে কাজ করে?

উত্তর খুব সহজ হবে :)

ওয়েব সার্ভার, এটি একটি JSP ফাইল খুঁজে পাওয়ার পরে, এটি একটি ক্লাসিক সার্লেটে কম্পাইল করে। উপরের JSP পৃষ্ঠার উপর ভিত্তি করে, এই Servlet তৈরি করা হবে:

public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws Exception {
    PrintWriter out = response.getWriter();
    out.print("<html> ");
    out.print("<body>");
        double num = Math.random();
        if (num > 0.95) {
            out.print("<h2>You're lucky user! </h2><p>(" + num + ")</p>");
        }
    out.print("</body>");
    out.print("</html>");
    }
}

ওয়েব কন্টেইনারটি সবেমাত্র সার্লেট কোড তৈরি করেছে, যেখানে HTML পাঠ্যে পরিণত হয়েছে এবং জাভা কোড সন্নিবেশগুলি নিয়মিত জাভা কোডে পরিণত হয়েছে!