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