కోడ్‌జిమ్/జావా కోర్సు/మాడ్యూల్ 3/సర్వ్లెట్ ప్రతిస్పందనలను రూపొందించడం

సర్వ్లెట్ ప్రతిస్పందనలను రూపొందించడం

అందుబాటులో ఉంది

3.1 HttpServletResponse తరగతి

మీ సర్వ్‌లెట్ పద్ధతికి కాల్ చేసిన తర్వాత service(), వెబ్ కంటైనర్ దీని ఆధారంగా క్లయింట్‌కు ప్రతిస్పందనను రూపొందిస్తుంది HttpServletResponse. కాబట్టి మీరు క్లయింట్‌కు ప్రతిస్పందనను ఎలాగైనా ప్రభావితం చేయాలనుకుంటే, మీరు ఈ వస్తువును సవరించాలి.

సర్వర్ ప్రతిస్పందన మూడు భాగాలను కలిగి ఉంటుంది:

  • స్థితి లైన్ (ఉదాహరణకు: 200 సరే)
  • శీర్షికలు
  • ప్రతిస్పందన శరీరం

మరియు తరగతి పద్ధతులు HttpServletResponseకూడా 3 సమూహాలుగా విభజించబడ్డాయి? దాదాపు:

పద్ధతులు వివరణ
1 void setStatus(int sc) ప్రతిస్పందన స్థితి కోడ్‌ను సెట్ చేస్తుంది.
2 void sendError(int sc) పేర్కొన్న కోడ్‌తో క్లయింట్‌కు లోపాన్ని పంపుతుంది.
3 void sendError(int sc, String msg) పేర్కొన్న కోడ్‌తో లోపం మరియు క్లయింట్‌కు సందేశాన్ని పంపుతుంది.
4 void addHeader(String name, String value) ప్రతిస్పందన హెడర్‌ల జాబితాకు హెడర్‌ని జోడిస్తుంది.
5 void setHeader(String name, String value) ప్రతిస్పందన శీర్షికల జాబితాలో హెడర్‌ను మారుస్తుంది.
6 boolean containsHeader(String name) హెడర్ ఇప్పటికే ఉందో లేదో తనిఖీ చేస్తుంది.
7 void addCookie(Cookie cookie) ప్రతిస్పందనకు కుక్కీని జోడిస్తుంది.
8 void sendRedirect(String location) క్లయింట్‌ని వేరే URLకి దారి మళ్లిస్తుంది.
9 String encodeRedirectURL(String url) sendRedirect పద్ధతిలో ఉపయోగించడానికి పేర్కొన్న URLను ఎన్కోడ్ చేస్తుంది.
10 String encodeURL(String url) సెషన్ IDతో సహా పేర్కొన్న URLని ఎన్కోడ్ చేస్తుంది.
పదకొండు void setContentType(String type) ఫలితం యొక్క మైమ్ రకాన్ని సెట్ చేస్తుంది.
12 void setContentLength(int len) ప్రతిస్పందన శరీరం యొక్క పొడవును సెట్ చేస్తుంది.
13 void setCharacterEncoding(String charset) ప్రతిస్పందన ఎన్‌కోడింగ్ సెట్‌ను సెట్ చేస్తుంది.
14 void setBufferSize(int size) ప్రతిస్పందన శరీరం కోసం బఫర్ పరిమాణాన్ని సెట్ చేస్తుంది.
15 boolean isCommitted() ప్రతిస్పందనకు బఫర్ ఇప్పటికే వ్రాయబడిందో లేదో తనిఖీ చేస్తుంది.
16 void flushBuffer() ప్రతిస్పందనకు బఫర్‌లోని విషయాలను వ్రాస్తుంది.
17 void reset() బఫర్, హెడర్‌లు మరియు ప్రతిస్పందన కోడ్‌లలో నిల్వ చేయబడిన మొత్తం డేటాను రీసెట్ చేస్తుంది.
18 void resetBuffer() ప్రతిస్పందన బఫర్‌ను క్లియర్ చేస్తుంది.

ఇక్కడ పద్ధతులు చాలా చిన్నవి. కానీ నేను మీకు కొన్ని ముఖ్యాంశాలను క్రింద ఇస్తాను.

బఫర్ . మీ సర్వ్‌లెట్ ప్రతిస్పందన బఫర్‌కు వ్రాయబడింది, వెంటనే వినియోగదారుకు పంపబడదు. అందువల్ల, కొన్ని దశలో (ఉదాహరణకు, లోపం సంభవించినట్లయితే), మీరు బఫర్‌కు వ్రాసిన ప్రతిదాన్ని రీసెట్ చేయవచ్చు (చెరిపివేయవచ్చు). మీరు రీసెట్() పద్ధతికి కాల్ చేయవచ్చు మరియు బఫర్‌లోని కంటెంట్‌లను మాత్రమే కాకుండా, ప్రతిస్పందన కోడ్‌తో హెడర్‌లను కూడా తొలగించవచ్చు.

3.2 దారిమార్పు()

రెండవ ముఖ్యమైన అంశం దారిమార్పు. మీ సర్వ్‌లెట్ క్లయింట్‌ని మరొక URLకి దారి మళ్లించాలని నిర్ణయించుకుంటే, మీరు ఈ URLని క్లయింట్‌కి ఎలాగైనా పంపాలి. దీనిని ఉపయోగించి చేయవచ్చు sendRedirect.

కానీ ఒక ముఖ్యమైన స్వల్పభేదాన్ని ఉంది. ప్రతిస్పందన బాడీలో అనుమతించిన దాని కంటే URI విస్తృత శ్రేణి అక్షరాలను కలిగి ఉంటుంది. కాబట్టి, పద్ధతికి కాల్ చేయడానికి ముందు URL తప్పనిసరిగా చెల్లుబాటు అయ్యే అక్షర సమితికి ఎన్‌కోడ్ చేయబడాలి sendRedirect(). దీని కోసం ఒక ప్రత్యేక పద్ధతి ఉంది encodeRedirectURL(String url). దాన్ని ఉపయోగించు.

దారిమార్పు ఉదాహరణ:

public class RedirectServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String newUrl = "http://google.com?q=Learn to google!";
        String redirectUrl = response.encodeRedirectURL(newUrl);
        response.sendRedirect(redirectUrl);
    }
}

3.3 getWriter() పద్ధతి

మరియు ఇప్పుడు మన వచనాన్ని ప్రతిస్పందనగా ఎలా వ్రాయాలో నేర్చుకుంటాము. దీన్ని చేయడానికి, తరగతి ఒక వస్తువును తిరిగి ఇచ్చే HttpServletResponseప్రత్యేక పద్ధతిని కలిగి ఉంది . ఎవరైనా మర్చిపోయి ఉంటే, ఇది పేరుతో ఉన్న ఫీల్డ్ రకం .getWriter()PrintStreamSystem.out

కొంత వచనాన్ని సర్వ్లెట్ ప్రతిస్పందనగా వ్రాయడానికి, మీకు ఇది అవసరం:

  • కు కాల్ చేయడం ద్వారా ప్రింట్‌స్ట్రీమ్ ఆబ్జెక్ట్‌ను పొందండి response.getWriter().
  • ప్రింట్‌స్ట్రీమ్ ఆబ్జెక్ట్‌కు ఏది అవసరమని మీరు అనుకుంటున్నారో దానిని వ్రాయండి (మొత్తం డేటా బఫర్‌కు వ్రాయబడుతుంది).
  • close()ప్రింట్‌స్ట్రీమ్‌లోని పద్ధతిని కాల్ చేయడం ద్వారా వినియోగదారుకు బఫర్‌ను పంపండి .

aరెండు సంఖ్యలను జోడించి , bవినియోగదారుకు ఫలితాన్ని అందించే సర్వ్‌లెట్‌ని వ్రాద్దాం :

public class CalculatorServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
         // Getting the parameter “a” and “b” from request
        String a = request.getParameter("a");
        String b = request.getParameter("b");

        try {
            // Convert strings to numbers and calculate sum
            int sum = Integer.parseInt(a) + Integer.parseInt(b);

            // Print HTML as a response for browser
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();

            out.println("<html>");
            out.println("<head> <title> CalculatorServlet </title> </head>");
            out.println("<body>");
            out.println("<h1> Sum == " + sum + "</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }
}
వ్యాఖ్యలు
  • జనాదరణ పొందినది
  • కొత్తది
  • పాతది
వ్యాఖ్యానించడానికి మీరు తప్పనిసరిగా సైన్ ఇన్ చేసి ఉండాలి
ఈ పేజీకి ఇంకా ఎలాంటి వ్యాఖ్యలు లేవు