2012-03-21 7 views
5

मैं पहले जानना चाहता हूं कि शुद्ध सर्लेट का उपयोग करके यूआरएल से सबडोमेन प्राप्त करने का एक अंतर्निहित तरीका है या नहीं?मैं सर्वलेट में उप डोमेन कैसे पुनर्प्राप्त कर सकता हूं? क्या वसंत में कोई सहायक है

और फिर वसंत में कोई सहायक है?

तो मेरी यूआरएल होगा जैसे:

jonskeet.stackoverflow.com 

कहाँ JonSkeet उप डोमेन है।

मैं एक फ़िल्टर तैयार करूंगा जो सबडोमेन मान के आधार पर ऑब्जेक्ट लोड करेगा।

बीटीडब्ल्यू, फ़िल्टर बनाते समय, फिल्टर को ऑर्डर करने का कोई तरीका है कि वे सभी एक विशिष्ट क्रम में आग लगें?

+0

मिस्पेल्ड जॉन स्कीट का नाम वहां दोस्त, टिस्क टिस्क! – Kiril

+0

+1 अगर आपको आश्चर्य हुआ कि एसओ ने वास्तव में जॉन स्कीट उप-डोमेन बनाया है और http://jonskeet.stackoverflow.com पर जाने का प्रयास किया है – Kiril

+0

नहीं, मुझे नहीं लगता कि आप यूआरएल प्राप्त करने से आगे जा सकते हैं और फिर विभाजित कर सकते हैं खुद को स्ट्रिंग करें। बीटीडब्लू, आपको एक से अधिक प्रश्न नहीं डालना चाहिए, खासकर जब Google खोज के साथ फिल्टर के बारे में आपके प्रश्न का उत्तर दिया जा सकता है। – madth3

उत्तर

7

मुझे संदेह है कि इसके लिए एक विशेष एपीआई है। लेकिन आप इसे request.getServerName().split("\\.")[0] का उपयोग करके HttpRequest से प्राप्त कर सकते हैं। ऐसा लगता है कि यह काफी आसान है।

सीमा यह है कि आप "सबडोमेन" का समर्थन नहीं कर सकते जिसमें डॉट वर्ण हैं, उदा। jon.skeet.stackoverflow.com

+0

आह, उप-डोमेन ** वास्तव में ** डॉट्स नहीं कर सकते हैं, अधिक जानकारी के लिए देखें: http://stackoverflow.com/questions/7111881/what-are-the-allowed-characters-in-a-sub-domain – Kiril

+0

दूसरे शब्दों में: डॉट उप-डोमेन का हिस्सा नहीं है, यह डोमेन नाम के पाठ भागों के लिए एक विभाजक है। – Kiril

+1

getServerName() www भी देता है, इसलिए यह असफल हो जाएगा, जल्दी या बाद में –

1

अमरू का प्रयोग करें।

Gradle:

dependencies { 
compile group: 'com.google.guava', name: 'guava', version: '19.0' 
... 
} 

जावा:

private String getSubdomain(HttpServletRequest req) { 

     String site = req.getServerName(); 

     String domain = InternetDomainName.from(site).topPrivateDomain().toString(); 
     String subDomain = site.replaceAll(domain, ""); 
     subDomain = subDomain.substring(0, subDomain.length() - 1); 

     return subDomain; 
} 

तो, "jon.skeet.stackoverflow.com" वापस आ जाएगी "jon.skeet"।

संबंधित मुद्दे