থেকে HandlerIntercepter
এর javadoc :
HandlerInterceptor
মূলত একটি সার্লেটের অনুরূপ Filter
, তবে পরবর্তীগুলির বিপরীতে এটি হ্যান্ডলারের নিজেই কার্যকর করা নিষিদ্ধ করার বিকল্প এবং কাস্টম পোস্ট-প্রসেসিংয়ের সাথে কাস্টম প্রাক প্রসেসিংয়ের অনুমতি দেয়। ফিল্টারগুলি আরও কার্যকর example নোট করুন যে একটি ফিল্টার অ্যাপ্লিকেশন প্রসঙ্গে web.xml
একটি
কনফিগার করা হয়েছে HandlerInterceptor
।
একটি মৌলিক গাইডলাইন হিসাবে, সূক্ষ্ম-দানাদার হ্যান্ডলার সম্পর্কিত প্রাক প্রসেসিং কার্যগুলি HandlerInterceptor
বাস্তবায়নের প্রার্থী , বিশেষত ফ্যাক্টর-আউট সাধারণ হ্যান্ডলার কোড এবং অনুমোদনের চেক। অন্যদিকে, Filter
অনুরোধ সামগ্রী এবং মাল্টিপার্ট ফর্ম এবং জিজেআইপি সংকোচনের মতো সামগ্রী হ্যান্ডলিং দেখার জন্য উপযুক্ত well এটি সাধারণত যখন নির্দিষ্ট ফিল্টারটি নির্দিষ্ট সামগ্রীর ধরণের (যেমন চিত্রগুলি), বা সমস্ত অনুরোধে ম্যাপ করার প্রয়োজন হয় তখন তা প্রদর্শিত হয়।
এর সাথে বলা হচ্ছে:
তাই যেখানে মধ্যে পার্থক্য Interceptor#postHandle()
এবং
Filter#doFilter()
?
postHandle
হ্যান্ডলার পদ্ধতি অনুরোধের পরে তবে ভিউ রেন্ডার করার আগে ডাকা হবে। সুতরাং, আপনি ভিউতে আরও মডেল অবজেক্ট যুক্ত করতে পারেন তবে এটি ইতিমধ্যে প্রতিশ্রুতিবদ্ধ হওয়ার কারণে আপনি পরিবর্তন করতে পারবেন নাHttpServletResponse
।
doFilter
এর চেয়ে অনেক বেশি বহুমুখী postHandle
। আপনি অনুরোধ বা প্রতিক্রিয়া পরিবর্তন করতে পারেন এবং এটি শৃঙ্খলে পাস করতে পারেন বা এমনকি অনুরোধ প্রক্রিয়াকরণটি ব্লক করতে পারেন।
এছাড়াও, পদ্ধতি preHandle
এবং postHandle
পদ্ধতিগুলিতে HandlerMethod
আপনার অনুরোধটি প্রক্রিয়াকরণ করাতে অ্যাক্সেস রয়েছে । সুতরাং, আপনি নিজেই হ্যান্ডলারের উপর ভিত্তি করে প্রাক / পোস্ট প্রসেসিং যুক্তি যুক্ত করতে পারেন। উদাহরণস্বরূপ, আপনি হ্যান্ডলার পদ্ধতির জন্য কিছু যুক্তি যুক্ত করতে পারেন যা কিছু টিকা আছে।
কোন ক্ষেত্রে এটি ব্যবহার করা উচিত সে ক্ষেত্রে সবচেয়ে ভাল অনুশীলন কী?
যেমনটি ডক বলেছেন, সূক্ষ্ম দানযুক্ত হ্যান্ডলার সম্পর্কিত প্রাক প্রসেসিং কার্যগুলি HandlerInterceptor
বাস্তবায়নের প্রার্থী , বিশেষত ফ্যাক্টর-আউট সাধারণ হ্যান্ডলার কোড এবং অনুমোদনের চেক। অন্যদিকে, Filter
অনুরোধ সামগ্রী এবং মাল্টিপার্ট ফর্ম এবং জিজেআইপি সংকোচনের মতো সামগ্রী হ্যান্ডলিং দেখার জন্য উপযুক্ত well এটি সাধারণত যখন নির্দিষ্ট ফিল্টারটি নির্দিষ্ট সামগ্রীর ধরণের (যেমন চিত্রগুলি), বা সমস্ত অনুরোধে ম্যাপ করার প্রয়োজন হয় তখন তা প্রদর্শিত হয়।