উদাহরণ সহ DispatcherServlet এর কাজ

DispatcherServlet এর ভূমিকা - স্প্রিং এমভিসি (Spring MVC) - Java Technologies

307

DispatcherServlet স্প্রিং এমভিসি ফ্রেমওয়ার্কের প্রধান কম্পোনেন্ট এবং এটি "ফ্রন্ট কন্ট্রোলার" হিসেবে কাজ করে। এটি সমস্ত HTTP রিকোয়েস্ট গ্রহণ করে এবং সেগুলিকে সঠিক কন্ট্রোলার, ভিউ রেজলভার, বা অন্যান্য উপাদানে রিডিরেক্ট বা ফওরওয়ার্ড করে। স্প্রিং এমভিসি অ্যাপ্লিকেশনগুলোতে, DispatcherServlet মূলত রিকোয়েস্ট এবং রেসপন্সের মধ্যে একটি ব্রিজ হিসেবে কাজ করে এবং এটি সমস্ত প্রক্রিয়াকরণে সহায়তা করে।

DispatcherServlet এর কাজ:

  1. রিকোয়েস্ট গ্রহণ: সব HTTP রিকোয়েস্ট প্রথমে DispatcherServlet দ্বারা গ্রহণ করা হয়।
  2. রিকোয়েস্টের জন্য কন্ট্রোলার চয়ন: DispatcherServlet কনফিগার করা HandlerMapping এর মাধ্যমে সঠিক কন্ট্রোলার এবং মেথড নির্বাচন করে।
  3. কন্ট্রোলারের সাথে রিকোয়েস্ট পাঠানো: DispatcherServlet সঠিক কন্ট্রোলার মেথডে রিকোয়েস্ট পাঠিয়ে, সেখান থেকে মডেল ডাটা বা ভিউ রিটার্ন করিয়ে নেয়।
  4. View Resolver নির্বাচন: DispatcherServlet কনফিগার করা ViewResolver এর মাধ্যমে সঠিক ভিউ নির্বাচন করে এবং মডেল ডাটা ভিউতে পাঠায়।
  5. HTTP রেসপন্স ফেরত: DispatcherServlet ভিউ থেকে তৈরি হওয়া রেসপন্স ক্লায়েন্টের কাছে ফেরত পাঠায়।

DispatcherServlet কনফিগারেশন এবং কাজের উদাহরণ

স্প্রিং এমভিসি ফ্রেমওয়ার্কে DispatcherServlet ব্যবহারের প্রক্রিয়া বুঝতে, আমরা একটি ছোট অ্যাপ্লিকেশন উদাহরণ দেখব।

১. web.xml Configuration:

প্রথমে DispatcherServlet কে web.xml ফাইলে কনফিগার করা হয়।

<web-app>
    <!-- DispatcherServlet configuration -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern> <!-- This means DispatcherServlet handles all incoming requests -->
    </servlet-mapping>
</web-app>

এখানে DispatcherServlet এর মডিউলটি web.xml ফাইলে কনফিগার করা হয়েছে। এটি সমস্ত রিকোয়েস্ট (যেমন /home, /login, /user/{id}) গ্রহণ করবে এবং সঠিক কন্ট্রোলার বা ভিউ প্রক্রিয়া করবে।

২. Spring MVC Configuration (WebConfig):

স্প্রিং এমভিসি কনফিগারেশন ক্লাসে DispatcherServlet এর জন্য বিভিন্ন কনফিগারেশন সেট করা হয়, যেমন ভিউ রেজলভার, হ্যান্ডলার মেপিং ইত্যাদি।

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example.controller")
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        // ViewResolver to resolve JSP files under /WEB-INF/views/
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        registry.viewResolver(resolver);
    }
}

এখানে @EnableWebMvc অ্যানোটেশন স্প্রিং এমভিসি ফিচার সক্রিয় করে এবং InternalResourceViewResolver ভিউ রেজলভারের মাধ্যমে JSP ফাইল রেন্ডারিং কনফিগার করা হয়।

৩. Controller:

এটি একটি সাধারণ কন্ট্রোলার ক্লাস যা HTTP রিকোয়েস্টের জন্য সঠিক রেসপন্স প্রদান করবে। DispatcherServlet এই কন্ট্রোলারের মেথডগুলো কল করবে।

@Controller
public class HomeController {

    @RequestMapping("/home")
    public String homePage(Model model) {
        model.addAttribute("message", "Welcome to Spring MVC!");
        return "home";  // "home" will be resolved to /WEB-INF/views/home.jsp
    }
}

এখানে @Controller অ্যানোটেশন ক্লাসটিকে কন্ট্রোলার হিসেবে চিহ্নিত করে এবং @RequestMapping("/home") URL রিকোয়েস্টটি এই মেথডে মেপ করে।

৪. View (JSP):

এখন, কন্ট্রোলার থেকে পাঠানো মডেল ডাটাটি ভিউতে রেন্ডার হবে। এখানে একটি JSP ভিউ আছে যা মডেল ডাটাকে ডিসপ্লে করবে।

home.jsp (JSP উদাহরণ):

<html>
    <body>
        <h1>${message}</h1>  <!-- Displaying the message from the Model -->
    </body>
</html>

এখানে ${message} মডেল থেকে পাঠানো ডাটা দেখাচ্ছে, যা "Welcome to Spring MVC!"।

৫. DispatcherServlet Flow:

  1. ইউজার /home URL রিকোয়েস্ট করলে, এটি প্রথমে DispatcherServlet দ্বারা গ্রহণ করা হবে।
  2. DispatcherServlet HandlerMapping এর মাধ্যমে সঠিক কন্ট্রোলার মেথড (যেমন HomeController.homePage()) চয়ন করবে।
  3. কন্ট্রোলার মেথডে, মডেল ডাটা (যেমন message) তৈরি হবে এবং ভিউ নাম (যেমন "home") রিটার্ন হবে।
  4. DispatcherServlet ViewResolver ব্যবহার করে ভিউ (যেমন home.jsp) রেজলভ করবে।
  5. DispatcherServlet রেসপন্স ক্লায়েন্টকে ফেরত পাঠাবে, এবং ইউজারকে "Welcome to Spring MVC!" বার্তা দেখানো হবে।

DispatcherServlet এর অতিরিক্ত কাজ:

  1. Security: DispatcherServlet বিভিন্ন ধরনের ফিল্টার এবং সিকিউরিটি চেক পরিচালনা করতে সক্ষম। যেমন, Authentication এবং Authorization ফিল্টারিং।
  2. Exception Handling: DispatcherServlet সিস্টেমে ঘটে যাওয়া এক্সসেপশন গুলি প্রক্রিয়া করতে পারে এবং কাস্টম এক্সসেপশন হ্যান্ডলারস ব্যবহার করতে পারে।
  3. Request Interception: DispatcherServlet ইন্টারসেপ্টর ব্যবহার করতে পারে, যেমন লগিং, প্রিফিক্স/স্যাফিক্স অ্যাড করা, এবং সাধারণ ফাংশনালিটি পরিবর্ধন করা।

উপসংহার:

DispatcherServlet স্প্রিং এমভিসি ফ্রেমওয়ার্কের অন্যতম প্রধান উপাদান এবং এটি "ফ্রন্ট কন্ট্রোলার" হিসেবে কাজ করে। এটি সমস্ত HTTP রিকোয়েস্ট গ্রহণ করে, সঠিক কন্ট্রোলার মেথড নির্বাচন করে, এবং রিকোয়েস্টের জন্য সঠিক রেসপন্স (ভিউ) প্রদান করে। DispatcherServlet এর মাধ্যমে স্প্রিং এমভিসি অ্যাপ্লিকেশনের কোড মডুলার এবং রিইউজেবল হয়, এবং এটি অ্যাপ্লিকেশনটি সহজভাবে কনফিগার ও মেইনটেইন করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...