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 डेटा का अनुरोध करें

विधियों का दूसरा समूह अधिक दिलचस्प है। अनुरोध में हमारे पास किस प्रकार का डेटा है?

  • एचटीटीपी विधि
  • यूआरआई
  • विकल्प
  • टाइटल

आइए देखें कि उनके साथ काम करने के लिए कौन से तरीके उपलब्ध हैं:

तरीका विवरण
1 getMethod() रिटर्न HTTP विधि: GET, POST, DELETE, ...
2 getRequestURI() अनुरोध URI लौटाता है: http://codegym.cc/my/data
3 getRequestURL() अनुरोध URL लौटाता है: http://codegym.cc/my/data
4 getQueryString() रिटर्न क्वेरी, यानी सब कुछ के बाद ?
5 getParameterMap() क्वेरी पैरामीटर की सूची लौटाता है
6 getParameter(String name) पैरामीटर का मान उसके नाम से लौटाता है
7 getContentType() माइम टाइप अनुरोध निकाय लौटाता है
8 getReader() पाठ के रूप में अनुरोध के मुख्य भाग को पढ़ने के लिए पाठक
9 getInputStream() अनुरोध निकाय को बाइट के रूप में पढ़ने के लिए इनपुटस्ट्रीम []
10 getSession() एक HttpSession ऑब्जेक्ट लौटाता है
ग्यारह getCookies() कुकी [] वस्तुओं की एक सरणी देता है
12 getHeaderNames() केवल नामों की सूची लौटाता है
13 getHeader(String name) हेडर मान को नाम से लौटाता है
14 getServletPath() URL का वह भाग लौटाता है जो सर्वलेट को संदर्भित करता है
15 getContextPath() URI का वह भाग लौटाता है जो अनुरोध की सामग्री निर्दिष्ट करता है

और वह सभी तरीके भी नहीं हैं ...

हालाँकि जब हमने HTTP प्रोटोकॉल का अध्ययन किया है और सीखा है कि HttpClient के साथ कैसे काम करना है, तो यहाँ सब कुछ कमोबेश परिचित है, है ना?

चलिए एक सर्वलेट लिखते हैं जिसे टेक्स्ट और कलर पास किया जा सकता है, और यह निर्दिष्ट रंग में लिखे गए टेक्स्ट के साथ एक HTML पेज लौटाएगा। आपको यह विचार कैसा लगा?

आइए अपना सर्वलेट लिखकर शुरू करें:

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

अब हमें उपयोगकर्ता द्वारा यूआरआई से पाठ और रंग पारित करने की आवश्यकता है:

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