JavaRush /Курстар /All lectures for KY purposes /Сервлеттеги суроо-талептерди тейлөө

Сервлеттеги суроо-талептерди тейлөө

All lectures for KY purposes
Деңгээл , Сабак
жеткиликтүү

2.1 HttpServletRequest Классы

Сенин сервлетиң суроо-талептен алынган маалымат негизинде көп иш аткарышы керек. Бул үчүн HttpServletRequest объекти жооп берет, ал контейнер аркылуу сенин сервлетиңе (метод service же методдор doGet(), doPost() ж.б.) өткөрүп берилет

Бул объектинин көптөгөн методдору бар, анткени ал жөн гана суроо-талептин маалыматтарын сактайт, бул аркылуу сен контейнер менен иштей аласың.

Методдорду 2 чоң топко бөлүүгө болот:

  • Колдонуучунун авторизациясына байланышкан методдору
  • Суроо-талептин маалыматтары менен иштөө методдору

Колдонуучунун авторизациясы боюнча методдорду таблица түрүндө берем, бирок аларды карап чыкпайбыз. Себеби, аларды колдонуучу авторизациясы үчүн абдан сейрек колдонушат. Баардык популярдуу фреймворктар авторизация үчүн өздөрүнүн, алда канча жөндөмдүү ыкмаларын колдонушат.

Мен алардын тизмесин берүүгө милдеттүүмүн, бирок дагы деле болсо, алардын колдонулганын азырынча көрө элекмин.

Метод Сүрөттөмө
1 authenticate(HttpServletResponse) response’ти аутентификациялайт
2 changeSessionId() Сессиянын ID'син күчтөп өзгөртөт
3 getAuthType() Колдонулган аутентификация түрүн кайтарат: ASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
4 getRemoteUser() Колдонуучунун логинин кайтарат
5 getRequestedSessionId() Клиенттин SessionID'син кайтарат
6 getSession() HttpSession объектисин кайтарат
7 getUserPrincipal() java.security.Principal объектисин кайтарат
8 login(username, password) Колдонуучунун логинин жасайт
9 logout() Колдонуучунун сессиясынын логинин жокко чыгарат

2.2 Суроо-талептин маалыматтары

Экинчи топтогу методдор бир кыйла кызыктуу. Суроо-талепте кандай маалыматтар бар экенин карайлычы?

  • http-метод
  • URI
  • Параметрлер
  • Башаттар

Аларды иштетүү үчүн кандай методдор бар экенин карап көрөлү:

Метод Сүрөттөмө
1 getMethod() HTTP-методду кайтарат: GET, POST, DELETE, …
2 getRequestURI() Суроо-талептин URI'син кайтарат: http://javarush.com/my/data
3 getRequestURL() Суроо-талептин URL'син кайтарат: http://javarush.com/my/data
4 getQueryString() Query’ни, анын ичинде ? белгисинен кийин келген баардык нерселерди кайтарат
5 getParameterMap() Суроо-талептин параметрлеринин тизмесин кайтарат
6 getParameter(String name) Параметрдин атынан анын маанисин кайтарат
7 getContentType() Маалыматтын MimeType'ин кайтарат
8 getReader() Маалыматты текст катары окуу үчүн Reader
9 getInputStream() Маалыматты byte[] катары окуу үчүн InputStream
10 getSession() HttpSession объектисин кайтарат
11 getCookies() Cookie[] объекттеринин массивин кайтарат
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 {
          //бул жерге сенин кодуңду жаз
    }
}

Эми URI'ден колдонуучу берген текст жана түстү алуу керек:


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

        // Суроо-талептен “text” жана “color” параметрин алабыз
        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 {

        // Суроо-талептен “text” жана “color” параметрин алабыз
        String text = request.getParameter("text");
        String color = request.getParameter("color");


        // HTML'ди браузерге жооп катары басып чыгарабыз
        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();
        }
    }
}



Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION