নিম্নলিখিত উদাহরণ দেখায় কিভাবে ক্লায়েন্টের আইপি ঠিকানা এবং বর্তমান তারিখের সময় প্রিন্ট করতে হয়, প্রতিবার এটি যেকোনো JSP ফাইল অ্যাক্সেস করবে। এই উদাহরণটি আপনাকে JSP ফিল্টার সম্পর্কে একটি প্রাথমিক ধারণা দেবে, কিন্তু আপনি একই ধারণা ব্যবহার করে আরও পরিশীলিত ফিল্টার অ্যাপ্লিকেশন লিখতে পারেন -
// Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; // Implements Filter class public class LogFilter implements Filter { public void init(FilterConfig config) throws ServletException { // Get init parameter String testParam = config.getInitParameter("test-param"); //Print the init parameter System.out.println("Test Param: " + testParam); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException { // Get the IP address of client machine. String ipAddress = request.getRemoteAddr(); // Log the IP address and current timestamp. System.out.println("IP "+ ipAddress + ", Time "+ new Date().toString()); // Pass request back down the filter chain chain.doFilter(request,response); } public void destroy( ) { /* Called before the Filter instance is removed from service by the web container*/ } }
LogFilter.java কম্পাইল করুন স্বাভাবিক উপায়ে এবং আপনার LogFilter.class রাখুন
Web.xml-এ JSP ফিল্টার ম্যাপিং
ফিল্টারগুলিকে সংজ্ঞায়িত করা হয় এবং তারপরে একটি URL বা JSP ফাইলের নামের সাথে ম্যাপ করা হয়, অনেকটা সেভাবে যেমন Servlet সংজ্ঞায়িত করা হয় এবং তারপর web.xml-এ একটি URL প্যাটার্নে ম্যাপ করা হয়। ফাইল web.xml স্থাপনার বর্ণনাকারী ফাইলে ফিল্টার ট্যাগের জন্য নিম্নলিখিত এন্ট্রি তৈরি করুন
<filter> <filter-name>LogFilter</filter-name> <filter-class>LogFilter</filter-class> <init-param> <param-name>test-param</param-name> <param-value>Initialization Paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>LogFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
উপরের ফিল্টারটি সমস্ত সার্লেট এবং JSP-তে প্রযোজ্য হবে কারণ আমরা /* উল্লেখ করেছি আমাদের কনফিগারেশনে। আপনি একটি নির্দিষ্ট সার্লেট বা JSP পাথ নির্দিষ্ট করতে পারেন যদি আপনি কয়েকটি সার্লেট বা JSP-এ ফিল্টার প্রয়োগ করতে চান।
এখন যেকোনো servlet বা JSP কল করার চেষ্টা করুন এবং আপনি আপনার ওয়েব সার্ভার লগে জেনারেটেড লগ দেখতে পাবেন। আপনি Log4J লগার ব্যবহার করতে পারেন উপরে লগ ইন করতে একটি পৃথক ফাইলে লগ ইন করুন।