Objek HttpServletRequest mewakili permintaan klien. Ketika klien mengakses server melalui protokol HTTP, semua informasi dalam header permintaan HTTP dikemas dalam objek ini. Pengembang dapat memperoleh informasi klien melalui metode objek ini.
Metode permintaan umum :
1. Metode umum untuk memperoleh informasi lingkungan klien :
1. Metode getRequestURL mengembalikan URL lengkap saat klien membuat permintaan.
2. Metode getRequestURI mengembalikan bagian nama sumber daya di baris permintaan.
3. Metode getQueryString mengembalikan bagian parameter dari baris permintaan.
4. Metode getRemoteAddr mengembalikan alamat IP klien yang membuat permintaan.
5. Metode getRemoteHost mengembalikan nama host lengkap klien yang membuat permintaan.
6. Metode getRemotePort mengembalikan nomor port jaringan yang digunakan oleh klien.
7. Metode getLocalAddr mengembalikan alamat IP server WEB.
8. Metode getLocalName mengembalikan nama host server WEB.
9.getMethod mendapatkan metode permintaan klien.
Copy kode kodenya sebagai berikut:
paket com.yyz.request;
impor java.io.IOException;
impor java.io.OutputStream;
impor javax.servlet.ServletException;
impor javax.servlet.http.HttpServlet;
impor javax.servlet.http.HttpServletRequest;
impor javax.servlet.http.HttpServletResponse;
kelas publik RequestDemo memperluas HttpServlet {
public void doGet (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
/**
*URL adalah bagian dari URI.
* URI digunakan untuk mengidentifikasi sumber daya.
*URL digunakan untuk mengidentifikasi sumber daya di Internet.
*/
System.out.println(request.getRequestURL());//Dapatkan alamat URL permintaan
System.out.println(request.getRequestURI());//Dapatkan sumber daya yang diminta
Sistem.keluar.println(permintaan.getQueryString());
System.out.println(request.getRemoteAddr());//Dapatkan IP pengunjung
Sistem.keluar.println(permintaan.getRemoteHost());
//Karena tidak terdaftar di dns, hasil print masih 127.0.0.1 Jika Baidu mengakses program ini, print www.baidu.com
System.out.println(request.getRemotePort());//Dapatkan sumber daya yang diminta
System.out.println(request.getMethod());//Dapatkan sumber daya yang diminta
}
public void doPost (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
doGet(permintaan,tanggapan);
}
}
Masukkan: http://localhost:8080/test/servlet/RequestDemo di bilah alamat browser dan keluaran latar belakangnya adalah sebagai berikut:
2. Dapatkan header permintaan klien :
1.metode getHeader (Nama string).
2.metode getHeaders (Nama string).
3.metode getHeaderNames()
Copy kode kodenya sebagai berikut:
paket com.yyz.request;
impor java.io.IOException;
import java.util.Enumeration;
impor javax.servlet.ServletException;
impor javax.servlet.http.HttpServlet;
impor javax.servlet.http.HttpServletRequest;
impor javax.servlet.http.HttpServletResponse;
//Dapatkan header permintaan
kelas publik RequestDemo memperluas HttpServlet {
public void doGet (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
String head = request.getHeader("Terima-Encoding");
//Beberapa browser tidak mendukung data terkompresi
if(head.contains("gzip")){
//Keluarkan data terkompresi
}kalau tidak{
//Menghasilkan data yang tidak terkompresi
}
//Dapatkan semua nilai header dengan nama yang ditentukan
Pencacahan e = request.getHeaders("Terima-Encoding");
while(e.hasMoreElements()){
Nilai string = (String ) e.nextElement();
System.out.println(nilai);
}
System.out.println("------------------------");
//Dapatkan semua header dan nilai
e = permintaan.getHeaderNames();
while(e.hasMoreElements()){
Nama string = (String)e.nextElement();
Nilai string = request.getHeader(nama);
System.out.println(nama+"="+nilai);
}
}
public void doPost (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
doGet(permintaan,tanggapan);
}
}
Akses program di browser dan output latar belakang adalah sebagai berikut:
3. Dapatkan parameter permintaan klien (data yang dikirimkan oleh klien):
1.getParameter(nama) metode
2.metode getParameterValues (nama string).
3.metode getParameterNames
4.metode getParameterMap, digunakan secara luas saat membuat kerangka kerja
paket com.yyz.request; impor java.io.IOException; impor java.util.Enumeration; impor java.util.Map; .HttpServlet; impor javax.servlet.http.HttpServletRequest; javax.servlet.http.HttpServletResponse; //Dapatkan data permintaan kelas publik RequestDemo extends HttpServlet { public void doGet(permintaan HttpServletRequest, respons HttpServletResponse) melempar ServletException, IOException { //http://localhost:8080/test/servlet/RequestDemo? nama=yyz Nilai string = permintaan.getParameter("nama"); Sistem.keluar .println(nilai); //http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance String suka[] = request.getParameterValues("suka"); ){ for(String suka : suka){ System.out.println(suka); //Berikut ini adalah cara profesional untuk menulis traversal semacam ini, cara untuk mendapatkan data array (untuk menghindari pengecualian penunjuk nol) for(int i=0;likes!=null&&i<likes.length;i++){ System.out .println(likes[ i]); } //Dapatkan semua nama dan dapatkan nilai berdasarkan nama Pencacahan e = request.getParameterNames(); while(e.hasMoreElements()){ String name = (String) e.nextElement(); nilai = permintaan.getParameter(nama); Sistem.keluar.println(nama+"="+nilai); Sistem.keluar.println("------------- ---------"); //Dapatkan koleksi Peta yang digunakan untuk merangkum data dalam objek permintaan Map<String,String[]> map = request.getParameterMap(); for(Entry<String, String[ ] > saya : map.entrySet()){ Nama string = me.getKey(); String [] v = me.getValue(); System.out.println(name+"="+v[0]); public void doPost(permintaan HttpServletRequest, respons HttpServletResponse) menampilkan ServletException, IOException { doGet(permintaan,tanggapan);