2.1 kelas HttpServletRequest
Sebagian besar pekerjaan yang harus dilakukan servlet Anda berdasarkan informasi yang diterima dari permintaan. Objek bertanggung jawab untuk itu HttpServletRequest
, yang akan diteruskan wadah ke servlet Anda (ke metode service
atau metode doGet()
, doPost()
dll.)
Objek ini memiliki beberapa metode, karena hanya menyimpan data permintaan, dan melaluinya Anda dapat berinteraksi dengan penampung.
Metode dapat dibagi menjadi 2 kelompok besar:
- Metode yang terkait dengan otorisasi pengguna
- Metode untuk bekerja dengan data kueri
Saya akan memberikan metode otorisasi pengguna dalam bentuk tabel, tetapi kami tidak akan menganalisisnya. Faktanya adalah mereka sangat jarang digunakan untuk mengotorisasi pengguna. Semua kerangka kerja populer menggunakan pendekatan mereka sendiri yang jauh lebih canggih untuk otorisasi.
Saya harus mencantumkannya, tetapi sekali lagi, saya belum melihat ada yang menggunakannya.
metode | Keterangan | |
---|---|---|
1 | authenticate(HttpServletResponse) |
Melakukan otentikasi respons |
2 | changeSessionId() |
Ubah ID sesi secara paksa |
3 | getAuthType() |
Mengembalikan jenis autentikasi yang digunakan: ASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH |
4 | getRemoteUser() |
Mengembalikan login pengguna |
5 | getRequestedSessionId() |
Mengembalikan SessionID klien |
6 | getSession() |
Mengembalikan objek HttpSession |
7 | getUserPrincipal() |
Mengembalikan objek java.security.Principal |
8 | login(username, password) |
Melakukan login pengguna |
9 | logout() |
Keluar dari sesi pengguna |
2.2 Permintaan data
Kelompok metode kedua jauh lebih menarik. Jenis data apa yang kami miliki dalam permintaan?
- metode http
- URI
- Pilihan
- Judul
Mari kita lihat metode apa yang tersedia untuk bekerja dengannya:
metode | Keterangan | |
---|---|---|
1 | getMethod() |
Mengembalikan metode HTTP: DAPATKAN, POST, HAPUS, ... |
2 | getRequestURI() |
Mengembalikan URI permintaan: http://codegym.cc/my/data |
3 | getRequestURL() |
Mengembalikan URL permintaan: http://codegym.cc/my/data |
4 | getQueryString() |
Mengembalikan Query, yaitu semuanya setelah ? |
5 | getParameterMap() |
Mengembalikan daftar parameter kueri |
6 | getParameter(String name) |
Mengembalikan nilai parameter dengan namanya |
7 | getContentType() |
Mengembalikan badan permintaan MimeType |
8 | getReader() |
Pembaca untuk membaca isi permintaan sebagai teks |
9 | getInputStream() |
InputStream untuk membaca badan permintaan sebagai byte[] |
10 | getSession() |
Mengembalikan objek HttpSession |
sebelas | getCookies() |
Mengembalikan larik objek Cookie[]. |
12 | getHeaderNames() |
Mengembalikan daftar judul, nama saja |
13 | getHeader(String name) |
Mengembalikan nilai header berdasarkan nama |
14 | getServletPath() |
Mengembalikan bagian dari URL yang merujuk ke servlet |
15 | getContextPath() |
Mengembalikan bagian URI yang menentukan konten permintaan |
Dan itu bahkan tidak semua metode ...
Meskipun setelah kita mempelajari protokol HTTP dan mempelajari cara bekerja dengan HttpClient, semuanya kurang lebih familiar di sini, bukan?
Mari kita menulis sebuah servlet yang dapat diteruskan teks dan warna, dan itu akan mengembalikan halaman HTML dengan teks yang ditulis dalam warna yang ditentukan. Bagaimana Anda menyukai ide itu?
Mari kita mulai dengan menulis servlet kita:
public class ColorTextServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
//write your code here
}
}
Sekarang kita perlu mendapatkan teks dan warna yang diteruskan dari URI oleh pengguna:
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");
}
}
Dan terakhir, Anda perlu menampilkan teks sebagai HTML. Kami akan membahas ini di kuliah berikutnya, tapi di sini saya akan memberikan sedikit petunjuk:
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();
}
}
}
GO TO FULL VERSION