CodeGym /কোর্স /All lectures for BN purposes /টীকা সহ ওয়েব অ্যাপ্লিকেশন কাস্টমাইজ করা

টীকা সহ ওয়েব অ্যাপ্লিকেশন কাস্টমাইজ করা

All lectures for BN purposes
লেভেল 1 , পাঠ 993
বিদ্যমান

8.1 সার্লেট টীকাগুলির ভূমিকা

সংস্করণ 7 দিয়ে শুরু করে, Tomcat সার্ভলেট API 3.0 ওয়েব সার্লেট স্পেসিফিকেশন সমর্থন করতে শুরু করেছে । বিশেষ করে, এটিতে একটি প্যাকেজ উপস্থিত হয়েছিল যার নাম javax.servlet.annotation. এটিতে বিভিন্ন ধরণের টীকা রয়েছে যা একটি সার্লেট ক্লাস টীকা করতে ব্যবহার করা যেতে পারে। আপনি যদি একটি টীকা ব্যবহার করেন, তাহলে স্থাপনার বর্ণনাকারীর (web.xml) প্রয়োজন নেই৷

সবচেয়ে দরকারী টীকাগুলির তালিকা:

টীকা বর্ণনা
1 @WebServlet একটি servlet ঘোষণা
2 @WebInitParam একটি প্রারম্ভিক প্যারামিটার নির্দিষ্ট করে
3 @WebFilter একটি ওয়েব ফিল্টার ঘোষণা করে
4 @WebListener ওয়েব লিসেনার ঘোষণা করে
5 @ServletSecurity আপনাকে নিরাপত্তা সেটিংস কনফিগার করার অনুমতি দেয়

উদাহরণ:

@WebServlet( urlPatterns = {"/api/*"} )
public class Example extends HttpServlet {
    protected void doGet( HttpServletRequest request, HttpServletResponse response) throws Exception {
         response.setContentType("text/html");
         PrintWriter out = response.getWriter();
         out.println("Hello World!");
    }
}

একটি সারলেট ঘোষণা করার জন্য একটি টীকা যথেষ্ট এবং এর দ্বারা প্রদত্ত URL-এ আসা সমস্ত অনুরোধগুলি পরিবেশন করার জন্য এটিকে ম্যাপ করতে /api/*

8.2 সার্লেট ম্যাপিং সেট আপ করা

টীকাটিতে @WebServletঅনেক পরামিতি রয়েছে যা এটি বর্ণনা করা সার্লেটের খুব নমনীয় কনফিগারেশনের অনুমতি দেয়। আসুন প্রধানগুলি দেখে নেওয়া যাক:

বৈশিষ্ট্য বর্ণনা
1 name সার্ভলেট অনন্য নাম (যেমন web.xml)
2 displayName মানুষের পঠনযোগ্য servlet নাম
3 description সার্ভলেট বর্ণনা
4 value ম্যাপিংয়ের জন্য ইউআরএল সেট করে
5 urlPatterns মানচিত্রের জন্য ইউআরএলগুলির একটি তালিকা নির্দিষ্ট করে (মানের পরিবর্তে ব্যবহৃত)
6 initParams আপনাকে সার্লেটের স্টার্ট প্যারামিটার সেট করতে দেয়
7 asyncSupported নির্দিষ্ট করে যে সার্লেট অ্যাসিঙ্ক্রোনাসভাবে চলতে পারে (HTTP/2)
8 loadOnStartup সার্লেট প্রারম্ভিক অগ্রাধিকার নিয়ন্ত্রণ করতে ক্রম সংখ্যা
9 smallIcon একটি ছোট সার্লেট আইকন সেট করে
10 largeIcon একটি বড় সার্লেট আইকন সেট করে

এখানে বেশ কয়েকটি আকর্ষণীয় পয়েন্ট রয়েছে।

প্রথমত, নোট করুন যে valueএবং urlPatternsবিনিময়যোগ্য বৈশিষ্ট্য। তারা উভয়ই আপনাকে ইউআরএলগুলির একটি তালিকা নির্দিষ্ট করার অনুমতি দেয় যা সার্লেটের ম্যাপ করা উচিত।

দ্বিতীয়ত, পরামিতি asyncSupportedনির্দেশ করে যে সার্লেট HTTP/2 প্রোটোকলের মাধ্যমে অ্যাসিঙ্ক্রোনাস অনুরোধগুলি সঠিকভাবে প্রক্রিয়া করবে কিনা।

এবং তৃতীয় গুরুত্বপূর্ণ বৈশিষ্ট্য হল initParams, এটি আপনাকে পরামিতিগুলির একটি তালিকা সেট করতে দেয় যা ServletContext-এ স্থাপন করা হবে।

উদাহরণ:

@WebServlet(
        urlPatterns = {"/sendFile", "/uploadFile"},
        loadOnStartup = 1,
        asyncSupported = true,
        initParams = {
            @WebInitParam(name = "saveDir", value = "c:/uploaded"),
            @WebInitParam(name = "allowedTypes", value = "jpg,gif,png")
        }
)
public class ImageUploadServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String saveDir = getInitParameter("saveDir");
        String fileTypes = getInitParameter("allowedTypes");

        PrintWriter writer = response.getWriter();

        writer.println("saveDir = " + saveDir);
        writer.println("fileTypes = " + fileTypes);
    }
}

8.3 ফিল্টার ম্যাপিং সেট আপ করা

উপরে উল্লিখিত হিসাবে, ফিল্টার হল একটি ইউটিলিটি ধরনের সার্লেট, এবং সেগুলি সার্লেটের মতো কনফিগার করা হয়। এখানে একটি টীকা আছে বৈশিষ্ট্য আছে @WebFilter:

বৈশিষ্ট্য বর্ণনা
1 filterName অনন্য নাম ফিল্টার করুন (যেমন web.xml)
2 displayName মানুষের পঠনযোগ্য ফিল্টারের নাম
3 description ফিল্টার বিবরণ
4 value / urlPatterns মানচিত্রের জন্য url-এর একটি তালিকা সেট করে
5 dispatcherTypes DispatcherTypes এর একটি তালিকা নির্দিষ্ট করে
6 servletNames আবেদন করার জন্য সার্লেটের একটি তালিকা নির্দিষ্ট করে
7 initParams আপনাকে ফিল্টারের শুরুর পরামিতি সেট করতে দেয়
8 asyncSupported নির্দিষ্ট করে যে ফিল্টারটি অ্যাসিঙ্ক্রোনাসভাবে চলতে পারে (HTTP/2)
9 smallIcon একটি ছোট ফিল্টার আইকন সেট করে
10 largeIcon একটি বড় ফিল্টার আইকন সেট করে

একটি ফিল্টারের একটি উদাহরণ যা নির্দিষ্ট সার্লেটের সমস্ত অনুরোধকে বাধা দেয় :

@WebFilter(servletNames = {"MyOwnServlet", "UploadServlet"})
public class MyFilter implements Filter {
    // implements Filter's methods here...
}

একাধিক প্যারামিটার দেওয়া ফিল্টারের একটি উদাহরণ :

@WebFilter(
        urlPatterns = "/uploadFilter",
        initParams = @WebInitParam(name = "fileTypes", value = "doc;xls;zip;txt;jpg;png;gif")
)
public class UploadFilter implements Filter {
    // implements Filter's methods here...
}

RequestDispatcher এর জন্য প্রদত্ত ধরণের ফিল্টারের একটি উদাহরণ :

@WebFilter(
        urlPatterns = "/admin",
        dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD}
)
public class MyFilter implements Filter {
    // implements Filter's methods here...
}

আপনি নিম্নলিখিত লেকচারগুলিতে ফিল্টার এবং সার্লেটের উদ্দেশ্য সম্পর্কে আরও শিখবেন।

মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION