7 Stimmen

Wie kann ich die Subdomäne in einem Servlet abrufen? Hat Spring irgendwelche Hilfsmittel

Ich möchte zunächst wissen, ob es einen eingebauten Weg, um eine Subdomain von einer Url mit reinen Servlets zu erhalten?

Und wenn der Frühling irgendwelche Helfer hat?

Meine URLs würden also wie folgt lauten:

jonskeet.stackoverflow.com

Wobei JonSkeet die Subdomain ist.

Ich werde einen Filter erstellen, der ein Objekt auf der Grundlage des Subdomain-Wertes lädt.

Gibt es übrigens beim Erstellen eines Filters eine Möglichkeit, die Filter so anzuordnen, dass sie alle in einer bestimmten Reihenfolge ausgelöst werden?

0 Stimmen

Du hast den Namen von Jon Skeet falsch geschrieben, Kumpel, tisk tisk!

1 Stimmen

+1 wenn Sie sich fragen, ob SO wirklich eine Jon Skeet-Subdomain eingerichtet hat, und versuchen, die jonskeet.stackoverflow.com

8voto

AlexR Punkte 111534

Ich bezweifle, dass es dafür eine spezielle API gibt. Aber Sie können es von HttpRequest erhalten, indem Sie request.getServerName().split("\\.")[0] . Es scheint einfach genug zu sein.

Eine Einschränkung ist, dass Sie keine "Subdomain" unterstützen können, die Punktzeichen enthält, z. B. jon.skeet.stackoverflow.com .

0 Stimmen

Praktisch gesehen ist "www" aber auch eine Subdomain.

0 Stimmen

@Renascienza, zu Ihrer Information, nicht alle Domains beginnen mit 'www'.

1voto

Renascienza Punkte 1647

Verwenden Sie Guave.

Gradle:

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

Java:

    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;
}

So wird "jon.skeet.stackoverflow.com" "jon.skeet" zurückgeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X