Mari kita uraikan URL lengkap yang akan diketik klien ke bilah alamat untuk mencapai servlet Anda:
http://www.example.com:80/awesome-application/path/to/servlet/path/info?a=1&b=2#boo
Bagian-bagiannya adalah:
- skema:
http
- nama host:
www.example.com
- Pelabuhan:
80
- jalur konteks:
awesome-application
- jalur servlet:
path/to/servlet
- info jalur:
path/info
- pertanyaan:
a=1&b=2
- pecahan:
boo
Permintaan URI (dikembalikan oleh getRequestURI ) sesuai dengan bagian 4, 5 dan 6.
(kebetulan, meskipun Anda tidak meminta ini, metode getRequestURL akan memberi Anda bagian 1, 2, 3, 4, 5 dan 6).
Sekarang:
- bagian 4 (jalur konteks) digunakan untuk memilih aplikasi khusus Anda dari banyak aplikasi lain yang mungkin berjalan di server
- bagian 5 (jalur servlet) digunakan untuk memilih servlet tertentu dari banyak servlet lain yang mungkin dibundel dalam PERANG aplikasi Anda
- bagian 6 (info jalur) ditafsirkan oleh logika servlet Anda (misalnya, mungkin menunjuk ke beberapa sumber daya yang dikendalikan oleh servlet Anda).
- bagian 7 (permintaan) juga tersedia untuk servlet Anda menggunakan getQueryString
- bagian 8 (fragmen) bahkan tidak dikirim ke server dan relevan dan hanya diketahui oleh klien
Berikut ini selalu berlaku (kecuali untuk perbedaan penyandian URL):
requestURI = contextPath + servletPath + pathInfo
Contoh berikut dari spesifikasi Servlet 3.0 sangat membantu:
Catatan: gambar berikut, saya tidak punya waktu untuk membuat ulang dalam HTML: