2.1 HttpServletRequest ক্লাস

অনুরোধ থেকে প্রাপ্ত তথ্যের উপর ভিত্তি করে আপনার সার্লেটকে বেশিরভাগ কাজ করতে হবে। বস্তুটি এটির জন্য দায়ী HttpServletRequest, যা ধারকটি আপনার সার্লেটে (পদ্ধতি serviceবা পদ্ধতি ইত্যাদিতে) প্রেরণ করবে doGet()doPost()

এই বস্তুটির বেশ কয়েকটি পদ্ধতি রয়েছে, যেহেতু এটি কেবল অনুরোধের ডেটা সঞ্চয় করে এবং এর মাধ্যমে আপনি কন্টেইনারের সাথে যোগাযোগ করতে পারেন।

পদ্ধতি 2 বড় গ্রুপে বিভক্ত করা যেতে পারে:

  • ব্যবহারকারীর অনুমোদন সম্পর্কিত পদ্ধতি
  • অনুরোধ ডেটা নিয়ে কাজ করার পদ্ধতি

আমি একটি টেবিলের আকারে ব্যবহারকারীর অনুমোদনের পদ্ধতিগুলি দেব, কিন্তু আমরা সেগুলি বিশ্লেষণ করব না। সত্য যে তারা খুব কমই একটি ব্যবহারকারীকে অনুমোদন করতে ব্যবহৃত হয়। সমস্ত জনপ্রিয় ফ্রেমওয়ার্ক অনুমোদনের জন্য তাদের নিজস্ব, অনেক বেশি উন্নত পদ্ধতি ব্যবহার করে।

আমি তাদের তালিকাভুক্ত করা উচিত, কিন্তু আবার, আমি তাদের ব্যবহার কাউকে দেখিনি.

পদ্ধতি বর্ণনা
1 authenticate(HttpServletResponse) প্রতিক্রিয়া প্রমাণীকরণ সঞ্চালন
2 changeSessionId() জোর করে সেশন আইডি পরিবর্তন করুন
3 getAuthType() ব্যবহার করা প্রমাণীকরণের ধরন প্রদান করে: ASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
4 getRemoteUser() ব্যবহারকারীর লগইন ফেরত দেয়
5 getRequestedSessionId() ক্লায়েন্টের সেশনআইডি ফেরত দেয়
6 getSession() একটি HttpSession অবজেক্ট প্রদান করে
7 getUserPrincipal() একটি java.security.Principal অবজেক্ট প্রদান করে
8 login(username, password) ব্যবহারকারী লগইন সঞ্চালন
9 logout() ব্যবহারকারী অধিবেশন লগ আউট

2.2 ডেটা অনুরোধ করুন

পদ্ধতির দ্বিতীয় গ্রুপ অনেক বেশি আকর্ষণীয়। আমাদের অনুরোধে কি ধরনের তথ্য আছে?

  • http পদ্ধতি
  • ইউআরআই
  • অপশন
  • শিরোনাম

আসুন দেখি তাদের সাথে কাজ করার জন্য কী কী পদ্ধতি পাওয়া যায়:

পদ্ধতি বর্ণনা
1 getMethod() HTTP পদ্ধতি প্রদান করে: GET, POST, DELETE, ...
2 getRequestURI() অনুরোধ ইউআরআই ফেরত দেয়: http://codegym.cc/my/data
3 getRequestURL() অনুরোধ URLটি ফেরত দেয়: http://codegym.cc/my/data
4 getQueryString() ক্যোয়ারী রিটার্ন করে, অর্থাৎ সবকিছুর পরে?
5 getParameterMap() ক্যোয়ারী প্যারামিটারের একটি তালিকা প্রদান করে
6 getParameter(String name) নাম অনুসারে প্যারামিটারের মান প্রদান করে
7 getContentType() MimeType অনুরোধের মূল অংশ ফেরত দেয়
8 getReader() পাঠক পাঠ্য হিসাবে অনুরোধের অংশ পড়তে
9 getInputStream() ইনপুটস্ট্রিম রিকোয়েস্ট বডি বাইট হিসেবে পড়ার জন্য[]
10 getSession() একটি HttpSession অবজেক্ট প্রদান করে
এগারো getCookies() কুকি[] বস্তুর একটি অ্যারে প্রদান করে
12 getHeaderNames() শিরোনামের একটি তালিকা প্রদান করে, শুধুমাত্র নাম
13 getHeader(String name) নাম অনুসারে হেডার মান প্রদান করে
14 getServletPath() ইউআরএলের সেই অংশটি প্রদান করে যা সার্লেটকে নির্দেশ করে
15 getContextPath() অনুরোধের বিষয়বস্তু নির্দিষ্ট করে এমন URI-এর অংশ ফেরত দেয়

এবং এটি এমনকি সমস্ত পদ্ধতি নয় ...

যদিও আমরা HTTP প্রোটোকল অধ্যয়ন করার পরে এবং HttpClient এর সাথে কীভাবে কাজ করতে হয় তা শিখেছি, এখানে সবকিছুই কমবেশি পরিচিত, তাই না?

আসুন একটি সার্লেট লিখি যা পাঠ্য এবং একটি রঙ পাস করা যেতে পারে এবং এটি নির্দিষ্ট রঙে লেখা সেই পাঠ্য সহ একটি HTML পৃষ্ঠা ফিরিয়ে দেবে। আপনি কিভাবে ধারণা পছন্দ করেন?

আমাদের servlet লিখে শুরু করা যাক:

public class ColorTextServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
          //write your code here
    }
}

এখন আমাদের ব্যবহারকারীর দ্বারা URI থেকে পাঠ্য এবং রঙ পাস করতে হবে:

public class ColorTextServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {

        // Getting the parameter “text” and “color” from request
        String text= request.getParameter("text");
        String color = request.getParameter("color");

    }
}

এবং অবশেষে, আপনাকে এইচটিএমএল হিসাবে পাঠ্যটি আউটপুট করতে হবে। আমরা পরবর্তী বক্তৃতায় এটি কভার করব, তবে এখানে আমি একটি ছোট ইঙ্গিত দেব:

public class ColorTextServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {

        // Get the "text" and "color" parameters from the request
        String text = request.getParameter("text");
        String color = request.getParameter("color");


        // Print the HTML as a response to the browser
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out =  response.getWriter();
        try {
            out.println("<html>");
            out.println("<head> <title> ColorTextServlet </title> </head>");
            out.println("<body>");
            out.println("<h1 style="color:"+color+">"+text+"</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}