আমরা ইতিমধ্যেই দেখে নিয়েছি যে jsp page তে <%= এবং %> কিভাবে Java expression ব্যবহার করা যায়।
কিন্তু যখন প্রচুর প্রোগ্রামিং করতে হয় তখন Html এর মধ্যে Java expression লেখা কঠিন কাজ হয়ে দাড়াই। Jsp পেজ এর মধ্যে Java Code Block ও লেখা যায়।
আপনাকে Jva code block <% এবং %> এর মধ্যে লিখতে হবে। (Java expression লেখার মতো, শুধুমাত্র = চিন্হ ব্যবহার না করে)
এই block of code কে Scriplet বলে।
এখানে একটি Scriplet যুক্ত jsp page এর উদাহরন দেওয়া হল।
<HTML>
<BODY>
<%
// This is a scriptlet. Notice that the "date"
// variable we declare here is available in the
// embedded expression later on.
System.out.println( "Evaluating date now" );
java.util.Date date = new java.util.Date();
%>
Hello! The time is now <%= date %>
</BODY>
</HTML
এই উদাহরনটি কে রান করালে, লক্ষ্য করবেন যে সার্ভার log তে আউটপুট “System.out.printf” থেকে এসেছে।
কিন্তু একটি scriplet কখনোই নিজে থেকে html ফাইল তৈরি করতে পারে না। যদি একটি scriplet html ফাইল তৈরি করতে চাই তাহলে তাকে “out” ভেরিয়েবেল ব্যবহার করতে হবে।এই ভেরিয়েবেলটি ঘোষণা করার দরকার নেই। এটি এর জন্য অনান্য ভেরিয়েবেলের সাথে পূর্বঘোষিত।
কি ভাবে scriplet দিয়ে hrml তৈরি হবে তার উদাহরনঃ
<HTML>
<BODY>
<%
// This scriptlet declares and initializes "date"
System.out.println( "Evaluating date now" );
java.util.Date date = new java.util.Date();
%>
Hello! The time is now
<%
// This scriptlet generates HTML output
out.println( String.valueOf( date ));
%>
</BODY>
</HTML
এখানে expression ব্যবহারের পরিবর্তে “out” variable দিয়ে সরাসরি html তৈরি করা হয়েছে।“out” ভেরিয়েবেলটি Javax.Servlet.Jsp.Jspwriter ধরনের।
অন্য একটি ব্যবহারযোগ্য ভেরিয়েবেল হল “Request”।এটি Javax.Servlet.http.HttpServletRequest ধরনের।
কেউ যখন URL এ ক্লিক করে ,ব্রাউজার সার্ভার কে একটি “request” পাঠায়। যদি “request” কোনো form এর থেকে হয় তা হলে User কে ফর্ম এ লিখতে হবে।
এখন কোডটিকে Modify করতে হবেঃ-
<HTML>
<BODY>
<%
// This scriptlet declares and initializes "date"
System.out.println( "Evaluating date now" );
java.util.Date date = new java.util.Date();
%>
Hello! The time is now
<%
out.println( date );
out.println( "<BR>Your machine's address is " );
out.println( request.getRemoteHost());
%>
</BODY>
</HTML
একই ধরনের আরেকটি ভেরিয়েবেল হল “response”। এটি ব্রাউজার কে “response” বোঝানোর জন্য ব্যবহার করা হয়। যেমন আপনি response.sendRedirect (another Url ); কে call করতে পারেন।