2010-10-28 16 views
43

में अनुरोध URL प्राप्त करना मैं सर्वलेट में अनुरोध URL प्राप्त करने के निम्न दो तरीकों के बीच अंतर जानना चाहता हूं।सर्वलेट

विधि 1:

String url = request.getRequestURL().toString(); 

विधि 2:

url = request.getScheme() 
     + "://" 
     + request.getServerName() 
     + ":" 
     + request.getServerPort() 
     + request.getRequestURI(); 

वहाँ किसी भी संभावना है कि इसके बाद के संस्करण दो तरीकों दो अलग-अलग URL दे देंगे कर रहे हैं?

उत्तर

66

getRequestURL() 80 के समय बंदरगाह को छोड़ देता है जबकि योजना http है, या जब यह 443 है जबकि योजना https है।

तो, अगर आप चाहते हैं कि बस पूरा यूआरएल प्राप्त हो रहा है तो बस getRequestURL() का उपयोग करें। हालांकि इसमें GET क्वेरी स्ट्रिंग शामिल नहीं है। आप इसे का निर्माण करने के रूप में तो इस प्रकार कर सकते हैं:

StringBuffer requestURL = request.getRequestURL(); 
if (request.getQueryString() != null) { 
    requestURL.append("?").append(request.getQueryString()); 
} 
String completeURL = requestURL.toString();