2.1 Kelas HttpServletRequest

Umume pakaryan sing kudu ditindakake dening servlet sampeyan adhedhasar informasi sing ditampa saka panyuwunan kasebut. Objek kasebut tanggung jawab HttpServletRequest, sing bakal dikirim menyang servlet sampeyan (menyang metode serviceutawa metode doGet(), doPost()lsp.)

Objek iki duwe sawetara cara, amarga mung nyimpen data panyuwunan, lan sampeyan bisa sesambungan karo wadhah kasebut.

Cara bisa dipérang dadi 2 klompok gedhe:

  • Cara sing ana gandhengane karo wewenang pangguna
  • Cara kanggo nggarap data panyuwunan

Aku bakal menehi cara wewenang pangguna ing wangun tabel, nanging kita ora bakal nganalisa. Kasunyatan iku arang banget digunakake kanggo menehi wewenang pangguna. Kabeh kerangka populer nggunakake pendekatan wewenang dhewe sing luwih maju.

Aku kudu dhaptar, nanging maneh, aku durung weruh wong sing nggunakake.

Metode Katrangan
1 authenticate(HttpServletResponse) Nindakake otentikasi respon
2 changeSessionId() Ganti ID sesi kanthi paksa
3 getAuthType() Ngasilake jinis otentikasi sing digunakake: ASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
4 getRemoteUser() Ngasilake login pangguna
5 getRequestedSessionId() Ngasilake ID Sesi klien
6 getSession() Ngasilake obyek HttpSession
7 getUserPrincipal() Ngasilake obyek java.security.Principal
8 login(username, password) Nindakake login pangguna
9 logout() Log metu sesi pangguna

2.2 Panjaluk data

Klompok cara liya luwih menarik. Apa jenis data sing ana ing panyuwunan?

  • metode http
  • URI
  • Pilihan
  • Irah-irahan

Ayo ndeleng cara apa sing kasedhiya kanggo nggarap:

Metode Katrangan
1 getMethod() Ngasilake metode HTTP: GET, POST, DELETE, ...
2 getRequestURI() Ngasilake URI panjalukan: http://codegym.cc/my/data
3 getRequestURL() Ngasilake URL panjalukan: http://codegym.cc/my/data
4 getQueryString() Ngasilake Query, yaiku kabeh sawise ?
5 getParameterMap() Ngasilake dhaptar paramèter pitakon
6 getParameter(String name) Ngasilake nilai parameter kanthi jeneng
7 getContentType() Ngasilake awak panjalukan MimeType
8 getReader() Reader kanggo maca awak panjalukan minangka teks
9 getInputStream() InputStream kanggo maca awak panjalukan minangka byte []
10 getSession() Ngasilake obyek HttpSession
sewelas getCookies() Ngasilake macem-macem obyek Cookie [].
12 getHeaderNames() Ngasilake dhaptar judhul, mung jeneng
13 getHeader(String name) Ngasilake nilai header kanthi jeneng
14 getServletPath() Ngasilake bagean URL sing nuduhake servlet
15 getContextPath() Ngasilake bagean URI sing nemtokake isi panyuwunan

Lan iki ora kabeh cara ...

Senajan sawise kita sinau protokol HTTP lan sinau carane bisa karo HttpClient, kabeh iku luwih utawa kurang menowo kene, iku ora?

Ayo nulis servlet sing bisa dilewati teks lan warna, lan bakal ngasilake kaca HTML kanthi teks kasebut ditulis ing warna sing ditemtokake. Kepiye sampeyan seneng ide kasebut?

Ayo miwiti kanthi nulis servlet kita:

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

Saiki kita kudu njaluk teks lan werna liwati saka URI dening pangguna:

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

    }
}

Lan pungkasane, sampeyan kudu ngasilake teks minangka HTML. Kita bakal nutupi iki ing kuliah sabanjure, nanging ing kene aku bakal menehi pitunjuk:

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