2.1 HttpServletRequest वर्ग

विनंतीवरून मिळालेल्या माहितीच्या आधारावर तुमच्या सर्व्हलेटला बहुतेक काम करावे लागते. ऑब्जेक्ट त्याच्यासाठी जबाबदार आहे HttpServletRequest, जो कंटेनर आपल्या सर्व्हलेटकडे पाठवेल (पद्धती serviceकिंवा पद्धती इ doGet(). doPost())

या ऑब्जेक्टमध्ये बर्‍याच पद्धती आहेत, कारण ते फक्त विनंती डेटा संग्रहित करते आणि त्याद्वारे आपण कंटेनरशी संवाद साधू शकता.

पद्धती 2 मोठ्या गटांमध्ये विभागल्या जाऊ शकतात:

  • वापरकर्त्याच्या अधिकृततेशी संबंधित पद्धती
  • विनंती डेटासह कार्य करण्याच्या पद्धती

मी वापरकर्त्याला अधिकृतता पद्धती टेबलच्या स्वरूपात देईन, परंतु आम्ही त्यांचे विश्लेषण करणार नाही. वस्तुस्थिती अशी आहे की वापरकर्त्यास अधिकृत करण्यासाठी ते फार क्वचितच वापरले जातात. सर्व लोकप्रिय फ्रेमवर्क अधिकृततेसाठी त्यांचे स्वतःचे, अधिक प्रगत दृष्टिकोन वापरतात.

मी त्यांची यादी केली पाहिजे, परंतु पुन्हा, मी त्यांना कोणी वापरताना पाहिले नाही.

पद्धत वर्णन
authenticate(HttpServletResponse) प्रतिसाद प्रमाणीकरण करते
2 changeSessionId() सेशन आयडी जबरदस्तीने बदला
3 getAuthType() वापरलेला प्रमाणीकरण प्रकार परत करतो: ASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
4 getRemoteUser() वापरकर्ता लॉगिन परत करतो
getRequestedSessionId() क्लायंटचा SessionID परत करतो
6 getSession() HttpSession ऑब्जेक्ट मिळवते
getUserPrincipal() java.security.Principal ऑब्जेक्ट मिळवते
8 login(username, password) वापरकर्ता लॉगिन करते
logout() वापरकर्ता सत्र लॉग आउट करा

2.2 डेटाची विनंती करा

पद्धतींचा दुसरा गट अधिक मनोरंजक आहे. आमच्याकडे विनंतीमध्ये कोणत्या प्रकारचा डेटा आहे?

  • http पद्धत
  • URI
  • पर्याय
  • शीर्षके

त्यांच्यासोबत काम करण्यासाठी कोणत्या पद्धती उपलब्ध आहेत ते पाहूया:

पद्धत वर्णन
getMethod() HTTP पद्धत परत करते: GET, POST, DELETE, ...
2 getRequestURI() विनंती URI परत करते: http://codegym.cc/my/data
3 getRequestURL() विनंती URL परत करते: http://codegym.cc/my/data
4 getQueryString() क्वेरी परत करते, म्हणजे सर्व काही?
getParameterMap() क्वेरी पॅरामीटर्सची सूची मिळवते
6 getParameter(String name) पॅरामीटरचे मूल्य त्याच्या नावाने मिळवते
getContentType() MimeType विनंती मुख्य भाग परत करते
8 getReader() मजकूर म्हणून विनंती मुख्य भाग वाचण्यासाठी वाचक
getInputStream() बाइट म्हणून विनंती मुख्य भाग वाचण्यासाठी इनपुटस्ट्रीम[]
10 getSession() HttpSession ऑब्जेक्ट मिळवते
अकरा getCookies() कुकी[] ऑब्जेक्ट्सची अॅरे मिळवते
१२ getHeaderNames() फक्त नावांची, शीर्षकांची सूची मिळवते
13 getHeader(String name) नावानुसार शीर्षलेख मूल्य मिळवते
14 getServletPath() सर्व्हलेटचा संदर्भ देणारा URL चा भाग परत करतो
१५ getContextPath() विनंतीची सामग्री निर्दिष्ट करणारा URI चा भाग परत करतो

आणि ते सर्व पद्धती देखील नाही ...

आम्ही HTTP प्रोटोकॉलचा अभ्यास केल्यानंतर आणि HttpClient सह कसे कार्य करावे हे शिकल्यानंतर, येथे सर्व काही कमी-अधिक प्रमाणात परिचित आहे, नाही का?

चला एक सर्व्हलेट लिहू ज्याला मजकूर आणि रंग पास केला जाऊ शकतो आणि ते निर्दिष्ट रंगात लिहिलेल्या मजकुरासह एक HTML पृष्ठ देईल. तुम्हाला कल्पना कशी आवडली?

चला आमचे सर्व्हलेट लिहून सुरुवात करूया:

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");

    }
}

आणि शेवटी, तुम्हाला HTML म्हणून मजकूर आउटपुट करणे आवश्यक आहे. आम्ही पुढील व्याख्यानात हे कव्हर करू, परंतु येथे मी थोडासा इशारा देईन:

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();
        }
    }
}