Bir istemcinin sunucu uygulamanıza ulaşmak için adres çubuğuna yazacağı tam URL'yi parçalayalım:
http://www.example.com:80/awesome-application/path/to/servlet/path/info?a=1&b=2#boo
Parçalar:
- şeması:
http
- hostname:
www.example.com
- Liman:
80
- bağlam yolu:
awesome-application
- sunucu uygulaması yolu:
path/to/servlet
- yol bilgisi:
path/info
- sorgu:
a=1&b=2
- fragmanı:
boo
İstek URI'si ( getRequestURI tarafından döndürülür ) bölüm 4, 5 ve 6'ya karşılık gelir.
(bu arada, bunu istemeseniz bile , getRequestURL yöntemi size bölüm 1, 2, 3, 4, 5 ve 6'yı verir).
Şimdi:
- bölüm 4 (bağlam yolu), sunucunuzda çalışıyor olabilecek diğer birçok uygulamadan özel uygulamanızı seçmek için kullanılır
- bölüm 5 (sunucu uygulaması yolu), uygulamanızın WAR'sında paketlenmiş olabilecek diğer birçok sunucu uygulamasından belirli bir sunucu uygulamasını seçmek için kullanılır
- bölüm 6 (yol bilgisi) sunucu uygulamanızın mantığı tarafından yorumlanır (örneğin sunucu uygulamanız tarafından kontrol edilen bir kaynağa işaret edebilir).
- bölüm 7 (sorgu) getQueryString kullanarak sunucu uygulamanız için de kullanılabilir
- bölüm 8 (parça) sunucuya gönderilmez ve yalnızca istemciyle ilgilidir ve bilinir
Aşağıdakiler her zaman geçerlidir (URL kodlama farklılıkları hariç):
requestURI = contextPath + servletPath + pathInfo
Servlet 3.0 belirtiminden aşağıdaki örnek çok yararlıdır:
Not: resim, HTML'de yeniden oluşturmak için zamanım yok:
